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