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

(-)a/dhcp.c (-1 / +32 lines)
Lines 228-233 static int initial_setup_interface(char * device, int s) { Link Here
228
	return 0;
228
	return 0;
229
}
229
}
230
230
231
static int interface_cleanup(char * device, int s) {
232
	/*
233
	 * Removing the auxiliary route
234
	 * made by initial_setup_interface()
235
	 */
236
	struct rtentry route;
237
	struct sockaddr_in* address;
238
239
	memset(&route, 0, sizeof(route));
240
241
	route.rt_dev = device;
242
	route.rt_flags = RTF_UP | RTF_GATEWAY;
243
	route.rt_metric = 0;
244
245
	address = &route.rt_dst;
246
	address->sin_family = AF_INET;
247
248
	address = &route.rt_gateway;
249
	address->sin_family = AF_INET;
250
251
	address = &route.rt_genmask;
252
	address->sin_family = AF_INET;
253
254
	if (ioctl(s, SIOCDELRT, &route)) {
255
		close(s);
256
		log_perror("SIOCDELRT");
257
		return -1;
258
	}
259
260
	return 0;
261
}
231
262
232
void set_missing_ip_info(struct interface_info * intf)
263
void set_missing_ip_info(struct interface_info * intf)
233
{
264
{
Lines 669-674 enum return_type perform_dhcp(struct interface_info * intf) Link Here
669
	}
700
	}
670
	lease = ntohl(lease);
701
	lease = ntohl(lease);
671
702
703
	interface_cleanup(intf->device, s);
672
	close(s);
704
	close(s);
673
	free(vendorClass);
705
	free(vendorClass);
674
706
675
- 

Return to bug 34347