|
@@ -612,16 +612,23 @@ static int apply_dns_settings ( void ) {
|
612
|
612
|
( struct sockaddr_in * ) &nameserver;
|
613
|
613
|
int len;
|
614
|
614
|
|
|
615
|
+ /* Fetch DNS server address */
|
|
616
|
+ nameserver.st_family = 0;
|
615
|
617
|
if ( ( len = fetch_ipv4_setting ( NULL, &dns_setting,
|
616
|
618
|
&sin_nameserver->sin_addr ) ) >= 0 ){
|
617
|
|
- sin_nameserver->sin_family = AF_INET;
|
|
619
|
+ nameserver.st_family = AF_INET;
|
618
|
620
|
DBG ( "DNS using nameserver %s\n",
|
619
|
621
|
inet_ntoa ( sin_nameserver->sin_addr ) );
|
620
|
622
|
}
|
621
|
623
|
|
622
|
624
|
/* Get local domain DHCP option */
|
|
625
|
+ free ( localdomain );
|
623
|
626
|
if ( ( len = fetch_string_setting_copy ( NULL, &domain_setting,
|
624
|
|
- &localdomain ) ) >= 0 )
|
|
627
|
+ &localdomain ) ) < 0 ) {
|
|
628
|
+ DBG ( "DNS could not fetch local domain: %s\n",
|
|
629
|
+ strerror ( len ) );
|
|
630
|
+ }
|
|
631
|
+ if ( localdomain )
|
625
|
632
|
DBG ( "DNS local domain %s\n", localdomain );
|
626
|
633
|
|
627
|
634
|
return 0;
|