On Wednesday 20 March 2013 15:31:26 Andreas Oberritter wrote:
> * Doesn't require the 'hostname' option in /etc/network/interfaces,
>   and thus makes udhcpc behave like other clients.
> 
> Signed-off-by: Andreas Oberritter <[email protected]>
> ---
>  networking/udhcp/dhcpc.c |    9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
> index fe2e681..35487b6 100644
> --- a/networking/udhcp/dhcpc.c
> +++ b/networking/udhcp/dhcpc.c
> @@ -1375,6 +1375,15 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>               logmode |= LOGMODE_SYSLOG;
>       }
>  
> +     /* try to get hostname from OS */
> +     if (!client_config.hostname) {
> +             char hostname[256];     /* SUSv2: hostnames are <= 255 bytes */
> +             if (gethostname(hostname, sizeof(hostname)) == 0) {
> +                     hostname[sizeof(hostname) - 1] = '\0';
> +                     client_config.hostname = 
> alloc_dhcp_option(DHCP_HOST_NAME, hostname, 0);
> +             }
> +     }
> +
>       /* Make sure fd 0,1,2 are open */
>       bb_sanitize_stdio();
>       /* Equivalent of doing a fflush after every \n */
> 


Hi,
I'm wondering about what will happen if gethostname fails,
seems to me you are in the same situation as before (!client_config.hostname) .
Maybe something like this;

        /* try to get hostname from OS */
        if (!client_config.hostname) {
                hostname = safe_gethostname();
                if (hostname[0] == '?')
                        hostname = xstrdup("Linux"); 
                client_config.hostname = alloc_dhcp_option(DHCP_HOST_NAME, 
hostname, 0);        
                free(hostname);
        }


Untested and probably stupid.

Just my 2 cents,

Ciao,
Tito


_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to