2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-28 21:07:43 +00:00

- 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]
This commit is contained in:
David Hankins 2009-04-30 18:42:52 +00:00
parent 62f6843db6
commit a57df74a1a
7 changed files with 37 additions and 11 deletions

View File

@ -120,6 +120,13 @@ work on other platforms. Please report any problems and suggested fixes to
- Fixed failover reconnection retry code to continue to retry to reconnect - Fixed failover reconnection retry code to continue to retry to reconnect
rather than restarting the listener. 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.1.0b1 Changes since 4.1.0b1
- A missing "else" in dhcrelay.c could have caused an interface not to - A missing "else" in dhcrelay.c could have caused an interface not to

View File

@ -184,7 +184,7 @@ isc_result_t interface_initialize (omapi_object_t *ipo,
#ifndef IF_NAMESIZE #ifndef IF_NAMESIZE
# if defined(LIFNAMSIZ) # if defined(LIFNAMSIZ)
# define IF_NAMESIZE LIFNAMSIZ # define IF_NAMESIZE LIFNAMSIZ
# elseif defined(IFNAMSIZ) # elif defined(IFNAMSIZ)
# define IF_NAMESIZE IFNAMSIZ # define IF_NAMESIZE IFNAMSIZ
# else # else
# define IF_NAMESIZE 16 # define IF_NAMESIZE 16

View File

@ -87,7 +87,8 @@
#include "dhcpd.h" #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/ioctl.h>
# include <sys/time.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 dlpiinfoack PROTO ((int fd, char *bufp));
static int dlpiphysaddrack PROTO ((int fd, char *bufp)); static int dlpiphysaddrack PROTO ((int fd, char *bufp));
static int dlpibindack 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, static int dlpiunitdatareq PROTO ((int fd, unsigned char *addr,
int addrlen, unsigned long minpri, int addrlen, unsigned long minpri,
unsigned long maxpri, unsigned char *data, unsigned long maxpri, unsigned char *data,
@ -161,7 +166,7 @@ static int dlpiunitdataind PROTO ((int fd,
unsigned long *grpaddr, unsigned long *grpaddr,
unsigned char *data, unsigned char *data,
int datalen)); int datalen));
#endif /* !USE_DLPI_HWADDR: USE_DLPI_SEND || USE_DLPI_RECEIVE */
static int expected PROTO ((unsigned long prim, union DL_primitives *dlp, static int expected PROTO ((unsigned long prim, union DL_primitives *dlp,
int msgflags)); int msgflags));
static int strgetmsg PROTO ((int fd, struct strbuf *ctlp, static int strgetmsg PROTO ((int fd, struct strbuf *ctlp,
@ -1090,6 +1095,7 @@ int dlpiphysaddrack (fd, bufp)
return 0; return 0;
} }
#if defined(USE_DLPI_SEND) || defined(USE_DLPI_RECEIVE)
int dlpiunitdatareq (fd, addr, addrlen, minpri, maxpri, dbuf, dbuflen) int dlpiunitdatareq (fd, addr, addrlen, minpri, maxpri, dbuf, dbuflen)
int fd; int fd;
unsigned char *addr; unsigned char *addr;
@ -1207,6 +1213,7 @@ static int dlpiunitdataind (fd, daddr, daddrlen,
return data.len; return data.len;
} }
#endif /* !USE_DLPI_HWADDR: USE_DLPI_RECEIVE || USE_DLPI_SEND */
/* /*
* expected - see if we got what we wanted. * expected - see if we got what we wanted.
@ -1298,6 +1305,7 @@ static int strgetmsg (fd, ctlp, datap, flagsp, caller)
return 0; return 0;
} }
#if defined(USE_DLPI_SEND)
int can_unicast_without_arp (ip) int can_unicast_without_arp (ip)
struct interface_info *ip; struct interface_info *ip;
{ {
@ -1331,6 +1339,7 @@ void maybe_setup_fallback ()
interface_dereference (&fbi, MDL); interface_dereference (&fbi, MDL);
} }
} }
#endif /* USE_DLPI_SEND */
void void
get_hw_addr(const char *name, struct hardware *hw) { get_hw_addr(const char *name, struct hardware *hw) {
@ -1414,4 +1423,4 @@ get_hw_addr(const char *name, struct hardware *hw) {
close(sock); close(sock);
} }
#endif /* USE_DLPI */ #endif /* USE_DLPI_SEND || USE_DLPI_RECEIVE || USE_DLPI_HWADDR */

View File

@ -332,24 +332,23 @@ AC_CHECK_HEADER(linux/filter.h, DO_LPF=1, ,
]) ])
if test -n "$DO_LPF" if test -n "$DO_LPF"
then then
AC_DEFINE([USE_LPF], [1], AC_DEFINE([HAVE_LPF], [1],
[Define to 1 to use the Linux Packet Filter interface code.]) [Define to 1 to use the Linux Packet Filter interface code.])
else else
AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1) AC_CHECK_HEADER(sys/dlpi.h, DO_DLPI=1)
if test -n "$DO_DLPI" if test -n "$DO_DLPI"
then then
AC_DEFINE([USE_DLPI], [1], AC_DEFINE([HAVE_DLPI], [1],
[Define to 1 to use DLPI interface code.]) [Define to 1 to use DLPI interface code.])
else else
AC_CHECK_HEADER(net/bpf.h, DO_BPF=1) AC_CHECK_HEADER(net/bpf.h, DO_BPF=1)
if test -n "$DO_BPF" if test -n "$DO_BPF"
then then
AC_DEFINE([USE_BPF], [""], AC_DEFINE([HAVE_BPF], [""],
[Define to 1 to use the [Define to 1 to use the
Berkeley Packet Filter interface code.]) Berkeley Packet Filter interface code.])
fi fi
fi fi
fi fi
# SIOCGLIFCONF uses some transport structures. Trick is not all platforms # SIOCGLIFCONF uses some transport structures. Trick is not all platforms

View File

@ -1152,7 +1152,8 @@ struct interface_info {
/* Only used by DHCP client code. */ /* Only used by DHCP client code. */
struct client_state *client; 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; int dlpi_sap_length;
struct hardware dlpi_broadcast_addr; struct hardware dlpi_broadcast_addr;
# endif /* DLPI_SEND || DLPI_RECEIVE */ # endif /* DLPI_SEND || DLPI_RECEIVE */

View File

@ -83,7 +83,14 @@ typedef uint32_t u_int32_t;
!defined (USE_NIT_RECEIVE) && \ !defined (USE_NIT_RECEIVE) && \
!defined (USE_DLPI_SEND) && \ !defined (USE_DLPI_SEND) && \
!defined (USE_DLPI_RECEIVE) !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 #endif
#if !defined (TIME_MAX) #if !defined (TIME_MAX)
@ -107,6 +114,9 @@ typedef uint32_t u_int32_t;
#ifdef USE_SOCKETS #ifdef USE_SOCKETS
# define USE_SOCKET_SEND # define USE_SOCKET_SEND
# define USE_SOCKET_RECEIVE # define USE_SOCKET_RECEIVE
# if defined(HAVE_DLPI)
# define USE_DLPI_HWADDR
# endif
#endif #endif
#ifdef USE_RAW_SOCKETS #ifdef USE_RAW_SOCKETS

View File

@ -133,7 +133,7 @@
you don't choose, one will be chosen for you in your system's config 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!!! */ 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 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 send packets to the 255.255.255.255 broadcast address, which can