diff --git a/dhcp.c b/dhcp.c index f903340..a33d77f 100644 --- a/dhcp.c +++ b/dhcp.c @@ -243,6 +243,11 @@ static void parse_reply(struct bootp_request * breq, struct interface_info * int tmp_str[length] = '\0'; domain = strdup(tmp_str); log_message("got domain %s", domain); + if (setdomainname(domain, strlen(domain)) == 0) + log_message("set domain %s", domain); + else + log_message("could not set domain %s", domain); + break; case BOOTP_OPTION_BROADCAST: @@ -260,6 +265,11 @@ static void parse_reply(struct bootp_request * breq, struct interface_info * int tmp_str[length] = '\0'; hostname = strdup(tmp_str); log_message("got hostname %s", hostname); + if (sethostname(hostname, strlen(hostname)) == 0) + log_message("set hostname %s", hostname); + else + log_message("could not set hostname %s", hostname); + break; case BOOTP_OPTION_ROOTPATH: @@ -591,6 +601,7 @@ enum return_type perform_dhcp(struct interface_info * intf) requested_options[num_options++] = BOOTP_OPTION_GATEWAY; requested_options[num_options++] = BOOTP_OPTION_DNS; requested_options[num_options++] = BOOTP_OPTION_DOMAIN; + requested_options[num_options++] = BOOTP_OPTION_HOSTNAME; requested_options[num_options++] = BOOTP_OPTION_ROOTPATH; requested_options[num_options++] = BOOTP_OPTION_BROADCAST; add_vendor_code(&breq, DHCP_OPTION_OPTIONREQ, num_options, requested_options);