SCO
-SCO has the same problem as Linux (described earlier). The thing is,
-SCO *really* doesn't want to let you add a host route to the all-ones
-broadcast address.
+ISC DHCP will now work correctly on newer versions of SCO out of the
+box (tested on OpenServer 5.05b, assumed to work on UnixWare 7).
-On more recent versions of SCO, you can do this:
+Older versions of SCO have the same problem as linux (described earlier).
+The thing is, SCO *really* doesn't want to let you add a host route to
+the all-ones broadcast address.
+
+You can try the following:
ifconfig net0 xxx.xxx.xxx.xxx netmask 0xNNNNNNNN broadcast 255.255.255.255
Apparently this works because of an interaction between SCO's support
for network classes and the weird netmask. The 10.* network is just a
dummy that can generally be assumed to be safe. Don't ask why this
-works. Just try it. If it works for you, great. SCO has added
-support for doing DHCP in a more sensible way, and it will appear in
-a future feature release.
+works. Just try it. If it works for you, great.
HP-UX
- Support for compressed 'domain name list' style DHCP option contents, and
in particular the domain search option (#119) was added.
-- The DHCP LEASEQUERY protocol as definied in RFC4388 is now implemented.
+- The DHCP LEASEQUERY protocol as defined in RFC4388 is now implemented.
LEASEQUERY lets you query the DHCP server for information about a lease,
using either an IP address, MAC address, or client identifier. Thanks
to a patch from Justin Haddad.
+- DHCPD is now RFC2131 section 4.1 compliant (broadcast to all-ones ip and
+ ethernet mac address) on the SCO platform specifically without any strange
+ ifconfig hacks. Many thanks go to the Kroger Co. for donating the
+ hardware and funding the development.
Changes since 3.0.4
#ifndef lint
static char copyright[] =
-"$Id: socket.c,v 1.58 2005/03/17 20:15:00 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
+"$Id: socket.c,v 1.59 2006/07/25 17:41:18 dhankins Exp $ Copyright (c) 2004 Internet Systems Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
}
#endif
+ /* IP_BROADCAST_IF instructs the kernel which interface to send
+ * IP packets whose destination address is 255.255.255.255. These
+ * will be treated as subnet broadcasts on the interface identified
+ * by ip address (info -> primary_address). This is only known to
+ * be defined in SCO system headers, and may not be defined in all
+ * releases.
+ */
+#if defined(SCO) && defined(IP_BROADCAST_IF)
+ if (setsockopt (sock, IPPROTO_IP, IP_BROADCAST_IF,
+ &info -> primary_address,
+ sizeof (info -> primary_address)) < 0)
+ log_fatal ("Can't set IP_BROADCAST_IF on dhcp socket: %m");
+#endif
+
return sock;
}
#endif /* USE_SOCKET_SEND || USE_SOCKET_RECEIVE || USE_SOCKET_FALLBACK */