Date: Tue, 2 Dec 2014 08:13:19 -0800 From: Garrett Cooper <yaneurabeya@gmail.com> To: Benjamin Kaduk <kaduk@MIT.EDU> Cc: "freebsd-arch@freebsd.org" <arch@FreeBSD.org> Subject: Re: Disparity between /etc/services and /var/db/services.db Message-ID: <556364B6-EB7C-421F-B2FB-64A170611A56@gmail.com> In-Reply-To: <alpine.GSO.1.10.1412011428160.23489@multics.mit.edu> References: <6F3959BB-3B71-4515-B7BD-C1A640E8327A@gmail.com> <alpine.GSO.1.10.1412011428160.23489@multics.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_840E1575-1977-4E94-94D1-4EE49FC7B7BA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Dec 1, 2014, at 11:28, Benjamin Kaduk <kaduk@MIT.EDU> wrote: > On Mon, 1 Dec 2014, Garrett Cooper wrote: >=20 >> $ ls -l /scratch/2/etc/services /scratch/2/var/db/services.db >> -rw-r--r-- 1 ngie wheel 86802 Nov 27 02:23 = /scratch/2/etc/services >> -rw-r--r-- 1 ngie wheel 2097920 Nov 27 02:23 = /scratch/2/var/db/services.db >=20 > One's a text file and the other a Berkeley DB file ... I wouldn't = expect > them to be the same size. Shoot. I didn=92t mean for this message to get sent out without a lot of = context. For that I apologize... Basically what I was going to comment on was the fact that the .db file = was so large, and by adjusting the number of entries I was able to = reduce the size of the file by 4 (it=92s bloated by a couple thousand): =46rom usr.sbin/services_mkdb/services_mkdb.c: 70 HASHINFO hinfo =3D { 71 .bsize =3D 256, 72 .ffactor =3D 4, 73 .nelem =3D 32768, 74 .cachesize =3D 1024, 75 .hash =3D NULL, 76 .lorder =3D 0 77 }; There are a lot less items in the /etc/services file than 32k: $ cat count_servents.c #include <netdb.h> #include <stdio.h> int main(void) { int i; for (i =3D 0; getservent() !=3D NULL; i++) ; printf("Number of entries: %d\n", i); return 0; } $ ~/count_servents=20 Number of entries: 2358 $ In the upstream [IANA] /etc/services file, there=92s only 1k more or so. I would understand if the database was trying to fill the service number = range, but 32k !=3D INT_MAX: struct servent { char *s_name; /* official name of service = */ char **s_aliases; /* alias list */ int s_port; /* port service resides at */ char *s_proto; /* protocol to use */ }; Is there a reason why this? =93Upstream=94 (NetBSD) doesn=92t seem to = comment much on this either=85 Thanks! PS I just found this thread by bapt from last year that comments about = this issue from a different bend: = https://lists.freebsd.org/pipermail/freebsd-hackers/2013-October/043661.ht= ml --Apple-Mail=_840E1575-1977-4E94-94D1-4EE49FC7B7BA Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJUfeUfAAoJEMZr5QU6S73eCPcIAJH0uawSZaPHDX+mUY+yRT+S 83KX9oYlY3raDPw0Oy7Zih2CsfAj7TXAmVf7WaKnWusLQ8kW8Flilk22fZ32dOxO 60jdbaGM99pO0Fl3BorEg3hzXj/MCa4mb/qNtFM5unu+C+ZXjz7FN5kP+2WmOumB eaXIh0vtQsqWz5GXzi+pLPbOsn3ixXJN+fl8BY2cBh1ZeMosJzk/rweVduswHox2 7ItBqP8cBNaiOgbhMGLXx6iY2+YjQ2dOAQZj/2FpFD1/Mlk6q1sETcEI/yKqYNky ucocpotAjufGXLdYba+Y69RLcewacegIVDXRsOkjCFxLqSiMX/V0uc7g8YnRgts= =vgRZ -----END PGP SIGNATURE----- --Apple-Mail=_840E1575-1977-4E94-94D1-4EE49FC7B7BA--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?556364B6-EB7C-421F-B2FB-64A170611A56>