mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-28 12:57:42 +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:
parent
62f6843db6
commit
a57df74a1a
7
RELNOTES
7
RELNOTES
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 */
|
||||||
|
@ -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
|
||||||
|
@ -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 */
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user