Subject: Linux socket emulation change (was: CVS commit: src/sys/compat/linux/common)
To: Jaromir Dolecek <>
From: Matthias Scheler <>
List: tech-net
Date: 09/13/2004 23:27:45
In article <>,
	Jaromir Dolecek <> writes:
> Module Name:	src
> Committed By:	jdolecek
> Date:		Sun Sep 12 15:32:56 UTC 2004
> Modified Files:
> 	src/sys/compat/linux/common: linux_socket.c
> Log Message:
> if passed sockaddr has family AF_UNSPEC, use socket family of the socket
> the sockaddr is used for
> this fixes bind() problem in Linux version of Theocracy, testing
> by Thomas Klausner

This change is not correct. Calling connect() with an AF_UNSPEC
sockaddr is well defined(*) interface to unconnect a UDP socket. Your
code changes have broken this. Please fix this issue and supply and
additional commit message which addresses this bug. I suggest that you
move the "bdom == AF_UNSPEC" hack linux_sys_bind() or add a boolean
argument to linux_sa_get() which allows to (de)activate it.

	Kind regards

(*) See "Unix Network Programming" by W. Richard Stevens, page 226
    "Calling connect Multiple Times for a UDP socket".

Matthias Scheler