X-Git-Url: https://git.decadent.org.uk/gitweb/?p=odhcp6c.git;a=blobdiff_plain;f=src%2Fodhcp6c.c;h=a71218c06e9d4850272ca0fae5e07d9f4c1209ae;hp=4605792c6a97eb93259012618d14e8cbc4dd101e;hb=d21764d12bb799f89d42c94dc20d4adb6d588077;hpb=9ab4436ebed3a86f22bcc5831671d3d94c9f8155 diff --git a/src/odhcp6c.c b/src/odhcp6c.c index 4605792..a71218c 100644 --- a/src/odhcp6c.c +++ b/src/odhcp6c.c @@ -278,13 +278,14 @@ int main(_unused int argc, char* const argv[]) odhcp6c_clear_state(STATE_NTP_FQDN); odhcp6c_clear_state(STATE_SIP_IP); odhcp6c_clear_state(STATE_SIP_FQDN); - dhcpv6_set_ia_mode(ia_na_mode, ia_pd_mode); bound = false; syslog(LOG_NOTICE, "(re)starting transaction on %s", ifname); signal_usr1 = signal_usr2 = false; - int mode = dhcpv6_request(DHCPV6_MSG_SOLICIT); + int mode = dhcpv6_set_ia_mode(ia_na_mode, ia_pd_mode); + if (mode != DHCPV6_STATELESS) + mode = dhcpv6_request(DHCPV6_MSG_SOLICIT); odhcp6c_signal_process(); if (mode < 0)