I want to ask a question:
In sockets, what is the correct behavior when we try to connect() to port 0
for tcp / udp?
It seems that FreeBSD returns EADDRNOTAVAIL, as does Solaris.
So something like this will fail on Solaris and FreeBSD:
[...]
saddr.sin_port = htons(0);
[...]
connect(AF_INET, (struct sockaddr *)&saddr, sizeof(struct sockaddr));
We don't do this however, and Linux will merrily accept a port of 0 in
a connect(), though most probably your connect() wouldn't succeed.
Making it return EADDRNOTAVAIL to user space would be a trivial task, so
I want to ask, is this a buglet in the Linux implementation, or is FreeBSD
and Solaris wrong?
- G.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/