Hi,

The send_d6_renew function in d6_dhcpc.c has:

    /* Fill in: msg type, xid, ELAPSED_TIME */
    opt_ptr = init_d6_packet(&packet, DHCPREQUEST);

The use of DHCPREQUEST appears to be a copy/paste error from the IPv4
client.  It should be D6_MSG_RENEW, which is defined in d6_common.h
but not used anywhere.  The current define of DHCPREQUEST results in
sending the wrong message type, as DHCPREQUEST is 3 while D6_MSG_RENEW
is 5.  (In fact, using DHCPREQUEST being 3 means that it is like
sending D6_MSG_REQUEST.)

On my system, using SIGUSR1 to do a renew seems to not work well even
after fixing this error - I see that the renew is quickly followed by
sending a Solicit which then results in the server giving me a new
address rather than extending the lease on the current one.  But maybe
this is an issue with my understanding of DHCPv6, or an issue with my
router.  Regardless, it seems clear that the IPv4 DHCPREQUEST constant
in d6_dhcpc.c should be replaced with the IPv6 D6_MSG_RENEW constant.

Thanks,
Danomi -
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to