X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=src%2Fodhcp6c.c;h=4e50758c1aee91775f53f73959998eb0cfa9cc5c;hb=d30e43bca363c003dfa41c963ab2e36d67365cc1;hp=f3634d2dd714b9152040e569c6534889d5aa2c17;hpb=73796053a15bb017cdcfae6db6c27c1b4eb12a22;p=odhcp6c.git diff --git a/src/odhcp6c.c b/src/odhcp6c.c index f3634d2..4e50758 100644 --- a/src/odhcp6c.c +++ b/src/odhcp6c.c @@ -54,8 +54,8 @@ int main(_unused int argc, char* const argv[]) enum odhcp6c_ia_mode ia_na_mode = IA_MODE_TRY; bool help = false, daemonize = false; - int c, request_pd = 0, timeout = 0; - while ((c = getopt(argc, argv, "N:P:c:r:s:t:hdp:")) != -1) { + int c, request_pd = 0; + while ((c = getopt(argc, argv, "N:P:c:r:s:hdp:")) != -1) { switch (c) { case 'N': if (!strcmp(optarg, "force")) @@ -103,10 +103,6 @@ int main(_unused int argc, char* const argv[]) script = optarg; break; - case 't': - timeout = strtoul(optarg, NULL, 10); - break; - case 'd': daemonize = true; break; @@ -134,7 +130,6 @@ int main(_unused int argc, char* const argv[]) signal(SIGHUP, sighandler); signal(SIGINT, sighandler); - signal(SIGALRM, sighandler); signal(SIGCHLD, sighandler); signal(SIGTERM, sighandler); signal(SIGUSR1, sighandler); @@ -170,12 +165,12 @@ int main(_unused int argc, char* const argv[]) odhcp6c_clear_state(STATE_SERVER_ID); odhcp6c_clear_state(STATE_SERVER_CAND); odhcp6c_clear_state(STATE_IA_PD); - odhcp6c_clear_state(STATE_IA_PD_LOST); odhcp6c_clear_state(STATE_SNTP_IP); odhcp6c_clear_state(STATE_SNTP_FQDN); + odhcp6c_clear_state(STATE_SIP_IP); + odhcp6c_clear_state(STATE_SIP_FQDN); dhcpv6_set_ia_na_mode(ia_na_mode); - alarm(timeout); do_signal = 0; int res = dhcpv6_request(DHCPV6_MSG_SOLICIT); @@ -193,14 +188,10 @@ int main(_unused int argc, char* const argv[]) else if (res > 0) script_call("informed"); - alarm(0); if (dhcpv6_poll_reconfigure() > 0) script_call("informed"); } - if (do_signal == SIGALRM) - script_call("timeout"); - continue; } @@ -209,7 +200,6 @@ int main(_unused int argc, char* const argv[]) continue; script_call("bound"); - alarm(0); while (do_signal == 0 || do_signal == SIGUSR1) { // Renew Cycle @@ -259,18 +249,13 @@ int main(_unused int argc, char* const argv[]) size_t ia_pd_len, ia_na_len, server_id_len; - uint8_t *ia_pd = odhcp6c_get_state(STATE_IA_PD, &ia_pd_len); + odhcp6c_get_state(STATE_IA_PD, &ia_pd_len); odhcp6c_get_state(STATE_IA_NA, &ia_na_len); odhcp6c_get_state(STATE_SERVER_ID, &server_id_len); // Add all prefixes to lost prefixes - odhcp6c_add_state(STATE_IA_PD_LOST, ia_pd, ia_pd_len); odhcp6c_clear_state(STATE_IA_PD); - - if (do_signal == SIGALRM) - script_call("timeout"); - else - script_call("unbound"); + script_call("unbound"); // Remove assigned addresses if (ia_na_len > 0) @@ -295,7 +280,6 @@ static int usage(void) " -c Override client-ID (base-16 encoded)\n" " -r Options to be requested (comma-separated)\n" " -s