Module Name: src
Committed By: manu
Date: Fri May 15 12:31:04 UTC 2020
Modified Files:
src/external/mpl/dhcp/dist/common: bpf.c discover.c lpf.c packet.c
raw.c socket.c
Log Message:
crunchgen fix
Make sure local_port is not shared within a crunchgen binary. There is
more to do to get full functionnality in crunchgen, but at least this
change makes dhcpd listen on the right port again.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/mpl/dhcp/dist/common/bpf.c
cvs rdiff -u -r1.2 -r1.3 src/external/mpl/dhcp/dist/common/discover.c \
src/external/mpl/dhcp/dist/common/lpf.c \
src/external/mpl/dhcp/dist/common/packet.c \
src/external/mpl/dhcp/dist/common/raw.c \
src/external/mpl/dhcp/dist/common/socket.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/mpl/dhcp/dist/common/bpf.c
diff -u src/external/mpl/dhcp/dist/common/bpf.c:1.3 src/external/mpl/dhcp/dist/common/bpf.c:1.4
--- src/external/mpl/dhcp/dist/common/bpf.c:1.3 Fri Jun 1 00:42:49 2018
+++ src/external/mpl/dhcp/dist/common/bpf.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: bpf.c,v 1.3 2018/06/01 00:42:49 christos Exp $ */
+/* $NetBSD: bpf.c,v 1.4 2020/05/15 12:31:03 manu Exp $ */
/* bpf.c
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: bpf.c,v 1.3 2018/06/01 00:42:49 christos Exp $");
+__RCSID("$NetBSD: bpf.c,v 1.4 2020/05/15 12:31:03 manu Exp $");
#include "dhcpd.h"
#if defined (USE_BPF_SEND) || defined (USE_BPF_RECEIVE) \
@@ -366,7 +366,7 @@ void if_register_receive (info)
dhcp_bpf_relay_filter [10].k = ntohs (relay_port);
}
#endif
- p.bf_insns [8].k = ntohs (local_port);
+ p.bf_insns [8].k = ntohs (*libdhcp_callbacks.local_port);
if (ioctl (info -> rfdesc, BIOCSETF, &p) < 0)
log_fatal ("Can't install packet filter program: %m");
Index: src/external/mpl/dhcp/dist/common/discover.c
diff -u src/external/mpl/dhcp/dist/common/discover.c:1.2 src/external/mpl/dhcp/dist/common/discover.c:1.3
--- src/external/mpl/dhcp/dist/common/discover.c:1.2 Sat Apr 7 22:37:29 2018
+++ src/external/mpl/dhcp/dist/common/discover.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: discover.c,v 1.2 2018/04/07 22:37:29 christos Exp $ */
+/* $NetBSD: discover.c,v 1.3 2020/05/15 12:31:03 manu Exp $ */
/* discover.c
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: discover.c,v 1.2 2018/04/07 22:37:29 christos Exp $");
+__RCSID("$NetBSD: discover.c,v 1.3 2020/05/15 12:31:03 manu Exp $");
#include "dhcpd.h"
@@ -47,8 +47,6 @@ __RCSID("$NetBSD: discover.c,v 1.2 2018/
struct interface_info *interfaces, *dummy_interfaces, *fallback_interface;
int interfaces_invalidated;
int quiet_interface_discovery;
-u_int16_t local_port;
-u_int16_t remote_port;
u_int16_t relay_port = 0;
int dhcpv4_over_dhcpv6 = 0;
int (*dhcp_interface_setup_hook) (struct interface_info *, struct iaddr *);
Index: src/external/mpl/dhcp/dist/common/lpf.c
diff -u src/external/mpl/dhcp/dist/common/lpf.c:1.2 src/external/mpl/dhcp/dist/common/lpf.c:1.3
--- src/external/mpl/dhcp/dist/common/lpf.c:1.2 Sat Apr 7 22:37:29 2018
+++ src/external/mpl/dhcp/dist/common/lpf.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: lpf.c,v 1.2 2018/04/07 22:37:29 christos Exp $ */
+/* $NetBSD: lpf.c,v 1.3 2020/05/15 12:31:03 manu Exp $ */
/* lpf.c
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: lpf.c,v 1.2 2018/04/07 22:37:29 christos Exp $");
+__RCSID("$NetBSD: lpf.c,v 1.3 2020/05/15 12:31:03 manu Exp $");
#include "dhcpd.h"
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
@@ -278,7 +278,7 @@ static void lpf_gen_filter_setup (info)
dhcp_bpf_relay_filter [10].k = ntohs (relay_port);
}
#endif
- dhcp_bpf_filter [8].k = ntohs (local_port);
+ dhcp_bpf_filter [8].k = ntohs (*libdhcp_callbacks.local_port);
if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
sizeof p) < 0) {
Index: src/external/mpl/dhcp/dist/common/packet.c
diff -u src/external/mpl/dhcp/dist/common/packet.c:1.2 src/external/mpl/dhcp/dist/common/packet.c:1.3
--- src/external/mpl/dhcp/dist/common/packet.c:1.2 Sat Apr 7 22:37:29 2018
+++ src/external/mpl/dhcp/dist/common/packet.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: packet.c,v 1.2 2018/04/07 22:37:29 christos Exp $ */
+/* $NetBSD: packet.c,v 1.3 2020/05/15 12:31:03 manu Exp $ */
/* packet.c
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: packet.c,v 1.2 2018/04/07 22:37:29 christos Exp $");
+__RCSID("$NetBSD: packet.c,v 1.3 2020/05/15 12:31:03 manu Exp $");
#include "dhcpd.h"
@@ -308,10 +308,10 @@ decode_udp_ip_header(struct interface_in
/* Is it to the port we're serving? */
#if defined(RELAY_PORT)
- if ((udp.uh_dport != local_port) &&
+ if ((udp.uh_dport != *libdhcp_callbacks.local_port) &&
((relay_port == 0) || (udp.uh_dport != relay_port)))
#else
- if (udp.uh_dport != local_port)
+ if (udp.uh_dport != *libdhcp_callbacks.local_port)
#endif
return -1;
#endif /* USERLAND_FILTER */
Index: src/external/mpl/dhcp/dist/common/raw.c
diff -u src/external/mpl/dhcp/dist/common/raw.c:1.2 src/external/mpl/dhcp/dist/common/raw.c:1.3
--- src/external/mpl/dhcp/dist/common/raw.c:1.2 Sat Apr 7 22:37:29 2018
+++ src/external/mpl/dhcp/dist/common/raw.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: raw.c,v 1.2 2018/04/07 22:37:29 christos Exp $ */
+/* $NetBSD: raw.c,v 1.3 2020/05/15 12:31:03 manu Exp $ */
/* raw.c
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: raw.c,v 1.2 2018/04/07 22:37:29 christos Exp $");
+__RCSID("$NetBSD: raw.c,v 1.3 2020/05/15 12:31:03 manu Exp $");
#include "dhcpd.h"
@@ -60,7 +60,7 @@ void if_register_send (info)
/* Set up the address we're going to connect to. */
name.sin_family = AF_INET;
- name.sin_port = relay_port ? relay_port : local_port;
+ name.sin_port = relay_port ? relay_port : *libdhcp_callbacks.local_port;
name.sin_addr.s_addr = htonl (INADDR_BROADCAST);
memset (name.sin_zero, 0, sizeof (name.sin_zero));
Index: src/external/mpl/dhcp/dist/common/socket.c
diff -u src/external/mpl/dhcp/dist/common/socket.c:1.2 src/external/mpl/dhcp/dist/common/socket.c:1.3
--- src/external/mpl/dhcp/dist/common/socket.c:1.2 Sat Apr 7 22:37:29 2018
+++ src/external/mpl/dhcp/dist/common/socket.c Fri May 15 12:31:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: socket.c,v 1.2 2018/04/07 22:37:29 christos Exp $ */
+/* $NetBSD: socket.c,v 1.3 2020/05/15 12:31:03 manu Exp $ */
/* socket.c
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: socket.c,v 1.2 2018/04/07 22:37:29 christos Exp $");
+__RCSID("$NetBSD: socket.c,v 1.3 2020/05/15 12:31:03 manu Exp $");
/* SO_BINDTODEVICE support added by Elliot Poger ([email protected]).
* This sockopt allows a socket to be bound to a particular interface,
@@ -165,7 +165,7 @@ if_register_socket(struct interface_info
case AF_INET6:
addr6 = (struct sockaddr_in6 *)&name;
addr6->sin6_family = AF_INET6;
- addr6->sin6_port = local_port;
+ addr6->sin6_port = *libdhcp_callbacks.local_port;
#if defined(RELAY_PORT)
if (relay_port &&
((info->flags & INTERFACE_STREAMS) == INTERFACE_UPSTREAM))
@@ -201,7 +201,7 @@ if_register_socket(struct interface_info
default:
addr = (struct sockaddr_in *)&name;
addr->sin_family = AF_INET;
- addr->sin_port = relay_port ? relay_port : local_port;
+ addr->sin_port = relay_port ? relay_port : *libdhcp_callbacks.local_port;
memcpy(&addr->sin_addr,
&local_address,
sizeof(addr->sin_addr));
@@ -535,9 +535,9 @@ if_register6(struct interface_info *info
}
log_info("Bound to [%s]:%d",
addr6_str,
- (int) ntohs(local_port));
+ (int) ntohs(*libdhcp_callbacks.local_port));
} else {
- log_info("Bound to *:%d", (int) ntohs(local_port));
+ log_info("Bound to *:%d", (int) ntohs(*libdhcp_callbacks.local_port));
}
}
@@ -691,7 +691,7 @@ if_deregister6(struct interface_info *in
global_v6_socket = -1;
log_info("Unbound from *:%d",
- (int) ntohs(local_port));
+ (int) ntohs(*libdhcp_callbacks.local_port));
}
#if defined(RELAY_PORT)
if (relay_port && (relay_port_v6_socket_references == 0)) {