*** From dhcp-server -- To unsubscribe, see the end of this message. ***

> There is one more difference between the joind packet and the isc one 
> that may be of interest.  Notice the recipient of the packet:
> 
> isc   -> 255.255.255.255.bootpc
> joind -> client.isds.duke.edu.bootpc

No, only if the client is actually assigned a different address would
it make a difference.

> Also, I am somewhate curious as to why does the ISC packet have a 
> [tos 0x10] in it?

#define IPTOS_LOWDELAY          0x10

Dunno.   It seemed like the right thing to put in at the time.   It
shouldn't make any difference in this case.

The IP addresses being assigned are the same in both cases.

So after cogitating for a while and picking apart both packets once
again, I stumbled across the obvious.  Look at this - here's what the
two servers are sending:

joind 01 04 ff ff ff 00     subnet-mask = 255.255.255.0
isc   01 04 ff ff ff 00     subnet-mask = 255.255.255.0
joind                       no routers option
isc   03 04 98 03 16 fa     routers = 152.3.22.250
joind                       no domain-name-servers option
isc   06 04 98 03 16 01     domain-name-servers = 152.3.22.1
joind 0c 08 63 68 69 70 6f 74 6c 65    host-name = chipotle
isc   0c 08 63 68 69 70 6f 74 6c 65    host-name = chipotle
joind 0d 02 30 d7           boot-size = 12503
isc                         no boot-size option
joind                       no domain-name option
isc   0f 0d 69 73 64 73 2e 64 75 6b 65 2e 65 64 75
                            domain-name = isds.duke.edu
joind 11 10 64 61 76 69 6e 63 69 3a 2f 72 69 73 2f 6b 69 74
                            root-path = davinci:/ris/kit
isc                         no root-path option
joind                       no broadcast-address option
isc   1c 04 98 03 16 ff     broadcast-address = 152.3.24.255

Notice how none of the options in your host declaration got sent?  It
turns out that in 3.0, I made a really stupid pasto for which the
corrective diff is included below (along with some unrelated stuff).
Sigh.  This should fix your problem.  We needed the rfc1048 hack as
well - it's just your bad luck that there were two impediments and not
one.  Sorry for all the iterations...  :'}

                               _MelloN_

Index: bootp.c
===================================================================
RCS file: /proj/src/isc/cvs-1/DHCP/server/bootp.c,v
retrieving revision 1.44
diff -c -r1.44 bootp.c
*** bootp.c     1999/04/08 19:36:23     1.44
--- bootp.c     1999/04/11 23:33:01
***************
*** 123,129 ****
        
        /* Execute the host statements. */
        execute_statements_in_scope (packet, options, options, hp -> group,
!                                    lease -> subnet -> group);
        
        /* Drop the request if it's not allowed for this client. */
        if (evaluate_boolean_option_cache (packet, options,
--- 123,129 ----
        
        /* Execute the host statements. */
        execute_statements_in_scope (packet, options, options, hp -> group,
!                                    hp -> group);
        
        /* Drop the request if it's not allowed for this client. */
        if (evaluate_boolean_option_cache (packet, options,
***************
*** 205,212 ****
        memcpy (&raw.yiaddr, ip_address.iabuf, sizeof raw.yiaddr);
  
        /* Figure out the address of the next server. */
-       raw.siaddr = (lease -> subnet -> shared_network ->
-                     interface -> primary_address);
        memset (&d1, 0, sizeof d1);
        oc = lookup_option (&dhcp_universe, options, SV_NEXT_SERVER);
        if (oc &&
--- 205,210 ----
***************
*** 215,220 ****
--- 213,224 ----
                if (d1.len >= 4 && d1.data)
                        memcpy (&raw.siaddr, d1.data, 4);
                data_string_forget (&d1, "bootrequest");
+       } else {
+               if (lease -> subnet -> shared_network -> interface)
+                       raw.siaddr = (lease -> subnet -> shared_network ->
+                                     interface -> primary_address);
+               else
+                       raw.siaddr = packet -> interface -> primary_address;
        }
  
        raw.giaddr = packet -> raw -> giaddr;


------------------------------------------------------------------------------
To unsubscribe from this list, please visit http://www.fugue.com/dhcp/lists
If you are without web access, or if you are having trouble with the web page,
please send mail to [EMAIL PROTECTED]   Please try to use the web
page first - it will take a long time for your request to be processed by hand.
------------------------------------------------------------------------------

Reply via email to