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 (po...@leland.stanford.edu).
  * 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)) {

Reply via email to