diff options
author | David Hankins <dhankins@isc.org> | 2009-04-30 18:45:53 +0000 |
---|---|---|
committer | David Hankins <dhankins@isc.org> | 2009-04-30 18:45:53 +0000 |
commit | 5741146c3415171aed3b8461d8b4887178b9a66f (patch) | |
tree | 20e770fb94ff7d68b7897455d6b4eef06152b8b5 | |
parent | cff09d12186e4b82c254cdf6cf417941b5452d1d (diff) | |
download | isc-dhcp-5741146c3415171aed3b8461d8b4887178b9a66f.tar.gz |
- Compilation on Solaris with USE_SOCKETS defined in includes/site.h has
been repaired. Other USE_ overrides should work better. [ISC-Bugs #19434]
- A check for the local flavor of IFNAMSIZ had a broken 'else' condition,
that probably still resulted in the correct behaviour (but wouldn't use
a larger defined value provided by the host OS). [ISC-Bugs #19434]
-rw-r--r-- | RELNOTES | 7 | ||||
-rw-r--r-- | common/discover.c | 2 | ||||
-rw-r--r-- | common/dlpi.c | 15 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | includes/dhcpd.h | 3 | ||||
-rw-r--r-- | includes/osdep.h | 12 | ||||
-rw-r--r-- | includes/site.h | 2 |
7 files changed, 37 insertions, 11 deletions
@@ -120,6 +120,13 @@ suggested fixes to <dhcp-users@isc.org>. - Fixed failover reconnection retry code to continue to retry to reconnect rather than restarting the listener. +- Compilation on Solaris with USE_SOCKETS defined in includes/site.h has + been repaired. Other USE_ overrides should work better. + +- A check for the local flavor of IFNAMSIZ had a broken 'else' condition, + that probably still resulted in the correct behaviour (but wouldn't use + a larger defined value provided by the host OS). + Changes since 4.0.1rc1 - None. diff --git a/common/discover.c b/common/discover.c index d853cc3b..684cd822 100644 --- a/common/discover.c +++ b/common/discover.c @@ -184,7 +184,7 @@ isc_result_t interface_initialize (omapi_object_t *ipo, #ifndef IF_NAMESIZE # if defined(LIFNAMSIZ) # define IF_NAMESIZE LIFNAMSIZ -# elseif defined(IFNAMSIZ) +# elif defined(IFNAMSIZ) # define IF_NAMESIZE IFNAMSIZ # else # define IF_NAMESIZE 16 diff --git a/common/dlpi.c b/common/dlpi.c index 07506f09..5fd6380f 100644 --- a/common/dlpi.c +++ b/common/dlpi.c @@ -87,7 +87,8 @@ #include "dhcpd.h" -#if defined (USE_DLPI_SEND) || defined (USE_DLPI_RECEIVE) +#if defined (USE_DLPI_SEND) || defined (USE_DLPI_RECEIVE) || \ + defined(USE_DLPI_HWADDR) # include <sys/ioctl.h> # include <sys/time.h> @@ -149,6 +150,10 @@ static int dlpiokack PROTO ((int fd, char *bufp)); static int dlpiinfoack PROTO ((int fd, char *bufp)); static int dlpiphysaddrack PROTO ((int fd, char *bufp)); static int dlpibindack PROTO ((int fd, char *bufp)); +#if defined(USE_DLPI_SEND) || defined(USE_DLPI_RECEIVE) +/* These functions are not used if we're only sourcing the get_hw_addr() + * function (for USE_SOCKETS). + */ static int dlpiunitdatareq PROTO ((int fd, unsigned char *addr, int addrlen, unsigned long minpri, unsigned long maxpri, unsigned char *data, @@ -161,7 +166,7 @@ static int dlpiunitdataind PROTO ((int fd, unsigned long *grpaddr, unsigned char *data, int datalen)); - +#endif /* !USE_DLPI_HWADDR: USE_DLPI_SEND || USE_DLPI_RECEIVE */ static int expected PROTO ((unsigned long prim, union DL_primitives *dlp, int msgflags)); static int strgetmsg PROTO ((int fd, struct strbuf *ctlp, @@ -1087,6 +1092,7 @@ int dlpiphysaddrack (fd, bufp) return 0; } +#if defined(USE_DLPI_SEND) || defined(USE_DLPI_RECEIVE) int dlpiunitdatareq (fd, addr, addrlen, minpri, maxpri, dbuf, dbuflen) int fd; unsigned char *addr; @@ -1204,6 +1210,7 @@ static int dlpiunitdataind (fd, daddr, daddrlen, return data.len; } +#endif /* !USE_DLPI_HWADDR: USE_DLPI_RECEIVE || USE_DLPI_SEND */ /* * expected - see if we got what we wanted. @@ -1295,6 +1302,7 @@ static int strgetmsg (fd, ctlp, datap, flagsp, caller) return 0; } +#if defined(USE_DLPI_SEND) int can_unicast_without_arp (ip) struct interface_info *ip; { @@ -1328,6 +1336,7 @@ void maybe_setup_fallback () interface_dereference (&fbi, MDL); } } +#endif /* USE_DLPI_SEND */ void get_hw_addr(const char *name, struct hardware *hw) { @@ -1411,4 +1420,4 @@ get_hw_addr(const char *name, struct hardware *hw) { close(sock); } -#endif /* USE_DLPI */ +#endif /* USE_DLPI_SEND || USE_DLPI_RECEIVE || USE_DLPI_HWADDR */ diff --git a/configure.ac b/configure.ac index 02ef69f2..65b70fc6 100644 --- a/configure.ac +++ b/configure.ac @@ -164,24 +164,23 @@ AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, , ]) if test -n "$DO_LPF" then - AC_DEFINE([USE_LPF], [1], + AC_DEFINE([HAVE_LPF], [1], [Define to 1 to use the Linux Packet Filter interface code.]) else AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1) if test -n "$DO_DLPI" then - AC_DEFINE([USE_DLPI], [1], + AC_DEFINE([HAVE_DLPI], [1], [Define to 1 to use DLPI interface code.]) else AC_CHECK_HEADER(net/bpf.h, DO_BPF=1) if test -n "$DO_BPF" then - AC_DEFINE([USE_BPF], [""], + AC_DEFINE([HAVE_BPF], [""], [Define to 1 to use the Berkeley Packet Filter interface code.]) fi fi - fi # SIOCGLIFCONF uses some transport structures. Trick is not all platforms diff --git a/includes/dhcpd.h b/includes/dhcpd.h index fb8c5516..5354afcc 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h @@ -1126,7 +1126,8 @@ struct interface_info { /* Only used by DHCP client code. */ struct client_state *client; -# if defined (USE_DLPI_SEND) || defined (USE_DLPI_RECEIVE) +# if defined(USE_DLPI_SEND) || defined(USE_DLPI_RECEIVE) || \ + defined(USE_DLPI_HWADDR) int dlpi_sap_length; struct hardware dlpi_broadcast_addr; # endif /* DLPI_SEND || DLPI_RECEIVE */ diff --git a/includes/osdep.h b/includes/osdep.h index c90fe714..aedadf89 100644 --- a/includes/osdep.h +++ b/includes/osdep.h @@ -83,7 +83,14 @@ typedef uint32_t u_int32_t; !defined (USE_NIT_RECEIVE) && \ !defined (USE_DLPI_SEND) && \ !defined (USE_DLPI_RECEIVE) -# define USE_DEFAULT_NETWORK +/* Determine default socket API to USE. */ +# if defined(HAVE_BPF) +# define USE_BPF 1 +# elif defined(HAVE_LPF) +# define USE_LPF 1 +# elif defined(HAVE_DLPI) +# define USE_DLPI 1 +# endif #endif #if !defined (TIME_MAX) @@ -107,6 +114,9 @@ typedef uint32_t u_int32_t; #ifdef USE_SOCKETS # define USE_SOCKET_SEND # define USE_SOCKET_RECEIVE +# if defined(HAVE_DLPI) +# define USE_DLPI_HWADDR +# endif #endif #ifdef USE_RAW_SOCKETS diff --git a/includes/site.h b/includes/site.h index 6d3001b3..8312b695 100644 --- a/includes/site.h +++ b/includes/site.h @@ -133,7 +133,7 @@ you don't choose, one will be chosen for you in your system's config header. DON'T MESS WITH THIS UNLESS YOU KNOW WHAT YOU'RE DOING!!! */ -/* Define this to use the standard BSD socket API. +/* Define USE_SOCKETS to use the standard BSD socket API. On many systems, the BSD socket API does not provide the ability to send packets to the 255.255.255.255 broadcast address, which can |