Browse Source

towards SA-2003.012-dhcpd; CAN-2003-0039

master
Thomas Lotterer 23 years ago committed by Ralf S. Engelschall
parent
commit
d418fd9ce9
  1. 53
      dhcpd/dhcpd.patch
  2. 4
      dhcpd/dhcpd.spec

53
dhcpd/dhcpd.patch

@ -0,0 +1,53 @@
--- relay/dhcrelay.c-orig Sat Apr 27 05:34:20 2002
+++ relay/dhcrelay.c Wed Feb 19 12:44:19 2003
@@ -88,6 +88,7 @@
did not match any known circuit ID. */
int missing_circuit_id = 0; /* Circuit ID option in matching RAI option
was missing. */
+int max_hop_count = 4; /* Maximum hop count */
/* Maximum size of a packet with agent options added. */
int dhcp_max_agent_option_packet_length = 576;
@@ -182,6 +183,15 @@
quiet_interface_discovery = 1;
} else if (!strcmp (argv [i], "-a")) {
add_agent_options = 1;
+ } else if (!strcmp (argv [i], "-c")) {
+ int hcount;
+ if (++i == argc)
+ usage ();
+ hcount = atoi(argv[i]);
+ if (hcount <= 16)
+ max_hop_count = hcount;
+ else
+ usage ();
} else if (!strcmp (argv [i], "-A")) {
if (++i == argc)
usage ();
@@ -425,6 +435,17 @@
packet -> giaddr = ip -> primary_address;
if (packet -> hops != 255)
packet -> hops = packet -> hops + 1;
+
+ /* ftp://ftp.rfc-editor.org/in-notes/rfc1542.txt
+ * 4.1.1 BOOTREQUEST Messages
+ * The relay agent MUST silently discard BOOTREQUEST messages whose
+ * 'hops' field exceeds the value 16. A configuration option SHOULD be
+ * provided to set this threshold to a smaller value if desired by the
+ * network manager. The default setting for a configurable threshold
+ * SHOULD be 4.
+ */
+ if (packet -> hops >= max_hop_count)
+ return;
/* Otherwise, it's a BOOTREQUEST, so forward it to all the
servers. */
@@ -470,7 +470,7 @@
static void usage ()
{
log_fatal ("Usage: dhcrelay [-p <port>] [-d] [-D] [-i %s%s%s",
- "interface]\n ",
+ "interface] [-c max_hop_count]\n ",
"[-q] [-a] [-A length] [-m append|replace|forward|discard]\n",
" [server1 [... serverN]]");
}

4
dhcpd/dhcpd.spec

@ -33,12 +33,13 @@ Distribution: OpenPKG [BASE]
Group: DNS Group: DNS
License: ISC/BSD License: ISC/BSD
Version: 3.0.1rc11 Version: 3.0.1rc11
Release: 20030116 Release: 20030219
# list of sources # list of sources
Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{version}.tar.gz Source0: ftp://ftp.isc.org/isc/dhcp/dhcp-%{version}.tar.gz
Source1: dhcpd.conf Source1: dhcpd.conf
Source2: rc.dhcpd Source2: rc.dhcpd
Patch0: dhcpd.patch
# build information # build information
Prefix: %{l_prefix} Prefix: %{l_prefix}
@ -53,6 +54,7 @@ AutoReqProv: no
%prep %prep
%setup -q -n dhcp-%{version} %setup -q -n dhcp-%{version}
%patch
%build %build
( echo 'CC = %{l_cc}' ( echo 'CC = %{l_cc}'

Loading…
Cancel
Save