abe@mace.cc.purdue.edu (Vic Abell) (01/12/89)
Because of the way that SunOS 4.0's bindresvport() function of libc allocates privileged ports, a local service from inetd.conf using ports in the 600-1023 range can sometimes be prevented from running because some other server (e. g., the lock manager) has reserved its well known port. Since the allocation of privileged ports in the 512-1023 range pre-dates SunOS, it is not practical to reassign them. One simple solution is to make sure that inetd completes its initialization before any Sun servers are started. This means starting inetd first in /etc/rc.local and making a slight mod to inetd to delay its background fork until it has completed its initialization. A better and more complex solution is to modify bindresvport.c to make it avoid assigning ports that have service names.