View | Details | Raw Unified | Return to bug 217978
Collapse All | Expand All

(-)b/sbin/dhclient/dhclient.c (-4 / +13 lines)
Lines 843-848 void Link Here
843
state_bound(void *ipp)
843
state_bound(void *ipp)
844
{
844
{
845
	struct interface_info *ip = ipp;
845
	struct interface_info *ip = ipp;
846
	u_int8_t *dp = NULL;
847
	int len;
846
848
847
	ASSERT_STATE(state, S_BOUND);
849
	ASSERT_STATE(state, S_BOUND);
848
850
Lines 850-859 state_bound(void *ipp) Link Here
850
	make_request(ip, ip->client->active);
852
	make_request(ip, ip->client->active);
851
	ip->client->xid = ip->client->packet.xid;
853
	ip->client->xid = ip->client->packet.xid;
852
854
853
	if (ip->client->active->options[DHO_DHCP_SERVER_IDENTIFIER].len == 4) {
855
	if (ip->client->config->default_actions[DHO_DHCP_SERVER_IDENTIFIER] ==
854
		memcpy(ip->client->destination.iabuf, ip->client->active->
856
	    ACTION_SUPERSEDE) {
855
		    options[DHO_DHCP_SERVER_IDENTIFIER].data, 4);
857
		dp = ip->client->config->defaults[DHO_DHCP_SERVER_IDENTIFIER].data;
856
		ip->client->destination.len = 4;
858
		len = ip->client->config->defaults[DHO_DHCP_SERVER_IDENTIFIER].len;
859
	} else {
860
		dp = ip->client->active->options[DHO_DHCP_SERVER_IDENTIFIER].data;
861
		len = ip->client->active->options[DHO_DHCP_SERVER_IDENTIFIER].len;
862
	}
863
	if (len == 4) {
864
		memcpy(ip->client->destination.iabuf, dp, len);
865
		ip->client->destination.len = len;
857
	} else
866
	} else
858
		ip->client->destination = iaddr_broadcast;
867
		ip->client->destination = iaddr_broadcast;
859
868

Return to bug 217978