bin/127076: [patch] teach dhclient(8) to recognize options 66 and 67

Jung-uk Kim jkim at FreeBSD.org
Thu Sep 4 18:40:05 UTC 2008


The following reply was made to PR bin/127076; it has been noted by GNATS.

From: Jung-uk Kim <jkim at FreeBSD.org>
To: bug-followup at FreeBSD.org,
 rea-fbsd at codelabs.ru
Cc:  
Subject: Re: bin/127076: [patch] teach dhclient(8) to recognize options 66 and 67
Date: Thu, 4 Sep 2008 14:30:48 -0400

 --Boundary-00=_clCwIcfQZalDZk1
 Content-Type: text/plain;
   charset="iso-8859-1"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 Actually 'tftp-server-name' must be a valid hostname and it has to be 
 validated with res_hnok() function.  Please try the attached patch.  
 It will add all options listed in dhcp-options(5) and RFC 2132 as the 
 manual page says.
 
 Jung-uk Kim
 
 --Boundary-00=_clCwIcfQZalDZk1
 Content-Type: text/x-diff;
   charset="iso-8859-1";
   name="dhclient.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
 	filename="dhclient.diff"
 
 Index: sbin/dhclient/tables.c
 ===================================================================
 --- sbin/dhclient/tables.c	(revision 182762)
 +++ sbin/dhclient/tables.c	(working copy)
 @@ -387,13 +387,25 @@
  	DHO_FONT_SERVERS,
  	DHO_X_DISPLAY_MANAGER,
  	DHO_DHCP_PARAMETER_REQUEST_LIST,
 +	DHO_NISPLUS_DOMAIN,
 +	DHO_NISPLUS_SERVERS,
 +	DHO_TFTP_SERVER_NAME,
 +	DHO_BOOTFILE_NAME,
 +	DHO_MOBILE_IP_HOME_AGENT,
 +	DHO_SMTP_SERVER,
 +	DHO_POP_SERVER,
 +	DHO_NNTP_SERVER,
 +	DHO_WWW_SERVER,
 +	DHO_FINGER_SERVER,
 +	DHO_IRC_SERVER,
 +	DHO_STREETTALK_SERVER,
 +	DHO_STREETTALK_DA_SERVER,
  
  	/* Presently-undefined options... */
 -	62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
 -	78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
 -	93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
 -	107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
 -	119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130,
 +	62, 63, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
 +	92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
 +	106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
 +	118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130,
  	131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
  	143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
  	155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
 Index: sbin/dhclient/dhcp.h
 ===================================================================
 --- sbin/dhclient/dhcp.h	(revision 182762)
 +++ sbin/dhclient/dhcp.h	(working copy)
 @@ -155,12 +155,19 @@
  #define DHO_DHCP_REBINDING_TIME		59
  #define DHO_DHCP_CLASS_IDENTIFIER	60
  #define DHO_DHCP_CLIENT_IDENTIFIER	61
 +#define	DHO_NISPLUS_DOMAIN		64
 +#define	DHO_NISPLUS_SERVERS		65
 +#define	DHO_TFTP_SERVER_NAME		66
 +#define	DHO_BOOTFILE_NAME		67
 +#define	DHO_MOBILE_IP_HOME_AGENT	68
  #define DHO_SMTP_SERVER			69
  #define DHO_POP_SERVER			70
  #define DHO_NNTP_SERVER			71
  #define DHO_WWW_SERVER			72
  #define DHO_FINGER_SERVER		73
  #define DHO_IRC_SERVER			74
 +#define	DHO_STREETTALK_SERVER		75
 +#define	DHO_STREETTALK_DA_SERVER	76
  #define DHO_DHCP_USER_CLASS_ID		77
  #define DHO_CLASSLESS_ROUTES		121
  #define DHO_END				255
 Index: sbin/dhclient/dhclient.c
 ===================================================================
 --- sbin/dhclient/dhclient.c	(revision 182762)
 +++ sbin/dhclient/dhclient.c	(working copy)
 @@ -2317,12 +2317,16 @@
  	case DHO_NETBIOS_DD_SERVER:
  	case DHO_FONT_SERVERS:
  	case DHO_DHCP_SERVER_IDENTIFIER:
 +	case DHO_NISPLUS_SERVERS:
 +	case DHO_MOBILE_IP_HOME_AGENT:
  	case DHO_SMTP_SERVER:
  	case DHO_POP_SERVER:
  	case DHO_NNTP_SERVER:
  	case DHO_WWW_SERVER:
  	case DHO_FINGER_SERVER:
  	case DHO_IRC_SERVER:
 +	case DHO_STREETTALK_SERVER:
 +	case DHO_STREETTALK_DA_SERVER:
  		if (!ipv4addrs(opbuf)) {
  			warning("Invalid IP address in option: %s", opbuf);
  			return (0);
 @@ -2330,6 +2334,8 @@
  		return (1)  ;
  	case DHO_HOST_NAME:
  	case DHO_NIS_DOMAIN:
 +	case DHO_NISPLUS_DOMAIN:
 +	case DHO_TFTP_SERVER_NAME:
  		if (!res_hnok(sbuf)) {
  			warning("Bogus Host Name option %d: %s (%s)", option,
  			    sbuf, opbuf);
 @@ -2388,6 +2394,7 @@
  	case DHO_DHCP_REBINDING_TIME:
  	case DHO_DHCP_CLASS_IDENTIFIER:
  	case DHO_DHCP_CLIENT_IDENTIFIER:
 +	case DHO_BOOTFILE_NAME:
  	case DHO_DHCP_USER_CLASS_ID:
  	case DHO_END:
  		return (1);
 
 --Boundary-00=_clCwIcfQZalDZk1--


More information about the freebsd-bugs mailing list