What mode should `whois' be?

Jordan Hayes jordan at ucbarpa.Berkeley.EDU
Sun Dec 7 17:36:06 AEST 1986


Steve D. Miller <steve at mimsy.UUCP> writes:

	struct sockaddr sin;

	sin.sin_family = AF_INET;
	if (bind(&sin, sizeof(sin)) < 0) ...

[ I assume you mean bind(s, &sin, sizeof(sin)) since bind() takes 3
arguments ]

	It's not trying to bind to any particular port on the local
	machine; it just wants the kernel to pick one for it.
	Unfortunately, the kernel does so only if no address is
	specified (all-zeroes), and this is specifying a garbage
	address.

That's weird ... the 4.3 source says

	struct sockaddr_in	sin;

	sin.sin_family = hp->h_addrtype;
	if (bind(s,&sin, sizeof(sin)) < 0) ...

More portable, but still far from the point -- clients that talk to
Internet Services (I.e., those with RFC's) shouldn't bind the socket
locally -- the server should do that for you. You can't enforce the
protected ports across non-BSD systems. You certainly shouldn't try to
with whois ...

/jordan



More information about the Comp.unix.wizards mailing list