I am surprised you are getting away with binding the socket to the
broadcast address. The other bug is just a simple compiler warning.

diff --git a/sdhcp.c b/sdhcp.c
index e2a641e..47cabf6 100644
--- a/sdhcp.c
+++ b/sdhcp.c
@@ -467,7 +467,7 @@ main(int argc, char *argv[])
        if (argc)
                ifname = argv[0]; /* interface name */
        if (argc >= 2)
-               strlcpy(cid, argv[1], sizeof(cid)); /* client-id */
+               strlcpy((char *)cid, argv[1], sizeof(cid)); /* client-id */
 
        memset(&ifreq, 0, sizeof(ifreq));
        signal(SIGALRM, nop);
@@ -482,7 +482,7 @@ main(int argc, char *argv[])
        ioctl(sock, SIOCGIFINDEX, &ifreq);
        if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &ifreq, sizeof ifreq) 
== -1)
                eprintf("setsockopt:");
-       iptoaddr(&addr, IP(255, 255, 255, 255), 68);
+       iptoaddr(&addr, IP(0, 0, 0, 0), 68);
        if (bind(sock, (void*)&addr, sizeof addr) != 0)
                eprintf("bind:");
        ioctl(sock, SIOCGIFHWADDR, &ifreq);

Reply via email to