DHCP client error: domain_not_set.invalid

Brooks Davis brooks at one-eyed-alien.net
Mon Nov 14 09:44:36 PST 2005


On Sun, Nov 13, 2005 at 07:14:00PM -0800, Mark Space wrote:
> Hi all,
> 
> I just set up the latest 6.0 release, and I'm getting errors with the 
> DHCP client.  Trying to pull a network address during start up, I get:
> 
> Bogus domain search list 15: domain_not_set.invalid
> 
> This repeats several times before giving up.  Google tells me that this 
> problem was report by two users on the bsd-current list.  No one ever 
> replied to their inquiries (at least on the list), so I thought to try 
> once more to see if there's any interest in addressing this issue. 
> 
> More info was in the original post:
> http://lists.freebsd.org/pipermail/freebsd-current/2005-October/057034.html

We should really bitch and then ignore this value when it's bogus rather
than rejecting the lease.  We should also probably allow underscores
since they are popular among clueless Microsoft admins.  Please try the
follow patch.

-- Brooks

Index: dhclient.c
===================================================================
RCS file: /home/ncvs/src/sbin/dhclient/dhclient.c,v
retrieving revision 1.11
diff -u -p -r1.11 dhclient.c
--- dhclient.c	2 Sep 2005 17:35:35 -0000	1.11
+++ dhclient.c	14 Nov 2005 17:42:46 -0000
@@ -67,6 +67,7 @@ __FBSDID("$FreeBSD: src/sbin/dhclient/dh
 
 #define	PERIOD 0x2e
 #define	hyphenchar(c) ((c) == 0x2d)
+#define	underscorechar(c) ((c) == 0x5f)
 #define	bslashchar(c) ((c) == 0x5c)
 #define	periodchar(c) ((c) == PERIOD)
 #define	asterchar(c) ((c) == 0x2a)
@@ -76,7 +77,7 @@ __FBSDID("$FreeBSD: src/sbin/dhclient/dh
 #define	whitechar(c) ((c) == ' ' || (c) == '\t')
 
 #define	borderchar(c) (alphachar(c) || digitchar(c))
-#define	middlechar(c) (borderchar(c) || hyphenchar(c))
+#define	middlechar(c) (borderchar(c) || hyphenchar(c) || underscorechar(c))
 #define	domainchar(c) ((c) > 0x20 && (c) < 0x7f)
 
 #define	CLIENT_PATH "PATH=/usr/bin:/usr/sbin:/bin:/sbin"
@@ -2252,6 +2253,8 @@ check_option(struct client_lease *l, int
 		if (!res_hnok(sbuf)) {
 			warning("Bogus Host Name option %d: %s (%s)", option,
 			    sbuf, opbuf);
+			l->options[option].len = 0;
+			free(l->options[option].data);
 			return (0);
 		}
 		return (1);
@@ -2260,7 +2263,8 @@ check_option(struct client_lease *l, int
 			if (!check_search(sbuf)) {
 				warning("Bogus domain search list %d: %s (%s)",
 				    option, sbuf, opbuf);
-				return (0);
+				l->options[option].len = 0;
+				free(l->options[option].data);
 			}
 		}
 		return (1);

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20051114/9ba19844/attachment.bin


More information about the freebsd-stable mailing list