Subject: rpc fun?
To: None <tech-net@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 07/05/2002 08:49:19
svctcp_create (and apparently svcudp_create, which seems to have no
manpage) takes as a parameter a value which can be a pre-prepared
socket, or the value RPC_ANYSOCK to have the routine create a socket.

However, the code re-binds the socket if one is passed, which rather
defeats the purpose, it seems to me.  (In particular, I wanted to add
code to mountd to make it listen on only one of the available
addresses, which means binding sockets before calling svc*_create, but
upon UTSLing I find this won't work.)

Is this deliberate?  Would it be worth submitting patches to change it?
Does anyone have any plausible scenario that would break if I moved the
binding of the socket inside the if (sock == RPC_ANYSOCK) conditional?
(Does anyone ever pass anything but RPC_ANYSOCK? :-)

Or does anyone have any better way to recommend to do what I want?
Running rpcinfo to find out what port is in use and dynamically
generating an ipf rule to match doesn't count. :-)

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B