ok, so I found the problem.  The pcap that wyatt earp attached
(excellent info, thanks wyatt) shows the same scenario I'm seeing at
home, where the DHCP server's DHCPACK message includes two (identical)
"subnet mask" options.

Now, I'm no DHCP expert, but RFC 2131, Page 23 says
"Options may appear only once, unless otherwise specified in the options 
document.  The client concatenates  the values of multiple instances of the 
same option into a single parameter list for configuration."

The subnet mask option documentation does not specify that it can occur
more than once, and tables.c (lines 101-102) show that dhclient only
expects a single value:

static struct option dhcp_options[] = {
        { "subnet-mask", "I",                   &dhcp_universe,   1, 1 },


The problem ends up being that dhclient appends the second subnet-mask value to 
the first, giving it a length of 8, rather than 4.  So, dhcpack function calls 
bind_lease function, which calls the script_write_params function.  

The script_write_params function tries to find the network number using
the netmask acquired from DHCPACK message.  At this point, netmask.iabuf
looks like this:

len

iabuf     0xbfffdf4c    
        iabuf[0]        0xff    
        iabuf[1]        0xff    
        iabuf[2]        0xff    
        iabuf[3]        0       
        iabuf[4]        0xff    
        iabuf[5]        0xff    
        iabuf[6]        0xff    
        iabuf[7]        0       

script_write_params function calls subnet_number, which sees that the
netmask

So it would seem that the server is wrong in sending two subnet mask
options, but IMHO, dhclient could be more lenient in the case where the
two are identical.  After all, other dhcp clients connecting to my

-- 
dhclient 3.0.6 refuses valid offer
https://bugs.launchpad.net/bugs/270010
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to