X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fdhcpv4.h;h=f48c005e7387a3295097d94cb865b3b130509f2c;hp=6c4dd50e08b3879a26f90949e2d1958bd8314796;hb=7aa2594c5a127d92fa8f04328ac7b43e595bcaa7;hpb=e63a2837acfaf54c97a9db466bf485e9f7024fe8 diff --git a/src/dhcpv4.h b/src/dhcpv4.h index 6c4dd50..f48c005 100644 --- a/src/dhcpv4.h +++ b/src/dhcpv4.h @@ -1,5 +1,6 @@ /** * Copyright (C) 2012 Steven Barth + * Copyright (C) 2016 Hans Dedecker * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -32,6 +33,7 @@ enum dhcpv4_msg { DHCPV4_MSG_NAK = 6, DHCPV4_MSG_RELEASE = 7, DHCPV4_MSG_INFORM = 8, + DHCPV4_MSG_FORCERENEW = 9, }; enum dhcpv4_opt { @@ -51,7 +53,9 @@ enum dhcpv4_opt { DHCPV4_OPT_HOSTNAME = 12, DHCPV4_OPT_REQUEST = 17, DHCPV4_OPT_USER_CLASS = 77, + DHCPV4_OPT_AUTHENTICATION = 90, DHCPV4_OPT_SEARCH_DOMAIN = 119, + DHCPV4_OPT_FORCERENEW_NONCE_CAPABLE = 145, DHCPV4_OPT_END = 255, }; @@ -73,13 +77,34 @@ struct dhcpv4_message { uint8_t options[312]; }; +struct dhcpv4_auth_forcerenew { + uint8_t protocol; + uint8_t algorithm; + uint8_t rdm; + uint32_t replay[2]; + uint8_t type; + uint8_t key[16]; +} _packed; + +struct odhcpd_ref_ip; + struct dhcpv4_assignment { struct list_head head; + struct interface *iface; + + struct uloop_timeout fr_timer; + struct odhcpd_ref_ip *fr_ip; + bool accept_fr_nonce; + int fr_cnt; + uint8_t key[16]; + + unsigned int flags; + uint32_t addr; time_t valid_until; uint8_t hwaddr[6]; uint32_t leasetime; - char hostname[]; + char *hostname; }; struct dhcpv4_option {