]> git.decadent.org.uk Git - odhcp6c.git/blobdiff - src/odhcp6c.h
Fix calculation of preferred and valid times
[odhcp6c.git] / src / odhcp6c.h
index 8ab938e94c9aba78c41fdf2c010a8bb4ec340289..1a5aabcc1ddaccedf5e77e4d8a8152ad50ee7dd0 100644 (file)
@@ -48,6 +48,15 @@ enum dhcvp6_opt {
        DHCPV6_OPT_IA_PREFIX = 26,
        DHCPV6_OPT_INFO_REFRESH = 32,
        DHCPV6_OPT_FQDN = 39,
+       DHCPV6_OPT_NTP_SERVER = 56,
+       DHCPV6_OPT_SIP_SERVER_D = 21,
+       DHCPV6_OPT_SIP_SERVER_A = 22,
+};
+
+enum dhcpv6_opt_npt {
+       NTP_SRV_ADDR = 1,
+       NTP_MC_ADDR = 2,
+       NTP_SRV_FQDN = 3
 };
 
 enum dhcpv6_msg {
@@ -148,8 +157,11 @@ enum odhcp6c_state {
        STATE_SEARCH,
        STATE_IA_NA,
        STATE_IA_PD,
-       STATE_IA_PD_LOST,
        STATE_CUSTOM_OPTS,
+       STATE_SNTP_IP,
+       STATE_SNTP_FQDN,
+       STATE_SIP_IP,
+       STATE_SIP_FQDN,
        _STATE_MAX
 };
 
@@ -183,7 +195,7 @@ void dhcpv6_remove_addrs(void);
 
 int init_rtnetlink(void);
 int set_rtnetlink_addr(int ifindex, const struct in6_addr *addr,
-               time_t pref, time_t valid);
+               uint32_t pref, uint32_t valid);
 
 int script_init(const char *path, const char *ifname);
 ssize_t script_unhexlify(uint8_t *dst, size_t len, const char *src);
@@ -192,7 +204,7 @@ void script_call(const char *status);
 
 // State manipulation
 bool odhcp6c_signal_is_pending(void);
-uint64_t adhc6c_get_milli_time(void);
+uint64_t odhcp6c_get_milli_time(void);
 void odhcp6c_clear_state(enum odhcp6c_state state);
 void odhcp6c_add_state(enum odhcp6c_state state, const void *data, size_t len);
 size_t odhcp6c_remove_state(enum odhcp6c_state state, size_t offset, size_t len);