Changeset 7aba2ea in rtems
- Timestamp:
- 05/22/12 09:20:07 (11 years ago)
- Branches:
- 4.11, 5, master
- Children:
- e21c287c
- Parents:
- 6a5bd1c
- git-author:
- Sebastien Bourdeauducq <sebastien@…> (05/22/12 09:20:07)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (05/22/12 12:47:15)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/libnetworking/rtems/rtems_dhcp.c
r6a5bd1c r7aba2ea 206 206 DHCP_HOST, 207 207 DHCP_DOMAIN_NAME }; 208 #define NUM_NAMESERVERS \ 209 (sizeof rtems_bsdnet_config.name_server / sizeof rtems_bsdnet_config.name_server[0]) 210 static struct in_addr rtems_dhcpd_nameserver[NUM_NAMESERVERS]; 211 static int rtems_dhcpd_nameserver_count = 0; 212 213 /* 214 * Clean any DNS entries add by a DHCP request. 215 */ 216 static void 217 clean_dns_entries (void) 218 { 219 int e; 220 for (e = 0; e < rtems_dhcpd_nameserver_count; ++e) 221 { 222 int n; 223 for (n = 0; n < rtems_bsdnet_nameserver_count; ++ n) 224 { 225 if (memcmp (&rtems_dhcpd_nameserver[e], &rtems_bsdnet_nameserver[n], 4) == 0) 226 { 227 if (n < (NUM_NAMESERVERS - 1)) 228 memmove (&rtems_bsdnet_nameserver[n], 229 &rtems_bsdnet_nameserver[n + 1], 230 (NUM_NAMESERVERS - n - 1) * 4); 231 --rtems_bsdnet_nameserver_count; 232 } 233 } 234 } 235 rtems_dhcpd_nameserver_count = 0; 236 } 208 237 209 238 /* … … 364 393 int dlen = 0; 365 394 while ((dlen < len) && 366 (rtems_bsdnet_nameserver_count < 367 sizeof rtems_bsdnet_config.name_server / 368 sizeof rtems_bsdnet_config.name_server[0])) 395 (rtems_dhcpd_nameserver_count < NUM_NAMESERVERS) && 396 (rtems_bsdnet_nameserver_count < NUM_NAMESERVERS)) 369 397 { 398 memcpy (&rtems_dhcpd_nameserver 399 [rtems_dhcpd_nameserver_count], p + dlen, 4); 400 rtems_dhcpd_nameserver_count++; 370 401 memcpy (&rtems_bsdnet_nameserver 371 402 [rtems_bsdnet_nameserver_count], p + dlen, 4); … … 744 775 } 745 776 777 /* 778 * We have an ack. Clear the DNS entries that have been assigned by a previous 779 * DHCP request. 780 */ 781 clean_dns_entries (); 782 783 /* 784 * Process this requests options. 785 */ 746 786 process_options (&dhcp_req.vend[4], sizeof (dhcp_req.vend) - 4); 747 787 … … 858 898 struct proc *procp = NULL; 859 899 900 clean_dns_entries(); 901 860 902 /* 861 903 * If we are to update the files create the root
Note: See TracChangeset
for help on using the changeset viewer.