34 #include <sys/types.h>
35 #include <netinet/in.h>
36 #include <sys/socket.h>
38 #include <arpa/inet.h>
43 #define fd_set cygwin_fd_set
44 #include <sys/types.h>
59 #include <net/route.h>
60 #include <net/if_arp.h>
62 # include <net/if_dl.h>
103 #if defined(LDAP_CONFIGURATION)
105 # include <sys/utsname.h>
108 #if !defined (BYTE_NAME_HASH_SIZE)
109 # define BYTE_NAME_HASH_SIZE 401
111 #if !defined (BYTE_CODE_HASH_SIZE)
112 # define BYTE_CODE_HASH_SIZE 254
120 #if !defined (WORD_NAME_HASH_SIZE)
121 # define WORD_NAME_HASH_SIZE 20479
123 #if !defined (WORD_CODE_HASH_SIZE)
124 # define WORD_CODE_HASH_SIZE 16384
132 #if !defined (QUAD_NAME_HASH_SIZE)
133 # define QUAD_NAME_HASH_SIZE WORD_NAME_HASH_SIZE
135 #if !defined (QUAD_CODE_HASH_SIZE)
136 # define QUAD_CODE_HASH_SIZE WORD_CODE_HASH_SIZE
139 #if !defined (DNS_HASH_SIZE)
140 # define DNS_HASH_SIZE 0
144 #if !defined (DEFAULT_SPACE_HASH_SIZE)
145 # define DEFAULT_SPACE_HASH_SIZE 11
148 #if !defined (NWIP_HASH_SIZE)
149 # define NWIP_HASH_SIZE 17
152 #if !defined (FQDN_HASH_SIZE)
153 # define FQDN_HASH_SIZE 13
159 #if !defined (VIVCO_HASH_SIZE)
160 # define VIVCO_HASH_SIZE 127
163 #if !defined (VIVSO_HASH_SIZE)
164 # define VIVSO_HASH_SIZE VIVCO_HASH_SIZE
167 #if !defined (VSIO_HASH_SIZE)
168 # define VSIO_HASH_SIZE VIVCO_HASH_SIZE
171 #if !defined (VIV_ISC_HASH_SIZE)
172 # define VIV_ISC_HASH_SIZE 3
175 #if !defined (UNIVERSE_HASH_SIZE)
176 # define UNIVERSE_HASH_SIZE 13
179 #if !defined (GROUP_HASH_SIZE)
180 # define GROUP_HASH_SIZE 0
185 #if !defined (HOST_HASH_SIZE)
186 # define HOST_HASH_SIZE 22501
195 #if !defined (LEASE_HASH_SIZE)
196 # define LEASE_HASH_SIZE 100003
202 #if !defined (SCLASS_HASH_SIZE)
203 # define SCLASS_HASH_SIZE 12007
206 #if !defined (AGENT_HASH_SIZE)
207 # define AGENT_HASH_SIZE 11
216 #if !defined (SERVER_HASH_SIZE)
217 # define SERVER_HASH_SIZE (2*(sizeof(server_options) / sizeof(struct option)))
222 #if !defined (OPTION_HASH_SIZE)
223 # define OPTION_HASH_SIZE 17
224 # define OPTION_HASH_PTWO 32
225 # define OPTION_HASH_EXP 5
228 #define compute_option_hash(x) \
229 (((x) & (OPTION_HASH_PTWO - 1)) + \
230 (((x) >> OPTION_HASH_EXP) & \
231 (OPTION_HASH_PTWO - 1))) % OPTION_HASH_SIZE;
243 #if !defined (BINARY_LEASES)
244 #define LEASE_STRUCT struct lease *
245 #define LEASE_STRUCT_PTR struct lease **
246 #define LEASE_GET_FIRST(LQ) LQ
247 #define LEASE_GET_FIRSTP(LQ) *(LQ)
248 #define LEASE_GET_NEXT(LQ, LEASE) LEASE->next
249 #define LEASE_GET_NEXTP(LQ, LEASE) LEASE->next
250 #define LEASE_INSERTP(LQ, LEASE) lease_insert(LQ, LEASE)
251 #define LEASE_REMOVEP(LQ, LEASE) lease_remove(LQ, LEASE)
252 #define LEASE_NOT_EMPTY(LQ) LQ
253 #define LEASE_NOT_EMPTYP(LQ) *LQ
254 #define POOL_DESTROYP(LQ) lease_remove_all(LQ)
256 #define LEASE_STRUCT struct leasechain
257 #define LEASE_STRUCT_PTR struct leasechain *
258 #define LEASE_GET_FIRST(LQ) lc_get_first_lease(&LQ)
259 #define LEASE_GET_FIRSTP(LQ) lc_get_first_lease(LQ)
260 #define LEASE_GET_NEXT(LQ, LEASE) lc_get_next(&LQ, LEASE)
261 #define LEASE_GET_NEXTP(LQ, LEASE) lc_get_next(LQ, LEASE)
262 #define LEASE_INSERTP(LQ, LEASE) lc_add_sorted_lease(LQ, LEASE)
263 #define LEASE_REMOVEP(LQ, LEASE) lc_unlink_lease(LQ, LEASE)
264 #define LEASE_NOT_EMPTY(LQ) lc_not_empty(&LQ)
265 #define LEASE_NOT_EMPTYP(LQ) lc_not_empty(LQ)
266 #define POOL_DESTROYP(LQ) lc_delete_all(LQ)
334 #if defined(LDAP_CONFIGURATION)
341 int (*read_function)(
struct parse *);
392 #define OPTION_HAD_NULLS 0x00000001
451 #if !defined (PACKET_MAX_CLASSES)
452 # define PACKET_MAX_CLASSES 5
486 #define HARDWARE_ADDR_LEN 20
489 #define HARDWARE_ADDR_LEN_IOCTL 8
496 #if defined(LDAP_CONFIGURATION)
497 # define LDAP_BUFFER_SIZE 8192
498 # define LDAP_METHOD_STATIC 0
499 # define LDAP_METHOD_DYNAMIC 1
500 #if defined (LDAP_USE_SSL)
501 # define LDAP_SSL_OFF 0
502 # define LDAP_SSL_ON 1
503 # define LDAP_SSL_TLS 2
504 # define LDAP_SSL_LDAPS 3
508 struct ldap_config_stack {
517 struct ldap_config_stack *children;
518 struct ldap_config_stack *next;
539 #define FTS_EXPIRED 3
540 #define FTS_RELEASED 4
541 #define FTS_ABANDONED 5
547 #define FTS_LAST FTS_BACKUP
563 #if defined (BINARY_LEASES)
571 #if defined (BINARY_LEASES)
592 # define STATIC_LEASE 1
593 # define BOOTP_LEASE 2
594 # define RESERVED_LEASE 4
595 # define MS_NULL_TERMINATION 8
596 # define ON_UPDATE_QUEUE 16
597 # define ON_ACK_QUEUE 32
598 # define ON_QUEUE (ON_UPDATE_QUEUE | ON_ACK_QUEUE)
599 # define UNICAST_BROADCAST_HACK 64
600 # define ON_DEFERRED_QUEUE 128
603 # define PERSISTENT_FLAGS (ON_ACK_QUEUE | ON_UPDATE_QUEUE)
605 # define EPHEMERAL_FLAGS (MS_NULL_TERMINATION | \
606 UNICAST_BROADCAST_HACK | \
688 #define SHARED_NET_DECL 2
689 #define SUBNET_DECL 3
696 #define DISCOVER_RUNNING 0
697 #define DISCOVER_SERVER 1
698 #define DISCOVER_UNCONFIGURED 2
699 #define DISCOVER_RELAY 3
700 #define DISCOVER_SERVER46 4
701 #define DISCOVER_REQUESTED 5
704 #define DDNS_UPDATE_STYLE_NONE 0
705 #define DDNS_UPDATE_STYLE_AD_HOC 1
706 #define DDNS_UPDATE_STYLE_INTERIM 2
707 #define DDNS_UPDATE_STYLE_STANDARD 3
711 #define SV_DEFAULT_LEASE_TIME 1
712 #define SV_MAX_LEASE_TIME 2
713 #define SV_MIN_LEASE_TIME 3
714 #define SV_BOOTP_LEASE_CUTOFF 4
715 #define SV_BOOTP_LEASE_LENGTH 5
716 #define SV_BOOT_UNKNOWN_CLIENTS 6
717 #define SV_DYNAMIC_BOOTP 7
718 #define SV_ALLOW_BOOTP 8
719 #define SV_ALLOW_BOOTING 9
720 #define SV_ONE_LEASE_PER_CLIENT 10
721 #define SV_GET_LEASE_HOSTNAMES 11
722 #define SV_USE_HOST_DECL_NAMES 12
723 #define SV_USE_LEASE_ADDR_FOR_DEFAULT_ROUTE 13
724 #define SV_MIN_SECS 14
725 #define SV_FILENAME 15
726 #define SV_SERVER_NAME 16
727 #define SV_NEXT_SERVER 17
728 #define SV_AUTHORITATIVE 18
729 #define SV_VENDOR_OPTION_SPACE 19
730 #define SV_ALWAYS_REPLY_RFC1048 20
731 #define SV_SITE_OPTION_SPACE 21
732 #define SV_ALWAYS_BROADCAST 22
733 #define SV_DDNS_DOMAIN_NAME 23
734 #define SV_DDNS_HOST_NAME 24
735 #define SV_DDNS_REV_DOMAIN_NAME 25
736 #define SV_LEASE_FILE_NAME 26
737 #define SV_PID_FILE_NAME 27
738 #define SV_DUPLICATES 28
739 #define SV_DECLINES 29
740 #define SV_DDNS_UPDATES 30
741 #define SV_OMAPI_PORT 31
742 #define SV_LOCAL_PORT 32
743 #define SV_LIMITED_BROADCAST_ADDRESS 33
744 #define SV_REMOTE_PORT 34
745 #define SV_LOCAL_ADDRESS 35
746 #define SV_OMAPI_KEY 36
747 #define SV_STASH_AGENT_OPTIONS 37
748 #define SV_DDNS_TTL 38
749 #define SV_DDNS_UPDATE_STYLE 39
750 #define SV_CLIENT_UPDATES 40
751 #define SV_UPDATE_OPTIMIZATION 41
752 #define SV_PING_CHECKS 42
753 #define SV_UPDATE_STATIC_LEASES 43
754 #define SV_LOG_FACILITY 44
755 #define SV_DO_FORWARD_UPDATES 45
756 #define SV_PING_TIMEOUT 46
757 #define SV_RESERVE_INFINITE 47
758 #define SV_DDNS_CONFLICT_DETECT 48
759 #define SV_LEASEQUERY 49
760 #define SV_ADAPTIVE_LEASE_TIME_THRESHOLD 50
761 #define SV_DO_REVERSE_UPDATES 51
762 #define SV_FQDN_REPLY 52
763 #define SV_PREFER_LIFETIME 53
764 #define SV_DHCPV6_LEASE_FILE_NAME 54
765 #define SV_DHCPV6_PID_FILE_NAME 55
766 #define SV_LIMIT_ADDRS_PER_IA 56
767 #define SV_LIMIT_PREFS_PER_IA 57
768 #define SV_DELAYED_ACK 58
769 #define SV_MAX_ACK_DELAY 59
770 #if defined(LDAP_CONFIGURATION)
771 # define SV_LDAP_SERVER 60
772 # define SV_LDAP_PORT 61
773 # define SV_LDAP_USERNAME 62
774 # define SV_LDAP_PASSWORD 63
775 # define SV_LDAP_BASE_DN 64
776 # define SV_LDAP_METHOD 65
777 # define SV_LDAP_DEBUG_FILE 66
778 # define SV_LDAP_DHCP_SERVER_CN 67
779 # define SV_LDAP_REFERRALS 68
780 #if defined (LDAP_USE_SSL)
781 # define SV_LDAP_SSL 69
782 # define SV_LDAP_TLS_REQCERT 70
783 # define SV_LDAP_TLS_CA_FILE 71
784 # define SV_LDAP_TLS_CA_DIR 72
785 # define SV_LDAP_TLS_CERT 73
786 # define SV_LDAP_TLS_KEY 74
787 # define SV_LDAP_TLS_CRLCHECK 75
788 # define SV_LDAP_TLS_CIPHERS 76
789 # define SV_LDAP_TLS_RANDFILE 77
791 # define SV_LDAP_INIT_RETRY 178
792 #if defined (LDAP_USE_GSSAPI)
793 # define SV_LDAP_GSSAPI_KEYTAB 179
794 # define SV_LDAP_GSSAPI_PRINCIPAL 180
797 #define SV_CACHE_THRESHOLD 78
798 #define SV_DONT_USE_FSYNC 79
799 #define SV_DDNS_LOCAL_ADDRESS4 80
800 #define SV_DDNS_LOCAL_ADDRESS6 81
801 #define SV_IGNORE_CLIENT_UIDS 82
802 #define SV_LOG_THRESHOLD_LOW 83
803 #define SV_LOG_THRESHOLD_HIGH 84
804 #define SV_ECHO_CLIENT_ID 85
805 #define SV_SERVER_ID_CHECK 86
806 #define SV_PREFIX_LEN_MODE 87
807 #define SV_DHCPV6_SET_TEE_TIMES 88
808 #define SV_ABANDON_LEASE_TIME 89
810 #define SV_USE_EUI_64 90
811 #define SV_PERSIST_EUI_64_LEASES 91
813 #if defined (FAILOVER_PROTOCOL)
814 #define SV_CHECK_SECS_BYTE_ORDER 91
816 #define SV_DDNS_DUAL_STACK_MIXED_MODE 92
817 #define SV_DDNS_GUARD_ID_MUST_MATCH 93
818 #define SV_DDNS_OTHER_GUARD_IS_DYNAMIC 94
819 #define SV_RELEASE_ON_ROAM 95
820 #define SV_LOCAL_ADDRESS6 96
821 #define SV_BIND_LOCAL_ADDRESS6 97
823 #if !defined (DEFAULT_PING_TIMEOUT)
824 # define DEFAULT_PING_TIMEOUT 1
827 #if !defined (DEFAULT_DELAYED_ACK)
828 # define DEFAULT_DELAYED_ACK 0
831 #if !defined (DEFAULT_ACK_DELAY_SECS)
832 # define DEFAULT_ACK_DELAY_SECS 0
835 #if !defined (DEFAULT_ACK_DELAY_USECS)
836 # define DEFAULT_ACK_DELAY_USECS 250000
839 #if !defined (DEFAULT_MIN_ACK_DELAY_USECS)
840 # define DEFAULT_MIN_ACK_DELAY_USECS 10000
843 #if !defined (DEFAULT_CACHE_THRESHOLD)
844 # define DEFAULT_CACHE_THRESHOLD 25
847 #if !defined (DEFAULT_DEFAULT_LEASE_TIME)
848 # define DEFAULT_DEFAULT_LEASE_TIME 43200
851 #if !defined (DEFAULT_MIN_LEASE_TIME)
852 # define DEFAULT_MIN_LEASE_TIME 300
855 #if !defined (DEFAULT_MAX_LEASE_TIME)
856 # define DEFAULT_MAX_LEASE_TIME 86400
859 #if !defined (DEFAULT_DDNS_TTL)
860 # define DEFAULT_DDNS_TTL 3600
862 #if !defined (MAX_DEFAULT_DDNS_TTL)
863 # define MAX_DEFAULT_DDNS_TTL 3600
866 #if !defined (MIN_LEASE_WRITE)
867 # define MIN_LEASE_WRITE 15
870 #if !defined (DEFAULT_ABANDON_LEASE_TIME)
871 # define DEFAULT_ABANDON_LEASE_TIME 86400
877 #define PLM_MINIMUM 3
878 #define PLM_MAXIMUM 4
883 #define CL_SELECT_INTERVAL 2
884 #define CL_REBOOT_TIMEOUT 3
885 #define CL_RETRY_INTERVAL 4
886 #define CL_BACKOFF_CUTOFF 5
887 #define CL_INITIAL_INTERVAL 6
888 #define CL_BOOTP_POLICY 7
889 #define CL_SCRIPT_NAME 8
890 #define CL_REQUESTED_OPTIONS 9
891 #define CL_REQUESTED_LEASE_TIME 10
892 #define CL_SEND_OPTIONS 11
894 #define CL_REJECT_LIST 13
896 #ifndef CL_DEFAULT_TIMEOUT
897 # define CL_DEFAULT_TIMEOUT 60
900 #ifndef CL_DEFAULT_SELECT_INTERVAL
901 # define CL_DEFAULT_SELECT_INTERVAL 0
904 #ifndef CL_DEFAULT_REBOOT_TIMEOUT
905 # define CL_DEFAULT_REBOOT_TIMEOUT 10
908 #ifndef CL_DEFAULT_RETRY_INTERVAL
909 # define CL_DEFAULT_RETRY_INTERVAL 300
912 #ifndef CL_DEFAULT_BACKOFF_CUTOFF
913 # define CL_DEFAULT_BACKOFF_CUTOFF 120
916 #ifndef CL_DEFAULT_INITIAL_INTERVAL
917 # define CL_DEFAULT_INITIAL_INTERVAL 10
920 #ifndef CL_DEFAULT_BOOTP_POLICY
921 # define CL_DEFAULT_BOOTP_POLICY P_ACCEPT
924 #ifndef CL_DEFAULT_REQUESTED_OPTIONS
925 # define CL_DEFAULT_REQUESTED_OPTIONS \
927 DHO_BROADCAST_ADDRESS, \
931 DHO_DOMAIN_NAME_SERVERS, \
942 #define GROUP_OBJECT_DELETED 1
943 #define GROUP_OBJECT_DYNAMIC 2
944 #define GROUP_OBJECT_STATIC 4
978 #define HOST_DECL_DELETED 1
979 #define HOST_DECL_DYNAMIC 2
980 #define HOST_DECL_STATIC 4
1003 #if defined (BINARY_LEASES)
1036 #if defined (FAILOVER_PROTOCOL)
1048 #define SHARED_IMPLICIT 1
1056 #if defined (FAILOVER_PROTOCOL)
1082 #define CLASS_TYPE_VENDOR 0
1083 #define CLASS_TYPE_USER 1
1084 #define CLASS_TYPE_CLASS 2
1085 #define CLASS_TYPE_SUBCLASS 3
1120 #define CLASS_DECL_DELETED 1
1121 #define CLASS_DECL_DYNAMIC 2
1122 #define CLASS_DECL_STATIC 4
1123 #define CLASS_DECL_SUBCLASS 8
1152 #define DHC6_ADDR_DEPREFFED 0x01
1153 #define DHC6_ADDR_EXPIRED 0x02
1154 #define DHC6_ADDR_DECLINED 0x04
1408 #define INTERFACE_REQUESTED 1
1409 #define INTERFACE_AUTOMATIC 2
1410 #define INTERFACE_RUNNING 4
1411 #define INTERFACE_DOWNSTREAM 8
1412 #define INTERFACE_UPSTREAM 16
1413 #define INTERFACE_STREAMS (INTERFACE_DOWNSTREAM | INTERFACE_UPSTREAM)
1417 # if defined(USE_DLPI_SEND) || defined(USE_DLPI_RECEIVE) || \
1418 defined(USE_DLPI_HWADDR)
1419 int dlpi_sap_length;
1420 struct hardware dlpi_broadcast_addr;
1502 #define DNS_ZONE_ACTIVE 0
1503 #define DNS_ZONE_INACTIVE 1
1528 #define OPTION_ZERO(mask) (memset (mask, 0, 16))
1529 #define OPTION_SET(mask, bit) (mask [bit >> 8] |= (1 << (bit & 7)))
1530 #define OPTION_CLR(mask, bit) (mask [bit >> 8] &= ~(1 << (bit & 7)))
1531 #define OPTION_ISSET(mask, bit) (mask [bit >> 8] & (1 << (bit & 7)))
1532 #define OPTION_ISCLR(mask, bit) (!OPTION_ISSET (mask, bit))
1536 #define OPTION_SPACE(x) ((x) + 2 * ((x) / 255 + 1))
1540 #undef _PATH_DHCPD_CONF
1541 #define _PATH_DHCPD_CONF "dhcpd.conf"
1542 #undef _PATH_DHCPD_DB
1543 #define _PATH_DHCPD_DB "dhcpd.leases"
1544 #undef _PATH_DHCPD6_DB
1545 #define _PATH_DHCPD6_DB "dhcpd6.leases"
1546 #undef _PATH_DHCPD_PID
1547 #define _PATH_DHCPD_PID "dhcpd.pid"
1548 #undef _PATH_DHCPD6_PID
1549 #define _PATH_DHCPD6_PID "dhcpd6.pid"
1552 #ifndef _PATH_DHCPD_CONF
1553 #define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf"
1556 #ifndef _PATH_DHCPD_DB
1557 #define _PATH_DHCPD_DB LOCALSTATEDIR"/db/dhcpd.leases"
1560 #ifndef _PATH_DHCPD6_DB
1561 #define _PATH_DHCPD6_DB LOCALSTATEDIR"/db/dhcpd6.leases"
1564 #ifndef _PATH_DHCPD_PID
1565 #define _PATH_DHCPD_PID LOCALSTATEDIR"/run/dhcpd.pid"
1568 #ifndef _PATH_DHCPD6_PID
1569 #define _PATH_DHCPD6_PID LOCALSTATEDIR"/run/dhcpd6.pid"
1574 #ifndef _PATH_DHCLIENT_CONF
1575 #define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf"
1578 #ifndef _PATH_DHCLIENT_SCRIPT
1579 #define _PATH_DHCLIENT_SCRIPT "/usr/sbin/dhclient-script"
1582 #ifndef _PATH_DHCLIENT_PID
1583 #define _PATH_DHCLIENT_PID LOCALSTATEDIR"/run/dhclient.pid"
1586 #ifndef _PATH_DHCLIENT6_PID
1587 #define _PATH_DHCLIENT6_PID LOCALSTATEDIR"/run/dhclient6.pid"
1590 #ifndef _PATH_DHCLIENT_DB
1591 #define _PATH_DHCLIENT_DB LOCALSTATEDIR"/db/dhclient.leases"
1594 #ifndef _PATH_DHCLIENT6_DB
1595 #define _PATH_DHCLIENT6_DB LOCALSTATEDIR"/db/dhclient6.leases"
1598 #ifndef _PATH_RESOLV_CONF
1599 #define _PATH_RESOLV_CONF "/etc/resolv.conf"
1602 #ifndef _PATH_DHCRELAY_PID
1603 #define _PATH_DHCRELAY_PID LOCALSTATEDIR"/run/dhcrelay.pid"
1606 #ifndef _PATH_DHCRELAY6_PID
1607 #define _PATH_DHCRELAY6_PID LOCALSTATEDIR"/run/dhcrelay6.pid"
1610 #ifndef DHCPD_LOG_FACILITY
1611 #define DHCPD_LOG_FACILITY LOG_DAEMON
1614 #define INFINITE_TIME 0xffffffff
1615 #define MAX_TIME 0x7fffffff
1620 #define DHCP_LOG_OPTIONS LOG_NDELAY | LOG_PID
1622 #define DHCP_LOG_OPTIONS LOG_NDELAY
1646 #define EXPIRED_IPV6_CLEANUP_TIME (60*60)
1758 #define POND_TRACK_MAX ISC_UINT64_MAX
1761 #define DDNS_UPDATE_ADDR 0x0001
1762 #define DDNS_UPDATE_PTR 0x0002
1763 #define DDNS_INCLUDE_RRSET 0x0004
1764 #define DDNS_CONFLICT_DETECTION 0x0008
1765 #define DDNS_CLIENT_DID_UPDATE 0x0010
1766 #define DDNS_EXECUTE_NEXT 0x0020
1767 #define DDNS_ABORT 0x0040
1768 #define DDNS_STATIC_LEASE 0x0080
1769 #define DDNS_ACTIVE_LEASE 0x0100
1770 #define DDNS_DUAL_STACK_MIXED_MODE 0x0200
1771 #define DDNS_GUARD_ID_MUST_MATCH 0x0400
1772 #define DDNS_OTHER_GUARD_IS_DYNAMIC 0x0800
1774 #define CONFLICT_BITS (DDNS_CONFLICT_DETECTION|\
1775 DDNS_DUAL_STACK_MIXED_MODE|\
1776 DDNS_GUARD_ID_MUST_MATCH|\
1777 DDNS_OTHER_GUARD_IS_DYNAMIC)
1780 #define DDNS_STATE_CLEANUP 0
1782 #define DDNS_STATE_ADD_FW_NXDOMAIN 1
1783 #define DDNS_STATE_ADD_FW_YXDHCID 2
1784 #define DDNS_STATE_ADD_PTR 3
1785 #define DDNS_STATE_DSMM_FW_ADD3 4
1787 #define DDNS_STATE_REM_FW_YXDHCID 17
1788 #define DDNS_STATE_REM_FW_NXRR 18
1789 #define DDNS_STATE_REM_PTR 19
1790 #define DDNS_STATE_REM_FW_DSMM_OTHER 20
1795 #define DDNS_PRINT_INBOUND 1
1796 #define DDNS_PRINT_OUTBOUND 0
1801 isc_result_t result);
1862 unsigned, struct universe *);
1865 const
unsigned char *,
unsigned,
1866 struct universe *, const
char *);
1869 int, struct option_state *, struct option_state *,
1871 int,
int,
int, struct
data_string *, const
char *);
1873 const
unsigned char *,
unsigned, struct universe *);
1885 struct client_state *client_state,
1886 struct option_state *in_options,
1887 struct option_state *cfg_options,
1888 struct binding_scope **scope,
1889 struct universe *u,
void *stuff,
1893 struct client_state *,
1894 struct option_state *,
1895 struct option_state *,
1896 struct binding_scope **,
1897 struct universe *,
void *));
1900 struct packet *packet, struct lease *lease,
1901 struct client_state *client_state,
1902 struct option_state *in_options,
1903 struct option_state *cfg_options,
1904 struct binding_scope **scope,
1905 struct universe *universe);
1908 const
unsigned char *
buffer,
unsigned length,
1909 struct universe *u);
1910 int append_option(struct data_string *dst, struct universe *universe,
1911 struct option *option, struct data_string *src);
1914 unsigned char *buffer,
unsigned buflen,
unsigned index,
1915 struct packet *packet, struct lease *lease,
1916 struct client_state *client_state,
1917 struct option_state *in_options,
1918 struct option_state *cfg_options,
1919 struct binding_scope **scope,
1920 unsigned *priority_list,
int priority_len,
1921 unsigned first_cutoff,
int second_cutoff,
int terminate,
1922 const
char *vuname);
1923 int store_options6(
char *,
int, struct option_state *, struct packet *,
1924 const
int *, struct data_string *);
1928 unsigned,
int,
int);
1930 const
unsigned char *);
1931 int get_option (struct data_string *, struct universe *,
1932 struct packet *, struct lease *, struct client_state *,
1933 struct option_state *, struct option_state *,
1934 struct option_state *, struct binding_scope **,
unsigned,
1937 struct packet *, struct lease *, struct client_state *,
1938 struct option_state *, struct option_state *,
1939 struct option_state *, struct binding_scope **,
unsigned,
1941 void set_option (struct universe *, struct option_state *,
1942 struct option_cache *, enum statement_op);
1944 struct option_state *,
unsigned);
1946 struct option_state *,
1949 struct option_state *,
1950 struct option_cache *);
1952 struct buffer *,
unsigned char *,
unsigned,
1955 struct buffer *,
unsigned char *,
unsigned,
1959 void save_option(struct universe *, struct option_state *,
1960 struct option_cache *);
1962 struct option_cache *);
1964 struct option_cache *, isc_boolean_t appendp);
1965 void delete_option (struct universe *, struct option_state *,
int);
1967 struct option_state *,
int);
1971 struct option_state *,
1974 struct universe *, struct packet *, struct lease *,
1975 struct client_state *,
1976 struct option_state *, struct option_state *,
1977 struct binding_scope **, struct option_cache *);
1979 struct packet *, struct lease *,
1980 struct client_state *,
1981 struct option_state *,
1982 struct option_state *,
1983 struct binding_scope **,
1984 struct data_string *);
1986 struct packet *, struct lease *,
1987 struct client_state *,
1988 struct option_state *,
1989 struct option_state *,
1990 struct binding_scope **,
1993 struct packet *, struct lease *,
1994 struct client_state *,
1995 struct option_state *,
1996 struct option_state *,
1997 struct binding_scope **,
2000 struct packet *, struct lease *,
2001 struct client_state *,
2002 struct option_state *,
2003 struct option_state *,
2004 struct binding_scope **,
2007 struct option_state *, struct option_state *,
2008 struct binding_scope **, struct universe *,
void *,
2009 void (*) (struct option_cache *, struct packet *,
2010 struct lease *, struct client_state *,
2011 struct option_state *, struct option_state *,
2012 struct binding_scope **,
2013 struct universe *,
void *),
2014 struct option_cache *, const
char *);
2016 struct client_state *,
2017 struct option_state *,
2018 struct option_state *,
2019 struct binding_scope **,
2020 struct universe *,
void *,
2021 void (*) (struct option_cache *,
2023 struct lease *, struct client_state *,
2024 struct option_state *,
2025 struct option_state *,
2026 struct binding_scope **,
2027 struct universe *,
void *));
2029 struct client_state *,
2030 struct option_state *,
2031 struct option_state *,
2032 struct binding_scope **,
2033 struct universe *,
void *,
2034 void (*) (struct option_cache *,
2037 struct client_state *,
2038 struct option_state *,
2039 struct option_state *,
2040 struct binding_scope **,
2041 struct universe *,
void *));
2043 struct packet *, struct lease *,
2044 struct client_state *,
2045 struct option_state *, struct option_state *,
2046 struct option_state *, struct binding_scope **,
2049 struct option_state *,
2052 struct option_cache *, isc_boolean_t appendp);
2054 struct client_state *,
2055 struct option_state *,
2056 struct option_state *,
2057 struct binding_scope **,
2058 struct universe *,
void *,
2059 void (*) (struct option_cache *,
2062 struct client_state *,
2063 struct option_state *,
2064 struct option_state *,
2065 struct binding_scope **,
2066 struct universe *,
void *));
2068 struct lease *, struct client_state *,
2069 struct option_state *,
2070 struct option_state *,
2071 struct binding_scope **,
2075 struct option_state *,
unsigned);
2077 struct dhcp_packet *,
unsigned,
2079 void do_packet6(struct interface_info *, const
char *,
2080 int,
int, const struct iaddr *, isc_boolean_t);
2086 unsigned int option_num,
2088 unsigned int data_len);
2091 struct lease *lease,
2092 struct client_state *client_state,
2093 struct option_state *in_options,
2094 struct option_state *out_options,
2095 struct binding_scope **scope);
2098 #if defined(DHCP4o6)
2099 extern int dhcp4o6_fd;
2102 extern void dhcp4o6_setup(u_int16_t);
2109 extern struct timeval
cur_tv;
2110 #define cur_time cur_tv.tv_sec
2113 #if defined (NSUPDATE)
2120 extern int persist_eui64;
2139 #if defined (PARANOIA)
2144 int main(
int,
char **);
2156 #if defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
2157 void relinquish_ackqueue(
void);
2162 char *,
unsigned,
const char *,
int);
2176 #define skip_token(a,b,c) ((void) next_token((a),(b),(c)))
2183 #if defined (TRACING)
2190 struct host_decl *,
int);
2191 #if defined (FAILOVER_PROTOCOL)
2194 dhcp_failover_state_t *);
2203 struct group *,
int);
2217 struct pool *,
struct lease **);
2232 int ddns_updates(
struct packet *,
struct lease *,
struct lease *,
2237 #if defined (TRACING)
2253 struct parse *,
int);
2257 unsigned char *,
unsigned *,
2258 int,
int,
unsigned);
2270 struct parse *,
int *,
2273 struct parse *,
int *,
2278 struct parse *,
int *);
2280 struct parse *,
int *);
2282 struct parse *,
int *,
2285 struct parse *,
int *);
2287 struct parse *,
int *);
2290 struct parse *,
int *);
2292 struct parse *,
int *);
2300 int lookups,
struct option *option);
2302 struct parse *,
int,
2303 struct option *,
enum statement_op);
2305 const char **,
struct expression *,
int,
int);
2317 u_int8_t *,
unsigned, struct option *,
2322 const
unsigned char *,
unsigned,
int,
int,
2326 struct expression *, struct expression *);
2329 struct expression *, struct expression *);
2330 int make_limit (struct expression **, struct expression *,
int);
2332 int option_cache (struct option_cache **, struct data_string *,
2333 struct expression *, struct option *,
2336 struct lease *, struct client_state *,
2337 struct option_state *, struct option_state *,
2338 struct binding_scope **, struct expression *,
2342 struct packet *, struct lease *,
2343 struct client_state *,
2344 struct option_state *,
2345 struct option_state *,
2346 struct binding_scope **,
2347 struct expression *);
2349 struct packet *, struct lease *,
2350 struct client_state *,
2351 struct option_state *,
2352 struct option_state *,
2353 struct binding_scope **,
2354 struct expression *,
2357 struct lease *, struct client_state *,
2358 struct option_state *, struct option_state *,
2359 struct binding_scope **,
2360 struct expression *);
2362 struct packet *, struct lease *,
2363 struct client_state *,
2364 struct option_state *, struct option_state *,
2365 struct binding_scope **,
2366 struct option_cache *,
2369 struct packet *, struct lease *,
2370 struct client_state *,
2371 struct option_state *,
2372 struct option_state *,
2373 struct binding_scope **,
2374 struct option_cache *,
2377 struct packet *, struct lease *,
2378 struct client_state *,
2379 struct option_state *,
2380 struct option_state *,
2381 struct binding_scope **,
2382 struct expression *);
2394 int free_bindings (struct binding_scope *, const
char *,
int);
2402 const
char *, struct data_string *);
2404 struct binding_scope *, const
char *);
2405 int unset (struct binding_scope *, const
char *);
2408 struct data_string *);
2416 void dhcp (struct packet *);
2418 void dhcprequest (struct packet *,
int, struct lease *);
2422 void nak_lease (struct packet *, struct iaddr *cip, struct
group*);
2423 void ack_lease (struct packet *, struct lease *,
2424 unsigned int,
TIME,
char *,
int, struct host_decl *);
2425 void echo_client_id(struct packet*, struct lease*, struct option_state*,
2426 struct option_state*);
2429 int find_lease (struct lease **, struct packet *,
2433 struct shared_network *,
2434 struct host_decl *);
2438 struct
pool *,
int *);
2443 struct dhcp_packet *,
2444 unsigned,
unsigned);
2446 struct option_state *options,
2447 struct option_state *out_options,
2448 struct packet *packet);
2451 struct packet *packet,
2452 struct group *network_group);
2467 isc_result_t
get_client_id(struct packet *, struct data_string *);
2468 void dhcpv6(struct packet *);
2471 void bootp(struct packet *);
2478 isc_result_t
delete_group (struct group_object *,
int);
2480 int clone_group (struct group **, struct group *, const
char *,
int);
2485 struct lease *
new_leases (
unsigned, const
char *,
int);
2486 #if defined (DEBUG_MEMORY_LEAKAGE) || \
2487 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
2488 void relinquish_free_lease_states (
void);
2504 #if defined (DEBUG_MEMORY_LEAKAGE) || \
2505 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
2506 void relinquish_free_pairs (
void);
2507 void relinquish_free_expressions (
void);
2508 void relinquish_free_binding_values (
void);
2509 void relinquish_free_option_caches (
void);
2510 void relinquish_free_packets (
void);
2521 int group_reference (
struct group **,
struct group *,
const char *,
int);
2529 struct option *
new_option (
const char *,
const char *,
int);
2531 const char * file,
int line);
2542 struct permit *
new_permit (
const char *,
int);
2543 void free_permit (
struct permit *,
const char *,
int);
2545 void free_pair (pair,
const char *,
int);
2548 struct expression *,
const char *,
int);
2553 struct binding_value *,
2558 struct fundef *,
const char *,
int);
2561 struct option_cache *,
const char *,
int);
2567 const char *,
const char *,
int);
2569 struct dns_host_entry *,
2575 struct option_state *,
const char *,
int);
2588 struct executable_statement *,
2592 struct packet *,
const char *,
int);
2597 struct binding_scope *,
2601 struct dns_zone *,
const char *,
int);
2603 #define DEFAULT_TIME_FORMAT 0
2604 #define LOCAL_TIME_FORMAT 1
2607 char *
quotify_buf (
const unsigned char *,
unsigned,
const char,
2609 char *
print_base64 (
const unsigned char *,
unsigned,
const char *,
int);
2610 char *
print_hw_addr (
const int,
const int,
const unsigned char *);
2612 void dump_raw (
const unsigned char *,
unsigned);
2614 struct lease *,
struct client_state *,
2615 struct option_state *,
struct option_state *,
2616 struct binding_scope **,
struct universe *,
void *);
2619 char *
print_hex (
unsigned,
const u_int8_t *,
unsigned,
unsigned);
2620 void print_hex_only (
unsigned,
const u_int8_t *,
unsigned,
char *);
2622 #define print_hex_1(len, data, limit) print_hex(len, data, limit, 0)
2623 #define print_hex_2(len, data, limit) print_hex(len, data, limit, 1)
2624 #define print_hex_3(len, data, limit) print_hex(len, data, limit, 2)
2630 const char *,
const char *, ...);
2632 struct data_string *);
2634 const char *,
const char *,
const char *);
2636 #if defined (NSUPDATE)
2644 isc_result_t
get_hw_addr2(
struct interface_info *info);
2645 char *
buf_to_hex (
const unsigned char *s,
unsigned len,
2646 const char *file,
int line);
2648 const char *file,
int line);
2651 #if defined (USE_SOCKET_SEND) || defined (USE_SOCKET_RECEIVE) \
2652 || defined (USE_SOCKET_FALLBACK)
2658 #if defined (USE_SOCKET_FALLBACK) && !defined (USE_SOCKET_SEND)
2662 struct packet *,
struct dhcp_packet *,
size_t,
2664 struct sockaddr_in *,
struct hardware *);
2666 struct dhcp_packet *,
size_t,
struct in6_addr *,
2667 struct sockaddr_in6 *,
struct hardware *);
2670 #ifdef USE_SOCKET_SEND
2675 struct packet *,
struct dhcp_packet *,
size_t,
2677 struct sockaddr_in *,
struct hardware *);
2679 ssize_t
send_packet6(
struct interface_info *,
const unsigned char *,
size_t,
2680 struct sockaddr_in6 *);
2681 #ifdef USE_SOCKET_RECEIVE
2686 unsigned char *,
size_t,
2687 struct sockaddr_in *,
struct hardware *);
2690 #if defined (USE_SOCKET_FALLBACK)
2694 #if defined (USE_SOCKET_SEND)
2701 void if_register6(
struct interface_info *info,
int do_multicast);
2704 unsigned char *buf,
size_t len,
2705 struct sockaddr_in6 *from,
struct in6_addr *to_addr,
2706 unsigned int *if_index);
2711 #if defined (USE_BPF_SEND) || defined (USE_BPF_RECEIVE)
2712 int if_register_bpf (
struct interface_info *);
2719 struct packet *,
struct dhcp_packet *,
size_t,
2721 struct sockaddr_in *,
struct hardware *);
2723 #ifdef USE_BPF_RECEIVE
2728 unsigned char *,
size_t,
2729 struct sockaddr_in *,
struct hardware *);
2731 #if defined (USE_BPF_SEND)
2739 #if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
2747 struct packet *,
struct dhcp_packet *,
size_t,
2749 struct sockaddr_in *,
struct hardware *);
2751 #ifdef USE_LPF_RECEIVE
2756 unsigned char *,
size_t,
2757 struct sockaddr_in *,
struct hardware *);
2759 #if defined (USE_LPF_SEND)
2767 #if defined (USE_NIT_SEND) || defined (USE_NIT_RECEIVE)
2768 int if_register_nit (
struct interface_info *);
2776 struct packet *,
struct dhcp_packet *,
size_t,
2778 struct sockaddr_in *,
struct hardware *);
2780 #ifdef USE_NIT_RECEIVE
2785 unsigned char *,
size_t,
2786 struct sockaddr_in *,
struct hardware *);
2788 #if defined (USE_NIT_SEND)
2796 #if defined (USE_DLPI_SEND) || defined (USE_DLPI_RECEIVE)
2797 int if_register_dlpi (
struct interface_info *);
2800 #ifdef USE_DLPI_SEND
2807 struct packet *,
struct dhcp_packet *,
size_t,
2809 struct sockaddr_in *,
struct hardware *);
2813 #ifdef USE_DLPI_RECEIVE
2818 unsigned char *,
size_t,
2819 struct sockaddr_in *,
struct hardware *);
2828 ssize_t
send_packet (
struct interface_info *,
struct packet *,
2829 struct dhcp_packet *,
size_t,
struct in_addr,
2830 struct sockaddr_in *,
struct hardware *);
2861 struct dhcp_packet *, unsigned,
2863 struct iaddr, struct hardware *);
2866 int,
const struct iaddr *, isc_boolean_t);
2869 #if defined (TRACING)
2879 int setup_fallback (
struct interface_info **,
const char *,
int);
2895 const char *, va_list);
2900 void add_timeout (
struct timeval *,
void (*) (
void *),
void *,
2907 struct interface_info, dhcp_type_interface)
2926 #if defined (FAILOVER_PROTOCOL)
2929 extern struct failover_option_info
ft_options [];
2947 struct iaddr
ip_addr (struct iaddr, struct iaddr, u_int32_t);
2949 u_int32_t
host_addr (
struct iaddr,
struct iaddr);
2950 int addr_eq (
struct iaddr,
struct iaddr);
2952 int addr_cmp(
const struct iaddr *a1,
const struct iaddr *a2);
2953 int addr_or(
struct iaddr *result,
2954 const struct iaddr *a1,
const struct iaddr *a2);
2956 const struct iaddr *a1,
const struct iaddr *a2);
2959 const struct iaddr *lo,
const struct iaddr *hi);
2961 const char *
piaddr (
struct iaddr);
2963 char *
piaddrmask(
struct iaddr *,
struct iaddr *);
2964 char *
piaddrcidr(
const struct iaddr *,
unsigned int);
2968 const char *
pin6_addr (
const struct in6_addr*);
2991 void dhcpack (
struct packet *);
2992 void dhcpnak (
struct packet *);
3011 struct option_cache *,
struct iaddr *,
3012 struct option **,
struct option_state **);
3021 struct lease *,
struct client_state *,
3022 struct option_state *,
struct option_state *,
3023 struct binding_scope **,
struct universe *,
void *);
3027 int rewrite,
int sync);
3030 void script_init (
struct client_state *,
const char *,
3033 struct lease *,
struct client_state *,
3034 struct option_state *,
struct option_state *,
3035 struct binding_scope **,
struct universe *,
void *);
3041 const char *,
const char *,
const char *, ...)
3054 struct iaddr *
addr,
int offset);
3062 isc_result_t
form_duid(struct data_string *duid, const
char *file,
int line);
3073 void unconfigure6(struct client_state *client, const
char *reason);
3079 #if defined (FAILOVER_PROTOCOL)
3096 u_int32_t
checksum (
unsigned char *,
unsigned, u_int32_t);
3097 u_int32_t
wrapsum (u_int32_t);
3099 unsigned *,
struct hardware *);
3101 unsigned *, u_int32_t, u_int32_t,
3102 u_int32_t,
unsigned char *,
unsigned);
3104 unsigned,
struct hardware *);
3106 unsigned,
struct sockaddr_in *,
3107 unsigned,
unsigned *,
int);
3111 unsigned *,
struct hardware *);
3114 unsigned,
struct hardware *);
3118 unsigned *,
struct hardware *);
3121 unsigned,
struct hardware *);
3149 void add_route_net (
struct interface_info *,
struct in_addr,
struct in_addr);
3154 void set_netmask (
struct interface_info *,
struct in_addr);
3176 struct interface_info **,
3177 struct client_state **);
3188 void icmp_startup (
int,
void (*) (struct iaddr, u_int8_t *,
int));
3197 #if defined (NSUPDATE)
3198 #define FIND_FORWARD 0
3199 #define FIND_REVERSE 1
3204 void dhcid_tolease (
struct data_string *,
struct data_string *);
3205 isc_result_t
dhcid_fromlease (
struct data_string *,
struct data_string *);
3207 struct data_string *,
unsigned long,
unsigned,
3210 struct iaddr,
struct data_string *);
3233 #ifdef NEED_INET_ATON
3234 int inet_aton (
const char *,
struct in_addr *);
3248 void classify (
struct packet *,
struct class *);
3250 isc_result_t
find_class (
struct class **,
const char *,
3253 int bill_class (
struct lease *,
struct class *);
3257 struct packet *,
struct lease *,
3258 struct client_state *,
3259 struct option_state *,
struct option_state *,
3260 struct binding_scope **,
3261 struct executable_statement *,
3264 struct packet *,
struct lease *,
3265 struct client_state *,
3266 struct option_state *,
3267 struct option_state *,
3268 struct binding_scope **,
3269 struct group *,
struct group *,
3275 struct packet *,
struct lease *,
struct client_state *,
3276 struct option_state *,
struct option_state *,
3277 struct binding_scope **,
3278 struct expression *,
struct executable_statement *);
3280 int (*) (
struct executable_statement *,
3281 void *,
int),
void *,
int);
3300 const char *, va_list);
3305 omapi_object_t *, omapi_object_t *);
3319 const char *, va_list);
3324 omapi_object_t *, omapi_object_t *);
3338 const char *, va_list);
3343 omapi_object_t *, omapi_object_t *);
3359 const char *, va_list);
3364 omapi_object_t *, omapi_object_t *);
3378 #if defined (FAILOVER_PROTOCOL)
3394 const char *, va_list);
3399 omapi_object_t *, omapi_object_t *);
3412 const char *, va_list);
3417 omapi_object_t *, omapi_object_t *);
3430 const char *, va_list);
3435 omapi_object_t *, omapi_object_t *);
3448 const char *, va_list);
3453 omapi_object_t *, omapi_object_t *);
3466 const char *, va_list);
3471 omapi_object_t *, omapi_object_t *);
3506 struct binding_scope *,
3509 struct binding_scope *);
3517 extern struct subnet *
subnets;
3531 isc_result_t
enter_class (
struct class *,
int,
int);
3533 isc_result_t
enter_host (
struct host_decl *,
int,
int);
3534 isc_result_t
delete_host (
struct host_decl *,
int);
3535 void change_host_uid(
struct host_decl *host,
const char *data,
int len);
3537 const unsigned char *,
unsigned,
3540 unsigned,
const char *,
int);
3542 struct option_state *,
const char *,
int);
3544 struct iaddr *,
struct shared_network *);
3547 struct subnet *,
struct pool *,
3550 isc_result_t
dhcp_lease_get (omapi_object_t **,
const char *,
int);
3552 struct iaddr,
const char *,
int);
3553 int find_subnet(
struct subnet **,
struct iaddr,
const char *,
int);
3556 struct shared_network *,
3561 int supersede_lease (
struct lease *,
struct lease *,
int,
int,
int,
int);
3563 int lease_copy (
struct lease **,
struct lease *,
const char *,
int);
3568 void dissociate_lease (
struct lease *);
3572 unsigned,
const char *,
int);
3574 unsigned,
const char *,
int);
3583 #if !defined(BINARY_LEASES)
3592 #if defined (DEBUG_MEMORY_LEAKAGE) || \
3593 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
3594 void free_everything (
void);
3598 #if defined (FAILOVER_PROTOCOL)
3605 const char *,
const char *,
int);
3608 const char *, va_list);
3642 const char *, va_list);
3650 failover_message_t *);
3691 failover_option_t *);
3702 unsigned *,
unsigned, ...);
3704 omapi_object_t *,
int, u_int32_t, ...);
3707 dhcp_failover_state_t *,
3714 failover_message_t *,
3722 failover_message_t *);
3724 failover_message_t *);
3728 failover_message_t *);
3730 failover_message_t *);
3732 failover_message_t *);
3735 void failover_print (
char *,
unsigned *,
unsigned, const
char *);
3740 dhcp_failover_state_t *,
3745 dhcp_failover_state_t *,
3746 binding_state_t, u_int32_t);
3750 dhcp_type_failover_state)
3752 dhcp_type_failover_listener)
3754 dhcp_type_failover_link)
3760 #if defined(LDAP_CONFIGURATION)
3762 #if defined (LDAP_USE_SSL)
3767 isc_result_t ldap_read_config (
void);
3768 int find_haddr_in_ldap (
struct host_decl **,
int,
unsigned,
3769 const unsigned char *,
const char *,
int);
3770 int find_subclass_in_ldap (
struct class *,
struct class **,
3771 struct data_string *);
3772 int find_client_in_ldap (
struct host_decl **,
struct packet*,
3773 struct option_state *,
const char *,
int);
3781 isc_result_t iasubopt_allocate(struct iasubopt **iasubopt,
3782 const
char *file,
int line);
3784 struct iasubopt *src,
3785 const
char *file,
int line);
3787 const
char *file,
int line);
3789 isc_result_t
ia_make_key(struct data_string *key, u_int32_t iaid,
3790 const
char *duid,
unsigned int duid_len,
3791 const
char *file,
int line);
3793 const
char *duid,
unsigned int duid_len,
3794 const
char *file,
int line);
3796 const
char *file,
int line);
3798 const
char *file,
int line);
3800 const
char *file,
int line);
3802 const
char *file,
int line);
3806 const struct in6_addr *start_addr,
3807 int bits,
int units,
3808 const
char *file,
int line);
3811 const
char *file,
int line);
3813 const
char *file,
int line);
3815 struct iasubopt **addr,
3816 unsigned int *attempts,
3817 const struct data_string *uid,
3818 time_t soft_lifetime_end_time);
3820 int valid_eui_64_duid(
const struct data_string* uid,
int duid_beg);
3821 int valid_for_eui_64_pool(
struct ipv6_pool*,
struct data_string* uid,
3822 int duid_beg,
struct in6_addr* ia_addr);
3823 isc_result_t create_lease6_eui_64(
struct ipv6_pool *pool,
3824 struct iasubopt **addr,
3825 const struct data_string *iaid_uid,
3826 time_t soft_lifetime_end_time);
3829 struct iasubopt *lease,
3830 time_t valid_lifetime_end_time);
3837 const struct in6_addr *addr);
3841 struct iasubopt *lease,
3844 const struct in6_addr *addr);
3846 struct iasubopt **pref,
3847 unsigned int *attempts,
3848 const struct data_string *uid,
3849 time_t soft_lifetime_end_time);
3851 const struct in6_addr *pref, u_int8_t plen);
3855 const struct in6_addr *addr);
3856 isc_boolean_t
ipv6_in_pool(
const struct in6_addr *addr,
3859 const char *file,
int line);
3862 const char *file,
int line);
3864 const char *file,
int line);
3878 int find_hosts6(
struct host_decl** host,
struct packet* packet,
3879 const struct data_string* client_id,
char* file,
int line);
3882 #if defined (BINARY_LEASES)
3893 #define MAX_ADDRESS_STRING_LEN \
3894 (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"))
3899 #define FIND_PERCENT(count, percent) \
3900 ((count) > (INT_MAX / 100) ? \
3901 ((count) / 100) * (percent) : ((count) * (percent)) / 100)
3903 #define FIND_POND6_PERCENT(count, percent) \
3904 ((count) > (POND_TRACK_MAX / 100) ? \
3905 ((count) / 100) * (percent) : ((count) * (percent)) / 100)
void parse_subnet6_declaration(struct parse *, struct shared_network *)
isc_result_t dhcp_failover_state_signal(omapi_object_t *, const char *, va_list)
struct option_cache * lookup_hashed_option(struct universe *universe, struct option_state *options, unsigned code)
void convert_subnet_decl(struct parse *, jrefproto)
void do_packet6(struct interface_info *, const char *, int, int, const struct iaddr *, isc_boolean_t)
struct lease_state * next
int supersede_lease(struct lease *, struct lease *, int, int, int, int)
void if_register_send(struct interface_info *)
struct timeval start_time
void parse_option_space_decl(struct parse *cfile)
int parse_X(struct parse *cfile, u_int8_t *buf, unsigned max)
void initialize_server_option_spaces(void)
void state_selecting(void *cpp)
int data_string_new(struct data_string *new_string, const char *src, unsigned int len, const char *file, int line)
Constructs a null-terminated data_string from a char* and length.
int addr_or(struct iaddr *result, const struct iaddr *a1, const struct iaddr *a2)
isc_result_t dhcp_failover_send_poolreq(dhcp_failover_state_t *)
int executable_statement_reference(struct executable_statement **ptr, struct executable_statement *bp, const char *file, int line)
isc_result_t renew_lease6(struct ipv6_pool *pool, struct iasubopt *lease)
Renew a lease in the pool.
int executable_statement_allocate(struct executable_statement **ptr, const char *file, int line)
int find_grouped_subnet(struct subnet **, struct shared_network *, struct iaddr, const char *, int)
int mockup_lease(struct lease **, struct packet *, struct shared_network *, struct host_decl *)
char * print_dotted_quads(unsigned len, const u_int8_t *data)
void send_discover(void *cpp)
void unbill_class(struct lease *lease)
struct client_lease * alias
struct lease * new_leases(unsigned, const char *, int)
isc_result_t dhcp_host_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
int parse_encapsulated_suboptions(struct option_state *options, struct option *eopt, const unsigned char *buffer, unsigned len, struct universe *eu, const char *uname)
int find_lease(struct lease **, struct packet *, struct shared_network *, int *, int *, struct lease *, const char *, int)
void mark_hosts_unavailable(void)
isc_result_t dhcp_failover_state_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
lease_id_hash_t * lease_uid_hash
void print_hex_or_string(unsigned len, const u_int8_t *data, unsigned limit, char *buf)
void parse_server_duid_conf(struct parse *cfile)
void start_selecting6(struct client_state *client)
int fundef_reference(struct fundef **ptr, struct fundef *src, const char *file, int line)
int fqdn_option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
isc_result_t dhcp_host_signal_handler(omapi_object_t *, const char *, va_list)
void set_option(struct universe *universe, struct option_state *options, struct option_cache *option, enum statement_op op)
isc_result_t dhcp_failover_send_connectack(omapi_object_t *, dhcp_failover_state_t *, int, const char *)
void add_enumeration(struct enumeration *enumeration)
isc_result_t dhcp_failover_link_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
void assemble_ethernet_header(struct interface_info *, unsigned char *, unsigned *, struct hardware *)
void parse_trace_setup(void)
struct agent_options * next
struct binding_scope * global_scope
void parse_host_declaration(struct parse *, struct group *)
void trace_conf_input(trace_type_t *, unsigned, char *)
isc_result_t interface_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
const char * hardware_types[]
int parse_option_code_definition(struct parse *cfile, struct option *option)
isc_result_t ddns_remove_fwd(struct data_string *, struct iaddr, struct data_string *)
void save_linked_option(struct universe *universe, struct option_state *options, struct option_cache *oc, isc_boolean_t appendp)
int write_failover_state(dhcp_failover_state_t *)
int dhcp_failover_state_match_by_name(dhcp_failover_state_t *, failover_option_t *)
isc_result_t dhcp_failover_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
unsigned char dhcpv6_transaction_id[3]
void try_hw_addr(struct interface_info *info)
void dhcprequest(struct packet *, int, struct lease *)
failover_option_t failover_option_t * dhcp_failover_make_option(unsigned, char *, unsigned *, unsigned,...)
unsigned char zone_name[DHCP_MAXDNS_WIRE]
int token_indent_data_string(FILE *file, int col, int indent, const char *prefix, const char *suffix, struct data_string *data)
struct dns_question * question
struct eventqueue * rw_queue_empty
isc_result_t dhcp_failover_send_connect(omapi_object_t *)
void(* dhcpv6_packet_handler)(struct interface_info *, const char *, int, int, const struct iaddr *, isc_boolean_t)
omapi_object_type_t * dhcp_type_shared_network
void make_client_options(struct client_state *client, struct client_lease *lease, u_int8_t *type, struct option_cache *sid, struct iaddr *rip, struct option **prl, struct option_state **op)
isc_result_t dhcp_control_remove(omapi_object_t *lp, omapi_object_t *id)
void assemble_udp_ip_header(struct interface_info *, unsigned char *, unsigned *, u_int32_t, u_int32_t, u_int32_t, unsigned char *, unsigned)
int binding_value_dereference(struct binding_value **v, const char *file, int line)
struct group * on_receipt
void dhcpleasequery(struct packet *, int)
isc_result_t delete_group(struct group_object *group, int writep)
unsigned char dhcpv6_transaction_id[3]
isc_result_t add_lease6(struct ipv6_pool *pool, struct iasubopt *lease, time_t valid_lifetime_end_time)
void save_option(struct universe *universe, struct option_state *options, struct option_cache *oc)
isc_result_t ia_make_key(struct data_string *key, u_int32_t iaid, const char *duid, unsigned int duid_len, const char *file, int line)
int executable_statement_dereference(struct executable_statement **ptr, const char *file, int line)
int find_host_for_network(struct subnet **, struct host_decl **, struct iaddr *, struct shared_network *)
int free_bindings(struct binding_scope *scope, const char *file, int line)
void do_release(struct client_state *client)
struct shared_network * shared_network
const char * piaddr(const struct iaddr addr)
omapi_object_type_t * dhcp_type_failover_link
omapi_object_type_t * dhcp_type_pool
struct universe * new_universe(char *file, int line) const
void rewrite_client_leases()
struct shared_network * shared_networks
int interface_or_dummy(struct interface_info **pi, const char *name)
struct dhcp_ddns_cb * ddns_cb
isc_result_t dhcp_interface_destroy(omapi_object_t *h, const char *file, int line)
void parse_fixed_prefix6(struct parse *cfile, struct host_decl *host_decl)
void dhcpoffer(struct packet *packet)
struct permit * new_permit(const char *, int)
int got_requested_address
int if_readsocket(omapi_object_t *h)
unsigned char dhcpv6_transaction_id[3]
void expire_all_pools(void)
isc_boolean_t server_duid_isset(void)
int append_option(struct data_string *dst, struct universe *universe, struct option *option, struct data_string *src)
int make_const_option_cache(struct option_cache **oc, struct buffer **buffer, u_int8_t *data, unsigned len, struct option *option, const char *file, int line)
struct executable_statement * default_classification_rules
void dhcpnak(struct packet *packet)
void if_reinitialize_send(struct interface_info *)
int get_dhcid(dhcp_ddns_cb_t *, int, const u_int8_t *, unsigned)
isc_result_t end_parse(struct parse **cfile)
isc_result_t dhcp_host_destroy(omapi_object_t *, const char *, int)
const char * path_dhclient_db
struct group_object * n_dynamic
struct isc_heap isc_heap_t
void delete_linked_option(struct universe *universe, struct option_state *options, int code)
isc_result_t(* dhcp_interface_startup_hook)(struct interface_info *)
int hashed_option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
int parse_key(struct parse *cfile)
void start_release6(struct client_state *client)
void dhcpv6_leasequery(struct data_string *, struct packet *)
char * piaddrmask(struct iaddr *addr, struct iaddr *mask)
struct iaddr next_srv_addr
isc_result_t ia_dereference(struct ia_xx **ia, const char *file, int line)
struct lease_state * state
int option_cache_dereference(struct option_cache **ptr, const char *file, int line)
struct class * superclass
int lc_not_empty(struct leasechain *lc)
void start_info_request6(struct client_state *client)
void free_domain_search_list(struct domain_search_list *ptr, const char *file, int line)
void parse_pool6_statement(struct parse *, struct group *, int)
int expression_allocate(struct expression **cptr, const char *file, int line)
int permit_list_match(struct permit *, struct permit *)
int executable_statement_foreach(struct executable_statement *stmt, int(*callback)(structexecutable_statement *, void *, int), void *vp, int condp)
void(* icmp_handler)(struct iaddr, u_int8_t *, int)
int data_string_sprintfa(struct data_string *ds, const char *fmt,...)
struct universe server_universe
int execute_statements(struct binding_value **result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *out_options, struct binding_scope **scope, struct executable_statement *statements, struct on_star *on_star)
void convert_numeric_aggregate(struct parse *, jrefproto, int, int, int, int)
isc_result_t interface_signal_handler(omapi_object_t *, const char *, va_list)
int addr_cmp(const struct iaddr *a1, const struct iaddr *a2)
int write_billing_class(struct class *)
void dhcp_failover_pool_check(struct pool *)
struct iaddr ip_addr(struct iaddr subnet, struct iaddr mask, u_int32_t host_address)
int store_option(struct data_string *result, struct universe *universe, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct option_cache *oc)
char * print_hw_addr(int htype, const int hlen, const unsigned char *data) const
isc_result_t unlink_class(struct class **class)
ssize_t decode_udp_ip_header(struct interface_info *, unsigned char *, unsigned, struct sockaddr_in *, unsigned, unsigned *, int)
isc_result_t dhcp_subclass_signal_handler(omapi_object_t *, const char *, va_list)
void send_decline(void *cpp)
isc_result_t dhcp_control_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
control_object_state_t state
ssize_t decode_tr_header(struct interface_info *, unsigned char *, unsigned, struct hardware *)
trace_type_t * interface_trace
void client_dns_update_timeout(void *cp)
int parse_data_expression(struct expression **expr, struct parse *cfile, int *lose)
struct ipv6_pond * ipv6_pond
int binding_value_reference(struct binding_value **ptr, struct binding_value *src, const char *file, int line)
isc_result_t dhcp_control_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_boolean_t lease6_usable(struct iasubopt *lease)
Check if address is available to a lease.
void cancel_timeout(void(*)(void *) where, void *what)
isc_result_t ddns_modify_ptr(dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
isc_result_t dhcp_interface_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_failover_register(omapi_object_t *)
struct enumeration * find_enumeration(const char *name, int length)
int find_hosts_by_option(struct host_decl **, struct packet *, struct option_state *, const char *, int)
void lease_remove(struct lease **lq, struct lease *comp)
void icmp_startup(int routep, void *handler)
isc_result_t dhcp_failover_link_initiate(omapi_object_t *)
isc_result_t dhcp_lease_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
struct client_state * client
char * quotify_buf(const unsigned char *s, unsigned len, char enclose_char, const char *file, int line)
isc_result_t dhcp_class_create(omapi_object_t **, omapi_object_t *)
struct data_string parameter_request_list
int dhcp_max_agent_option_packet_length
struct client_lease * packet_to_lease(struct packet *packet, struct client_state *client)
void(* handler)(struct protocol *)
isc_result_t dhcp_host_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_sockaddr_t zone_addrs[DHCP_MAXNS]
void print_lease(struct lease *lease)
struct group * on_transmission
struct dhcp_ddns_cb * ddns_cb
host_hash_t * host_uid_hash
int script_go(struct client_state *client)
Calls external script.
struct hardware_link * next
struct iaddr requested_address
void dhcpinform(struct packet *, int)
struct lease * next_pending
omapi_object_type_t * dhcp_type_lease
isc_result_t ddns_update_fwd(struct data_string *, struct iaddr, struct data_string *, unsigned long, unsigned, unsigned)
int write_client_lease(struct client_state *client, struct client_lease *lease, int rewrite, int makesure)
struct client_state * client
void assemble_tr_header(struct interface_info *, unsigned char *, unsigned *, struct hardware *)
int can_receive_unicast_unconfigured(struct interface_info *)
isc_result_t dhcp_failover_state_create(omapi_object_t **, omapi_object_t *)
void reinitialize_interfaces()
void eval_network_statements(struct option_state **options, struct packet *packet, struct group *network_group)
Builds option set from statements at the global and network scope.
uint32_t parse_byte_order_uint32(const void *source)
struct executable_statement * on_release
isc_result_t dhcp_interface_remove(omapi_object_t *lp, omapi_object_t *id)
void lease_ping_timeout(void *)
void parse_client_lease_statement(struct parse *cfile, int is_static)
struct client_state * next
void lease_pinged(struct iaddr, u_int8_t *, int)
isc_result_t dhcp_failover_listener_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_host_create(omapi_object_t **, omapi_object_t *)
void parse_vendor_option(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *out_options, struct binding_scope **scope)
Parse a vendor option (option 43)
void uid_hash_add(struct lease *)
pair new_pair(char *file, int line) const
char * print_dec_2(unsigned long val)
struct in_addr * addresses
int is_numeric_expression(struct expression *expr)
struct name_server * next_server
void(* ddns_action_t)(struct dhcp_ddns_cb *ddns_cb, isc_result_t result)
void parse_interface_declaration(struct parse *cfile, struct client_config *outer_config, char *name)
int option_reference(struct option **dest, struct option *src, const char *file, int line)
void dhcpack(struct packet *packet)
unsigned cons_agent_information_options(struct option_state *cfg_options, struct dhcp_packet *outpacket, unsigned agentix, unsigned length)
void print_expression(char *name, struct expression *expr) const
int find_bound_string(struct data_string *value, struct binding_scope *scope, const char *name)
struct universe dhcp_universe
char * print_dec_1(unsigned long val)
int fqdn_universe_decode(struct option_state *options, const unsigned char *buffer, unsigned length, struct universe *u)
struct universe * find_option_universe(struct option *eopt, const char *uname)
struct interface_info * ip
struct option_state * options
struct enumeration_value * find_enumeration_value(const char *name, int length, unsigned *widthp, const char *value)
dhcp_ddns_cb_t * ddns_cb_alloc(const char *file, int line)
int group_reference(struct group **ptr, struct group *bp, const char *file, int line)
void dhcp_failover_keepalive(void *)
void data_string_forget(struct data_string *data, const char *file, int line)
struct option_cache * next
void bootp(struct packet *packet)
int setup_fallback(struct interface_info **fp, const char *file, int line)
isc_result_t lease_file_subparse(struct parse *)
struct option_cache * next_hashed_option(struct universe *, struct option_state *, struct option_cache *)
struct shared_network * shared_network
isc_result_t dhcp_failover_send_update_request(dhcp_failover_state_t *)
isc_result_t ipv6_pond_reference(struct ipv6_pond **pond, struct ipv6_pond *src, const char *file, int line)
reference an IPv6 pond structure.
int parse_numeric_expression(struct expression **expr, struct parse *cfile, int *lose)
void free_universe(struct universe *ptr, const char *file, int line)
omapi_object_type_t * dhcp_type_failover_state
void dhcpdecline(struct packet *, int)
const char * pretty_print_option(struct option *option, const unsigned char *data, unsigned len, int emit_commas, int emit_quotes)
struct in6_addr start_addr
int parse_auth_key(struct data_string *, struct parse *)
struct timeval * process_outstanding_timeouts(struct timeval *tvp)
isc_result_t dhcp_class_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
int option_cache_reference(struct option_cache **ptr, struct option_cache *src, const char *file, int line)
void hw_hash_delete(struct lease *)
struct option_cache * fixed_addr
struct class * billing_class
struct group * root_group
const char * dhcp_failover_option_name(unsigned)
void parse_address_range(struct parse *, struct group *, int, struct pool *, struct lease **)
int evaluate_numeric_expression(unsigned long *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct expression *expr)
int find_matching_case(struct executable_statement **ep, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *out_options, struct binding_scope **scope, struct expression *expr, struct executable_statement *stmt)
int fundef_allocate(struct fundef **cptr, const char *file, int line)
void print_dns_status(int, struct dhcp_ddns_cb *, isc_result_t)
struct data_string hash_string
void also_save_option(struct universe *universe, struct option_state *options, struct option_cache *oc)
struct class unknown_class
int parse_lease_declaration(struct lease **, struct parse *)
void delete_option(struct universe *universe, struct option_state *options, int code)
const char * path_dhcpd_db
void if_reinitialize_fallback(struct interface_info *)
int parse_allow_deny(struct option_cache **oc, struct parse *cfile, int flag)
void send_release(void *cpp)
int is_compound_expression(struct expression *expr)
char * ddns_state_name(int state)
isc_result_t dhcp_host_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
int dns_zone_reference(struct dns_zone **ptr, struct dns_zone *bp, const char *file, int line)
lease_id_hash_t * lease_hw_addr_hash
void cancel_all_timeouts(void)
int binding_scope_dereference(struct binding_scope **ptr, const char *file, int line)
struct domain_search_list * new_domain_search_list(char *file, int line) const
void free_permit(struct permit *, const char *, int)
enum expression_context op_context(enum expr_op op)
struct binding_scope * scope
dhcp_failover_state_t * failover_peer
isc_result_t dhcp_class_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
int parse_semi(struct parse *cfile)
struct ipv6_pond * ipv6_pond
failover_option_t * dhcp_failover_option_printf(unsigned, char *, unsigned *, unsigned, const char *,...) __attribute__((__format__(__printf__
void client_envadd(struct client_state *client, const char *prefix, const char *name, const char *fmt,...)
void add_timeout(struct timeval *when, void(*)(void *) where, void *what, tvref_t ref, tvunref_t unref)
void copy_server_duid(struct data_string *ds, const char *file, int line)
void dump_packet(struct packet *)
int evaluate_expression(struct binding_value **result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct expression *expr, const char *file, int line)
struct option_cache * secondary6
struct protocol * protocols
struct data_string auth_key_id
void relinquish_lease_hunks(void)
int allocate_lease(struct lease **, struct packet *, struct pool *, int *)
dhcp_failover_state_t * failover_peer
int parse_fixed_addr_param(struct option_cache **, struct parse *, enum dhcp_token)
void release_lease(struct lease *, struct packet *)
int find_hosts_by_haddr(struct host_decl **, int, const unsigned char *, unsigned, const char *, int)
int parse_lbrace(struct parse *)
int option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct data_string *name)
isc_result_t dhcp_shared_network_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
int fqdn6_universe_decode(struct option_state *options, const unsigned char *buffer, unsigned length, struct universe *u)
isc_result_t enter_dns_zone(struct dns_zone *zone)
struct dhc6_ia * bindings
void parse_string_list(struct parse *cfile, struct string_list **lp, int multiple)
const char * path_dhclient_duid
enum dhcp_token peek_token(const char **rval, unsigned *rlen, struct parse *cfile)
void if_deregister_receive(struct interface_info *)
void convert_host_name(struct parse *, jrefproto)
int(* dhcp_interface_shutdown_hook)(struct interface_info *)
struct data_string fwd_name
parse_warn(cfile,"expecting ip-address or ip-address/prefixlen")
const char * pdestdesc(const struct iaddr addr)
u_int32_t wrapsum(u_int32_t sum)
struct name_server * new_name_server(char *file, int line) const
void dhcp_failover_recover_done(void *)
void indent_spaces(FILE *file, int indent)
void write_client_pid_file()
struct expression * expression
struct data_string client_identifier
struct permit * prohibit_list
void state_panic(void *cpp)
struct parse * saved_state
void build_server_oro(struct data_string *server_oro, struct option_state *options, const char *file, int line)
void forget_zone(struct dns_zone **)
failover_option_t null_failover_option
isc_result_t decline_leases(struct ia_xx *ia)
struct data_string default_duid
void get_hw_addr(struct interface_info *info)
int make_substring(struct expression **new, struct expression *expr, struct expression *offset, struct expression *length)
const char * binding_state_print(enum failover_state state)
void mark_interfaces_unavailable(void)
struct option_state * options
isc_result_t enter_class(struct class *, int, int)
enum dhcp_token peek_raw_token(const char **rval, unsigned *rlen, struct parse *cfile)
int parse_zone(struct dns_zone *zone, struct parse *cfile)
void make_client_config(struct client_state *client, struct client_config *config)
int parse_option_token(struct expression **rv, struct parse *cfile, const char **fmt, struct expression *expr, int uniform, int lookups)
int parse_string(struct parse *cfile, char **sptr, unsigned *lptr)
void ddns_cb_free(dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
isc_boolean_t ia_equal(const struct ia_xx *a, const struct ia_xx *b)
int db_printable_len(const unsigned char *, unsigned)
unsigned char dhcpv6_hop_count
void do_packet(struct interface_info *interface, struct dhcp_packet *packet, unsigned len, unsigned int from_port, struct iaddr from, struct hardware *hfrom)
void parse_failover_state_declaration(struct parse *, dhcp_failover_state_t *)
isc_result_t dhcp_failover_send_bind_ack(dhcp_failover_state_t *, failover_message_t *, int, const char *)
int is_boolean_expression(struct expression *expr)
int read_client_conf_file(const char *name, struct interface_info *ip, struct client_config *client)
void expression_dereference(struct expression **eptr, const char *file, int line)
struct name_server * next
void maybe_setup_fallback(void)
struct dhc6_lease * held_leases
unsigned char dhcpv6_msg_type
int locate_network(struct packet *)
isc_boolean_t lease6_exists(const struct ipv6_pool *pool, const struct in6_addr *addr)
void data_string_truncate(struct data_string *dp, int len)
void if_deregister_send(struct interface_info *)
isc_result_t dhcp_failover_send_poolresp(dhcp_failover_state_t *, int)
int evaluate_boolean_expression_result(int *ignorep, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct expression *expr)
void free_name_server(struct name_server *ptr, const char *file, int line)
const char * dhcp_flink_state_names[]
isc_result_t dhcp_failover_link_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_interface_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
void convert_subnet_statement(struct parse *, jrefproto)
void dhcprelease(struct packet *, int)
int parse_option_buffer(struct option_state *options, const unsigned char *buffer, unsigned length, struct universe *universe)
int buffer_reference(struct buffer **ptr, struct buffer *bp, const char *file, int line)
int binding_value_allocate(struct binding_value **cptr, const char *file, int line)
enum dhcp_pending pending
isc_result_t form_duid(struct data_string *duid, const char *file, int line)
void parse_ia_ta_declaration(struct parse *)
struct executable_statement * statements
int parse_cshl(struct data_string *data, struct parse *cfile)
int parse_option_list(struct parse *cfile, struct option ***list)
struct option_state * options
void state_init(void *cpp)
void lc_delete_all(struct leasechain *lc)
void convert_ip_addr_or_hostname(struct parse *, jrefproto, int)
isc_result_t binding_scope_stuff_values(omapi_object_t *, struct binding_scope *)
void dhcid_tolease(struct data_string *, struct data_string *)
int option_cache_allocate(struct option_cache **cptr, const char *file, int line)
struct universe vsio_universe
void get_server_source_address(struct in_addr *from, struct option_state *options, struct option_state *out_options, struct packet *packet)
const char * dhcp_failover_message_name(unsigned)
void interface_trace_setup(void)
isc_result_t dhcp_failover_state_transition(dhcp_failover_state_t *, const char *)
struct data_string rev_name
void convert_statement(struct parse *)
int option_state_reference(struct option_state **ptr, struct option_state *bp, const char *file, int line)
const char * print_time(TIME t)
isc_result_t dhcp_failover_state_destroy(omapi_object_t *, const char *, int)
isc_result_t decline_lease6(struct ipv6_pool *pool, struct iasubopt *lease)
isc_result_t interface_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_group_create(omapi_object_t **lp, omapi_object_t *id)
void free_lease_state(struct lease_state *, const char *, int)
void read_client_leases()
struct option_state * options
universe_hash_t * universe_hash
struct hardware hardware_addr
int find_hosts6(struct host_decl **host, struct packet *packet, const struct data_string *client_id, char *file, int line)
int unset(struct binding_scope *scope, const char *name)
struct iaddr subnet_number(struct iaddr addr, struct iaddr mask)
isc_result_t dhcp_group_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t dhcp_group_destroy(omapi_object_t *h, const char *file, int line)
void postdb_startup(void)
isc_result_t dhcp_group_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t mark_lease_unavailble(struct ipv6_pool *pool, const struct in6_addr *addr)
isc_result_t dhcp_subclass_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
u_int16_t validate_port(char *port)
isc_result_t ipv6_pool_allocate(struct ipv6_pool **pool, u_int16_t type, const struct in6_addr *start_addr, int bits, int units, const char *file, int line)
Create a new IPv6 lease pool structure.
int linked_option_get(struct data_string *, struct universe *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct option_state *, struct binding_scope **, unsigned)
omapi_object_type_t * dhcp_type_failover_listener
int find_subnet(struct subnet **sp, struct iaddr addr, const char *file, int line)
void relinquish_timeouts(void)
enum dhcp_token next_token(const char **rval, unsigned *rlen, struct parse *cfile)
void execute_statements_in_scope(struct binding_value **result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *out_options, struct binding_scope **scope, struct group *group, struct group *limiting_group, struct on_star *on_star)
failover_option_t skip_failover_option
void change_host_uid(struct host_decl *host, const char *data, int len)
isc_result_t dhcp_control_create(omapi_object_t **lp, omapi_object_t *id)
int make_host_lookup(struct expression **expr, const char *name)
isc_result_t readconf(void)
void make_request(struct client_state *client, struct client_lease *lease)
int dhcp_option_default_priority_list_count
void if_deregister6(struct interface_info *info)
struct string_list * medium
isc_result_t release_lease6(struct ipv6_pool *pool, struct iasubopt *lease)
int subnet_inner_than(const struct subnet *, const struct subnet *, int)
void schedule_lease_timeout(struct ipv6_pool *pool)
isc_result_t dhcp_failover_listen(omapi_object_t *)
isc_result_t dhcp_lease_signal_handler(omapi_object_t *, const char *, va_list)
u_int16_t ddns_conflict_mask
struct interface_info * fallback_interface
isc_result_t dhclient_interface_startup_hook(struct interface_info *interface)
int linked_option_state_dereference(struct universe *universe, struct option_state *state, const char *file, int line)
isc_result_t dhcp_group_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t dhcp_host_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
struct universe * config_universe
int option_state_allocate(struct option_state **ptr, const char *file, int line)
time_t hard_lifetime_end_time
const char * path_dhclient_pid
void client_option_envadd(struct option_cache *oc, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff)
isc_result_t dhcp_failover_state_remove(omapi_object_t *, omapi_object_t *)
int evaluate_option_cache(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct option_cache *oc, const char *file, int line)
isc_result_t dhcp_lease_remove(omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_failover_set_state(dhcp_failover_state_t *, enum failover_state)
struct permit * prohibit_list
struct option_cache * lookup_fqdn6_option(struct universe *universe, struct option_state *options, unsigned code)
void if_register_linklocal6(struct interface_info *info)
void read_resolv_conf(TIME parse_time)
int write_host(struct host_decl *host)
isc_result_t dhcp_failover_process_bind_ack(dhcp_failover_state_t *, failover_message_t *)
int option_chain_head_dereference(struct option_chain_head **ptr, const char *file, int line)
struct option_state * options
void static_lease_dereference(struct lease *, const char *, int)
void parse_subnet_declaration(struct parse *, struct shared_network *)
isc_result_t dhcp_group_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line)
host_hash_t * host_name_hash
void ia_remove_all_lease(struct ia_xx *ia, const char *file, int line)
struct option ** requested_options
void classify(struct packet *packet, struct class *class)
void print_hex_only(unsigned len, const u_int8_t *data, unsigned limit, char *buf)
struct name_server * first_name_server()
void script_init(struct client_state *client, const char *reason, struct string_list *medium)
Initializes basic variables for a script.
void mark_phosts_unavailable(void)
isc_result_t dhcp_failover_state_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
void convert_class_decl(struct parse *, jrefproto)
void set_netmask(struct interface_info *, struct in_addr)
void write_billing_classes(void)
struct iaddr interface_address
void lease_remove_all(struct lease **lq)
ssize_t send_fallback6(struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in6_addr *, struct sockaddr_in6 *, struct hardware *)
isc_result_t dhcp_interface_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t delete_host(struct host_decl *, int)
int packet_reference(struct packet **ptr, struct packet *bp, const char *file, int line)
void enter_shared_network(struct shared_network *)
void dhcp_failover_pool_rebalance(void *)
isc_result_t dhcp_failover_generate_update_queue(dhcp_failover_state_t *, int)
void state_requesting(void *)
void delete_hashed_option(struct universe *universe, struct option_state *options, int code)
isc_result_t cleanup_lease6(ia_hash_t *ia_table, struct ipv6_pool *pool, struct iasubopt *lease, struct ia_xx *ia)
Cleans up leases when reading from a lease file.
void abandon_lease(struct lease *, const char *)
struct dns_answer * answer
int main(int argc, char **argv)
binding_state_t binding_state
isc_timer_t * isc_timeout
dns_rdataclass_t dhcid_class
isc_result_t get_hw_addr2(struct interface_info *info)
void linked_option_space_foreach(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
void make_decline(struct client_state *client, struct client_lease *lease)
struct ipv6_pool * ipv6_pool
isc_result_t dhcp_failover_put_message(dhcp_failover_link_t *, omapi_object_t *, int, u_int32_t,...)
void bind_lease(struct client_state *client)
isc_result_t dhcp_failover_state_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
int fqdn6_option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
int buffer_allocate(struct buffer **ptr, unsigned len, const char *file, int line)
void dhcp_failover_rescind_updates(dhcp_failover_state_t *)
int parse_if_statement(struct executable_statement **result, struct parse *cfile, int *lose)
struct class * classes[PACKET_MAX_CLASSES]
char * default_option_format
struct data_string server_id
struct interface_info * interface
void dhcp_failover_listener_restart(void *)
isc_result_t dhcp_failover_process_update_request_all(dhcp_failover_state_t *, failover_message_t *)
void postconf_initialization(int)
int binding_scope_allocate(struct binding_scope **ptr, const char *file, int line)
isc_result_t dhcp_failover_send_disconnect(omapi_object_t *, int, const char *)
omapi_object_type_t * dhcp_type_control
ssize_t send_packet6(struct interface_info *, const unsigned char *, size_t, struct sockaddr_in6 *)
isc_result_t dhcp_failover_peer_state_changed(dhcp_failover_state_t *, failover_message_t *)
int write_lease(struct lease *lease)
struct dhcp_ddns_cb * next_op
int group_dereference(struct group **ptr, const char *file, int line)
isc_result_t dhcp_failover_process_update_request(dhcp_failover_state_t *, failover_message_t *)
isc_result_t dhcp_subnet_create(omapi_object_t **lp, omapi_object_t *id)
void convert_servername_decl(struct parse *, jrefproto)
void delete_fqdn6_option(struct universe *universe, struct option_state *options, int code)
trace_type_t * inpacket_trace
void convert_num(struct parse *cfile, unsigned char *buf, const char *str, int base, unsigned size)
int group_allocate(struct group **ptr, const char *file, int line)
void(* bootp_packet_handler)(struct interface_info *, struct dhcp_packet *, unsigned, unsigned int, struct iaddr, struct hardware *)
void save_hashed_option(struct universe *universe, struct option_state *options, struct option_cache *oc, isc_boolean_t appendp)
void enter_lease(struct lease *)
isc_result_t renew_leases(struct ia_xx *ia)
int parse_boolean_expression(struct expression **expr, struct parse *cfile, int *lose)
int write_server_duid(void)
int(* group_write_hook)(struct group_object *)
void assemble_hw_header(struct interface_info *, unsigned char *, unsigned *, struct hardware *)
void commit_leases_timeout(void *)
int(* dhcp_interface_discovery_hook)(struct interface_info *)
isc_result_t dhcp_class_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
void unregister_eventhandler(struct eventqueue **, void(*handler)(void *))
int find_lease_by_hw_addr(struct lease **, const unsigned char *, unsigned, const char *, int)
int if_register_lpf(struct interface_info *)
omapi_object_type_t * dhcp_type_subclass
isc_result_t dhcp_subnet_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_subclass_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
host_hash_t * host_hw_addr_hash
int dhcp_failover_queue_ack(dhcp_failover_state_t *, failover_message_t *msg)
unsigned char * parse_numeric_aggregate(struct parse *cfile, unsigned char *buf, unsigned *max, int separator, int base, unsigned size)
void parse_client_lease_declaration(struct parse *cfile, struct client_lease *lease, struct interface_info **ipp, struct client_state **clientp)
void send_request(void *cpp)
void(* func)(struct dns_query *)
struct data_string iaid_duid
isc_result_t interface_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result)
int linked_option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
void parse_pool_statement(struct parse *, struct group *, int)
Parse a pool statement.
const char * path_dhcpd_pid
int make_concat(struct expression **expr, struct expression *left, struct expression *right)
ssize_t send_packet(struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in_addr, struct sockaddr_in *, struct hardware *)
isc_result_t dhcp_subnet_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t dhcp_failover_link_signal(omapi_object_t *, const char *, va_list)
void(* tvref_t)(void *, void *, const char *, int)
int pretty_escape(char **dst, char *dend, const unsigned char **src, const unsigned char *send)
int cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, struct lease *lease, struct client_state *client_state, int mms, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, int overload_avail, int terminate, int bootpp, struct data_string *prl, const char *vuname)
void convert_host_decl(struct parse *, jrefproto)
struct dhc6_lease * advertised_leases
const char * dhcp_failover_state_name_print(enum failover_state)
int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *)
int save_option_buffer(struct universe *universe, struct option_state *options, struct buffer *bp, unsigned char *buffer, unsigned length, unsigned code, int terminatep)
omapi_object_type_t * dhcp_type_host
struct expression * submatch
isc_result_t dhcp_subclass_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
int hashed_option_state_dereference(struct universe *universe, struct option_state *state, const char *file, int line)
isc_result_t got_one_v6(omapi_object_t *)
binding_state_t normal_binding_state_transition_check(struct lease *, dhcp_failover_state_t *, binding_state_t, u_int32_t)
void parse_reject_statement(struct parse *cfile, struct client_config *config)
void start_confirm6(struct client_state *client)
struct option * new_option(char *name, const char *file, int line) const
void set_server_duid(struct data_string *new_duid)
isc_result_t dhcid_fromlease(struct data_string *, struct data_string *)
isc_result_t add_ipv6_pool(struct ipv6_pool *pool)
isc_result_t dhcp_control_destroy(omapi_object_t *h, const char *file, int line)
struct dhcp_ddns_cb dhcp_ddns_cb_t
int addr_match(struct iaddr *, struct iaddrmatch *)
int add_option(struct option_state *options, unsigned int option_num, void *data, unsigned int data_len)
struct client_lease * next
void ddns_cancel(dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
isc_result_t create_lease6(struct ipv6_pool *pool, struct iasubopt **addr, unsigned int *attempts, const struct data_string *uid, time_t soft_lifetime_end_time)
isc_result_t dhcp_lease_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_control_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
omapi_object_type_t * dhcp_type_interface
struct host_decl * n_ipaddr
int parse_non_binary(struct expression **expr, struct parse *cfile, int *lose, enum expression_context context)
isc_result_t dhcp_failover_link_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
int concat_dclists(struct data_string *result, struct data_string *list1, struct data_string *list2)
Adds two Dc-formatted lists into a single Dc-formatted list.
struct option_state * sent_options
isc_result_t dhcp_group_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
const char * path_dhclient_conf
int option_chain_head_reference(struct option_chain_head **ptr, struct option_chain_head *bp, const char *file, int line)
isc_result_t dhcp_pool_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
int make_let(struct executable_statement **result, const char *name)
int store_options(int *ocount, unsigned char *buffer, unsigned index, unsigned buflen, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, unsigned *priority_list, int priority_len, unsigned first_cutoff, int second_cutoff, int terminate, const char *vuname)
int parse_ip6_addr(struct parse *cfile, struct iaddr *addr)
TIME parse_date(struct parse *)
struct lease * lc_get_first_lease(struct leasechain *lc)
struct hardware hw_address
struct data_string host_id
void uid_hash_delete(struct lease *)
dhcp_failover_state_t * failover_states
isc_result_t dhcp_subclass_remove(omapi_object_t *, omapi_object_t *)
int load_balance_mine(struct packet *, dhcp_failover_state_t *)
unsigned char option_mask[16]
void parse_shared_net_declaration(struct parse *, struct group *)
void convert_class_statement(struct parse *, jrefproto, int)
void dhcp_failover_link_startup_timeout(void *)
struct option_cache * lookup_option(struct universe *universe, struct option_state *options, unsigned code)
int dhclient_interface_discovery_hook(struct interface_info *tmp)
void convert_hardware_decl(struct parse *, jrefproto)
isc_result_t dhcp_shared_network_destroy(omapi_object_t *h, const char *file, int line)
struct client_state * client
isc_result_t dhcp_pool_remove(omapi_object_t *, omapi_object_t *)
int parse_ip_addr_or_hostname(struct expression **expr, struct parse *cfile, int uniform)
int permitted(struct packet *, struct permit *)
struct option_state * options
void trigger_event(struct eventqueue **)
struct dhc6_lease * selected_lease
void set_server_duid_type(int type)
int parse_option_decl(struct option_cache **oc, struct parse *cfile)
void dhcp_db_objects_setup(void)
struct in_addr limited_broadcast
isc_sockaddrlist_t zone_server_list
void repudiate_zone(struct dns_zone **)
isc_result_t dhcp_control_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_subclass_destroy(omapi_object_t *, const char *, int)
struct ipv6_pool ** ipv6_pools
struct option_tag * first
void skip_to_semi(struct parse *cfile)
isc_result_t write_named_billing_class(const void *, unsigned, void *)
void write_statements(FILE *file, struct executable_statement *statements, int indent)
int fundef_dereference(struct fundef **ptr, const char *file, int line)
int evaluate_data_expression(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct expression *expr, const char *file, int line)
int packet6_len_okay(const char *packet, int len)
const char * pin6_addr(const struct in6_addr *)
isc_result_t interface_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
u_int16_t validate_port_pair(char *port)
void skip_to_rbrace(struct parse *cfile, int brace_count)
void new_address_range(struct parse *, struct iaddr, struct iaddr, struct subnet *, struct pool *, struct lease **)
isc_result_t dhcp_interface_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t find_failover_peer(dhcp_failover_state_t **, const char *, const char *, int)
void add_route_net(struct interface_info *, struct in_addr, struct in_addr)
unsigned short cannot_reuse
int parse_options(struct packet *packet)
struct interface_info * interfaces
void free_client_lease(struct client_lease *lease, const char *file, int line)
int parse_on_statement(struct executable_statement **result, struct parse *cfile, int *lose)
unsigned char dhcp4o6_flags[3]
u_int16_t dhcp_check_relayport(struct packet *packet)
struct shared_network * shared_network
isc_result_t ipv6_pool_dereference(struct ipv6_pool **pool, const char *file, int line)
de-reference an IPv6 pool structure.
isc_result_t find_ipv6_pool(struct ipv6_pool **pool, u_int16_t type, const struct in6_addr *addr)
isc_result_t dhcp_shared_network_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_subnet_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
int validate_packet(struct packet *packet)
int find_hosts_by_uid(struct host_decl **, const unsigned char *, unsigned, const char *, int)
int addr_eq(struct iaddr addr1, struct iaddr addr2)
struct client_config top_level_config
char * parse_host_name(struct parse *cfile)
struct iaddr broadcast_addr(struct iaddr subnet, struct iaddr mask)
int write_group(struct group_object *)
int parse_option_statement(struct executable_statement **result, struct parse *cfile, int lookups, struct option *option, enum statement_op op)
isc_result_t delete_class(struct class *, int)
void interface_snorf(struct interface_info *tmp, int ir)
isc_result_t enter_failover_peer(dhcp_failover_state_t *)
struct subnet * next_subnet
isc_boolean_t ipv6_in_pool(const struct in6_addr *addr, const struct ipv6_pool *pool)
void convert_shared_net_statement(struct parse *, jrefproto)
int get_option(struct data_string *result, struct universe *universe, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct option_state *options, struct binding_scope **scope, unsigned code, const char *file, int line)
void(* tvunref_t)(void *, const char *, int)
struct option ** required_options
ssize_t decode_ethernet_header(struct interface_info *, unsigned char *, unsigned, struct hardware *)
omapi_object_type_t * dhcp_type_class
void fqdn6_option_space_foreach(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
char * print_base64(const unsigned char *buf, unsigned len, const char *file, int line)
void state_reboot(void *cpp)
int check_collection(struct packet *packet, struct lease *lease, struct collection *collection)
void destroy_client_lease(struct client_lease *lease)
void convert_filename_decl(struct parse *, jrefproto)
void db_startup(int testp)
omapi_object_type_t * dhcp_type_group
int parse_agent_information_option(struct packet *packet, int len, u_int8_t *data)
int parse_option_data(struct expression **expr, struct parse *cfile, int lookups, struct option *option)
struct shared_network * shared_network
char * path_dhclient_script
isc_result_t dhcp_lease_get(omapi_object_t **, const char *, int)
dhcp_control_object_t * dhcp_control_object
isc_result_t dhcp_host_remove(omapi_object_t *, omapi_object_t *)
int parse_switch_statement(struct executable_statement **result, struct parse *cfile, int *lose)
isc_result_t dhcp_subnet_destroy(omapi_object_t *h, const char *file, int line)
void parse_client_statement(struct parse *cfile, struct interface_info *ip, struct client_config *config)
void echo_client_id(struct packet *, struct lease *, struct option_state *, struct option_state *)
Adds a dhcp-client-id option to a set of options Given a set of input options, it searches for echo-c...
struct lease ** billed_leases
void dhcpdiscover(struct packet *, int)
void dhcp_failover_reconnect(void *)
isc_result_t get_client_id(struct packet *, struct data_string *)
const char * path_dhcpd_conf
struct universe ** universes
void set_broadcast_addr(struct interface_info *, struct in_addr)
void use_host_decl_name(struct packet *, struct lease *, struct option_state *)
Adds hostname option when use-host-decl-names is enabled.
void make_client_state(struct client_state **state)
char * format_lease_id(const unsigned char *s, unsigned len, int format, const char *file, int line)
void dhcp_failover_startup(void)
struct option_cache * secondary
isc_result_t save_parse_state(struct parse *cfile)
int parse_dns_expression(struct expression **, struct parse *, int *)
void convert_host_statement(struct parse *, jrefproto)
struct lease * lc_get_next(struct leasechain *lc, struct lease *lp)
void if_register6(struct interface_info *info, int do_multicast)
int store_options6(char *buf, int buflen, struct option_state *opt_state, struct packet *packet, const int *required_opts, struct data_string *oro)
struct domain_search_list * domains
int(* dhcp_interface_setup_hook)(struct interface_info *, struct iaddr *)
int quiet_interface_discovery
void convert_date(struct parse *, jrefproto, char *)
void set_ip_address(struct interface_info *, struct in_addr)
int append_option_buffer(struct universe *universe, struct option_state *options, struct buffer *bp, unsigned char *buffer, unsigned length, unsigned code, int terminatep)
struct client_lease * active
isc_result_t dhcp_lease_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
void nak_lease(struct packet *, struct iaddr *cip, struct group *)
Constructs and sends a DHCP Nak.
isc_result_t dhcp_shared_network_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_class_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_subnet_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
u_int32_t host_addr(struct iaddr addr, struct iaddr mask)
int parse_statement(struct parse *, struct group *, int, struct host_decl *, int)
isc_result_t client_dns_update(struct client_state *client, dhcp_ddns_cb_t *ddns_cb)
struct data_string * dhcp4o6_response
int parse_ip6_addr_expr(struct expression **expr, struct parse *cfile)
isc_result_t release_leases(struct ia_xx *ia)
struct iaddrcidrnetlist * fixed_prefix
void update_partner(struct lease *)
isc_result_t dhcp_failover_send_update_done(dhcp_failover_state_t *)
int option_state_dereference(struct option_state **ptr, const char *file, int line)
void suboption_foreach(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *), struct option_cache *oc, const char *vsname)
void start_init6(struct client_state *client)
isc_result_t dhcp_subnet_remove(omapi_object_t *lp, omapi_object_t *id)
void option_space_foreach(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
struct group_object * named_group
void(* v6_handler)(struct packet *, struct client_state *)
isc_result_t ddns_removals(struct lease *, struct iasubopt *, struct dhcp_ddns_cb *, isc_boolean_t)
enum dhcp_shutdown_state shutdown_state
isc_result_t restore_parse_state(struct parse *cfile)
void initialize_common_option_spaces()
void make_discover(struct client_state *client, struct client_lease *lease)
void dhcpv6(struct packet *)
isc_result_t dhcp_class_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
int commit_leases_timed(void)
void trace_ddns_init(void)
isc_result_t ipv6_pond_allocate(struct ipv6_pond **pond, const char *file, int line)
Create a new IPv6 pond structure.
void unconfigure6(struct client_state *client, const char *reason)
void client_dns_remove(struct client_state *client, struct iaddr *addr)
isc_result_t dhcp_pool_signal_handler(omapi_object_t *, const char *, va_list)
int parse_expression(struct expression **expr, struct parse *cfile, int *lose, enum expression_context context, struct expression **plhs, enum expr_op binop)
struct shared_network * shared_network
int parse_destination_descriptor(struct parse *cfile, struct iaddr *addr)
isc_boolean_t is_cidr_mask_valid(const struct iaddr *addr, int bits)
int binding_scope_reference(struct binding_scope **ptr, struct binding_scope *bp, const char *file, int line)
int got_server_identifier
isc_result_t dhcp_interface_signal_handler(omapi_object_t *h, const char *name, va_list ap)
int lease_enqueue(struct lease *)
void register_eventhandler(struct eventqueue **, void(*handler)(void *))
int token_print_indent_concat(FILE *file, int col, int indent, const char *prefix, const char *suffix,...)
struct executable_statement * statements
binding_state_t rewind_binding_state
void state_bound(void *cpp)
int peer_wants_lease(struct lease *)
void parse_failover_state(struct parse *, enum failover_state *, TIME *)
isc_uint64_t low_threshold
struct interface_info * next
struct universe dhcpv6_universe
isc_boolean_t prefix6_exists(const struct ipv6_pool *pool, const struct in6_addr *pref, u_int8_t plen)
void dhcp_failover_ack_queue_remove(dhcp_failover_state_t *, struct lease *)
int evaluate_boolean_option_cache(int *ignorep, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct option_cache *oc, const char *file, int line)
void free_protocol(struct protocol *ptr, const char *file, int line)
isc_heap_t * inactive_timeouts
isc_result_t dhcp_failover_set_service_state(dhcp_failover_state_t *state)
isc_result_t dhcp_io_shutdown(omapi_object_t *, void *)
void if_register_fallback(struct interface_info *)
char * absolute_path(const char *orgpath)
int make_const_data(struct expression **expr, const unsigned char *data, unsigned len, int terminated, int allocate, const char *file, int line)
int enter_dns_host(struct dns_host_entry **dh, const char *name)
void free_pair(pair foo, const char *file, int line)
int packet_dereference(struct packet **ptr, const char *file, int line)
int ddns_updates(struct packet *, struct lease *, struct lease *, struct iasubopt *, struct iasubopt *, struct option_state *)
void convert_address_range(struct parse *, jrefproto)
isc_result_t dhcp_subnet_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
int packet_allocate(struct packet **ptr, const char *file, int line)
void schedule_all_ipv6_lease_timeouts()
void make_binding_state_transition(struct lease *)
void make_release(struct client_state *client, struct client_lease *lease)
struct string_list * next
struct expression * parse_domain_list(struct parse *cfile, int compress)
void parse_failover_peer(struct parse *, struct group *, int)
void parse_address_range6(struct parse *cfile, struct group *group, struct ipv6_pond *)
int is_data_expression(struct expression *expr)
isc_result_t iasubopt_dereference(struct iasubopt **iasubopt, const char *file, int line)
void failover_print(char *, unsigned *, unsigned, const char *)
int parse_base64(struct data_string *data, struct parse *cfile)
int dhcp_failover_queue_update(struct lease *, int)
int db_printable(const unsigned char *)
isc_result_t read_client_conf()
struct interface_info * dummy_interfaces
void convert_lease_time(struct parse *, jrefproto, char *)
void ack_lease(struct packet *, struct lease *, unsigned int, TIME, char *, int, struct host_decl *)
isc_uint64_t num_abandoned
void report_jumbo_ranges()
isc_result_t supersede_group(struct group_object *group, int writep)
isc_result_t set_server_duid_from_option(void)
void add_route_direct(struct interface_info *, struct in_addr)
isc_result_t find_class(struct class **c, const char *s, const char *file, int line)
struct shared_network * shared_network
struct failover_option_info ft_options[]
void parse_prefix6(struct parse *cfile, struct group *group, struct ipv6_pond *)
struct option * host_id_option
void script_write_requested(struct client_state *client)
Write out the environent variable the client requested. Write out the environment variables for the o...
isc_result_t got_one(omapi_object_t *h)
int format_min_length(const char *, struct option_cache *)
isc_result_t ia_allocate(struct ia_xx **ia, u_int32_t iaid, const char *duid, unsigned int duid_len, const char *file, int line)
int parse_class_declaration(struct class **, struct parse *, struct group *, int)
int option_chain_head_allocate(struct option_chain_head **ptr, const char *file, int line)
void parse_ia_pd_declaration(struct parse *)
ssize_t send_fallback(struct interface_info *, struct packet *, struct dhcp_packet *, size_t, struct in_addr, struct sockaddr_in *, struct hardware *)
isc_result_t interface_initialize(omapi_object_t *ipo, const char *file, int line)
int make_limit(struct expression **new, struct expression *expr, int limit)
struct binding * create_binding(struct binding_scope **scope, const char *name)
isc_result_t dhcp_class_signal_handler(omapi_object_t *, const char *, va_list)
int parse_ip6_prefix(struct parse *cfile, struct iaddr *addr, u_int8_t *plen)
struct option_cache * primary6
binding_state_t desired_binding_state
isc_boolean_t agent_options_stashed
void free_expression(struct expression *expr, const char *file, int line)
struct subnet * next_sibling
isc_result_t ia_add_iasubopt(struct ia_xx *ia, struct iasubopt *iasubopt, const char *file, int line)
int dhcp_failover_write_all_states(void)
struct client_lease * new_client_lease(char *file, int line) const
isc_uint64_t num_abandoned
isc_result_t dhcp_failover_listener_destroy(omapi_object_t *, const char *, int)
void convert_fixed_addr_decl(struct parse *, jrefproto)
void convert_hardware_addr(struct parse *, jrefproto)
isc_heap_t * active_timeouts
void parse_lease_time(struct parse *cfile, TIME *timep)
int parse_boolean(struct parse *cfile)
isc_result_t dhcp_shared_network_signal_handler(omapi_object_t *h, const char *name, va_list ap)
TIME parse_date_core(struct parse *)
isc_result_t binding_scope_set_value(struct binding_scope *, int, omapi_data_string_t *, omapi_typed_data_t *)
struct interface_info * interface
struct client_lease * offered_leases
#define OMAPI_OBJECT_ALLOC_DECL(name, stype, type)
isc_result_t ipv6_pond_dereference(struct ipv6_pond **pond, const char *file, int line)
de-reference an IPv6 pond structure.
time_t soft_lifetime_end_time
int find_lease_by_uid(struct lease **, const unsigned char *, unsigned, const char *, int)
int icmp_readsocket(omapi_object_t *h)
int supports_multiple_interfaces(struct interface_info *)
struct protocol * new_protocol(char *file, int line) const
isc_result_t dhcp_failover_send_bind_update(dhcp_failover_state_t *, struct lease *)
struct string_list * media
void enter_subnet(struct subnet *)
isc_result_t dhcp_failover_send_state(dhcp_failover_state_t *)
char * print_hex(unsigned len, const u_int8_t *data, unsigned limit, unsigned buf_num)
void dhcpv4_client_assignments(void)
int make_encapsulation(struct expression **expr, struct data_string *name)
isc_result_t dhcp_subclass_create(omapi_object_t **, omapi_object_t *)
isc_result_t enter_host(struct host_decl *, int, int)
unsigned char * answers[1]
int expression_reference(struct expression **ptr, struct expression *src, const char *file, int line)
void dhcp_failover_timeout(void *)
void dhcp_failover_sanity_check(void)
u_int16_t get_conflict_mask(struct option_state *input_options)
void lc_add_sorted_lease(struct leasechain *lc, struct lease *lp)
isc_result_t interface_setup()
void lc_unlink_lease(struct leasechain *lc, struct lease *lp)
isc_result_t dhcp_group_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t icmp_echoreply(omapi_object_t *h)
group_hash_t * group_name_hash
int dhcp_failover_state_match(dhcp_failover_state_t *, u_int8_t *, unsigned)
void save_fqdn6_option(struct universe *universe, struct option_state *options, struct option_cache *oc, isc_boolean_t appendp)
int dhcpd_interface_setup_hook(struct interface_info *ip, struct iaddr *ia)
isc_result_t dhcp_lease_destroy(omapi_object_t *, const char *, int)
void dump_raw(unsigned char *buf, unsigned len) const
int dns_host_entry_allocate(struct dns_host_entry **ptr, const char *hostname, const char *file, int line)
void dhcpv6_client_assignments(void)
void dhcp_failover_toack_queue_timeout(void *)
isc_result_t dhcp_pool_destroy(omapi_object_t *, const char *, int)
u_int8_t hbuf[HARDWARE_ADDR_LEN+1]
struct binding_scope ** scope
struct iaddrmatchlist * reject_list
struct string_list * medium
isc_result_t dhcp_lease_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
int icmp_echorequest(struct iaddr *addr)
isc_result_t dhcp_shared_network_create(omapi_object_t **lp, omapi_object_t *id)
#define HASH_FUNCTIONS_DECL(name, bufarg, type, hashtype)
dns_rdataclass_t other_dhcid_class
struct client_config * config
int evaluate_boolean_expression(int *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct expression *expr)
isc_result_t dhcp_lease_create(omapi_object_t **, omapi_object_t *)
int op_precedence(enum expr_op op1, enum expr_op op2)
void hashed_option_space_foreach(struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff, void(*func)(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *))
struct universe agent_universe
#define HARDWARE_ADDR_LEN
isc_result_t parse_option_name(struct parse *, int, int *, struct option **)
isc_result_t dhcp_shared_network_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
void dhclient_schedule_updates(struct client_state *client, struct iaddr *addr, int offset)
isc_boolean_t relay_source_port
void set_multicast_hop_limit(struct interface_info *info, int hop_limit)
isc_result_t dhcp_lease_free(omapi_object_t *, const char *, int)
struct in_addr local_address
struct hardware anycast_mac_addr
int token_print_indent(FILE *file, int col, int indent, const char *prefix, const char *suffix, const char *buf)
int dhcp_option_ev_name(char *buf, size_t buflen, struct option *option)
isc_result_t dhcp_class_remove(omapi_object_t *, omapi_object_t *)
ssize_t receive_packet(struct interface_info *, unsigned char *, size_t, struct sockaddr_in *, struct hardware *)
struct ipv6_pool ** pools
void ddns_cb_forget_zone(dhcp_ddns_cb_t *ddns_cb)
struct universe fqdn_universe
char * piaddrcidr(const struct iaddr *addr, unsigned int bits)
int dns_host_entry_dereference(struct dns_host_entry **ptr, const char *file, int line)
int make_const_int(struct expression **expr, unsigned long val)
void dhcp(struct packet *packet)
struct iasubopt ** iasubopt
struct collection * collections
int nwip_option_space_encapsulate(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *universe)
void classification_setup(void)
int write_ia(const struct ia_xx *)
void dump_packet_option(struct option_cache *, struct packet *, struct lease *, struct client_state *, struct option_state *, struct option_state *, struct binding_scope **, struct universe *, void *)
void lc_init_growth(struct leasechain *lc, size_t growth)
void parse_server_duid(struct parse *cfile)
int dns_zone_allocate(struct dns_zone **ptr, const char *file, int line)
struct collection default_collection
pair cons(caddr_t car, pair cdr)
void remove_if_route(struct interface_info *, struct in_addr)
isc_result_t dhcp_failover_listener_signal(omapi_object_t *, const char *, va_list)
const char * binding_state_names[]
struct executable_statement * on_expiry
int write_expression(FILE *file, struct expression *expr, int col, int indent, int firstp)
struct binding * find_binding(struct binding_scope *scope, const char *name)
struct shared_network * next
struct in6_addr dhcpv6_peer_address
int group_writer(struct group_object *)
struct shared_network * shared_network
struct string_list * medium
void dhcp_reply(struct lease *)
isc_result_t find_cached_zone(dhcp_ddns_cb_t *, int)
struct dhcp_ddns_cb * ddns_cb
struct enumeration syslog_enum
void new_shared_network_interface(struct parse *, struct shared_network *, const char *)
struct permit * permit_list
struct data_string filename server_name
int new_lease_file(int test_mode)
isc_result_t create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref, unsigned int *attempts, const struct data_string *uid, time_t soft_lifetime_end_time)
const char * dhcp_failover_reject_reason_print(int)
int dhcp_failover_send_acks(dhcp_failover_state_t *)
ssize_t decode_hw_header(struct interface_info *, unsigned char *, unsigned, struct hardware *)
void if_reinitialize_receive(struct interface_info *)
int can_unicast_without_arp(struct interface_info *)
isc_result_t dhcp_set_control_state(control_object_state_t oldstate, control_object_state_t newstate)
struct lease_state * new_lease_state(const char *, int)
int parse_executable_statements(struct executable_statement **statements, struct parse *cfile, int *lose, enum expression_context case_context)
struct universe nwip_universe
isc_result_t range2cidr(struct iaddrcidrnetlist **result, const struct iaddr *lo, const struct iaddr *hi)
void convert_lease_statement(struct parse *, jrefproto)
isc_result_t read_conf_file(const char *, struct group *, int, int)
void hash_dump(struct hash_table *table)
int parse_ip_addr(struct parse *cfile, struct iaddr *addr)
void if_register_receive(struct interface_info *)
int bill_class(struct lease *, struct class *)
struct shared_network * shared_network
void trace_conf_stop(trace_type_t *ttype)
isc_result_t dhcp_failover_send_updates(dhcp_failover_state_t *)
struct interface_info ** interface_vector
char * quotify_string(const char *s, const char *file, int line)
int format_has_text(const char *)
isc_result_t ia_reference(struct ia_xx **ia, struct ia_xx *src, const char *file, int line)
void interface_stash(struct interface_info *tptr)
struct executable_statement * on_commit
isc_result_t dhcp_pool_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
void dhcp_failover_startup_timeout(void *)
isc_result_t dhcp_failover_send_update_request_all(dhcp_failover_state_t *)
struct interface_info * interface
int get_option_int(int *result, struct universe *universe, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct option_state *options, struct binding_scope **scope, unsigned code, const char *file, int line)
void dhcp_common_objects_setup(void)
int parse_case_statement(struct executable_statement **result, struct parse *cfile, int *lose, enum expression_context case_context)
isc_result_t dhcp_shared_network_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
int bind_ds_value(struct binding_scope **scope, const char *name, struct data_string *value)
trace_type_t * outpacket_trace
isc_result_t generate_new_server_duid(void)
isc_result_t conf_file_subparse(struct parse *, struct group *, int)
struct binding_scope * scope
void parse_group_declaration(struct parse *, struct group *)
struct domain_search_list * next
struct option * vendor_cfg_option
void data_string_copy(struct data_string *dest, const struct data_string *src, const char *file, int line)
isc_result_t ipv6_pool_reference(struct ipv6_pool **pool, struct ipv6_pool *src, const char *file, int line)
reference an IPv6 pool structure.
struct hardware interface
binding_state_t conflict_binding_state_transition_check(struct lease *, dhcp_failover_state_t *, binding_state_t, u_int32_t)
isc_result_t dhcp_failover_state_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t lease_instantiate(const void *, unsigned, void *)
struct permit * permit_list
struct in6_addr local_address6
void free_binding_value(struct binding_value *bv, const char *file, int line)
struct enumeration prefix_length_modes
struct host_decl * n_dynamic
isc_result_t dns_zone_lookup(struct dns_zone **zone, const char *name)
isc_result_t dhcp_pool_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
int parse_executable_statement(struct executable_statement **result, struct parse *cfile, int *lose, enum expression_context case_context)
int got_requested_address
int find_lease_by_ip_addr(struct lease **, struct iaddr, const char *, int)
isc_result_t fallback_discard(omapi_object_t *)
int data_subexpression_length(int *, struct expression *)
struct client_lease * leases
void parse_ia_na_declaration(struct parse *)
void parse_hardware_param(struct parse *cfile, struct hardware *hardware)
int dns_host_entry_reference(struct dns_host_entry **ptr, struct dns_host_entry *bp, const char *file, int line)
isc_result_t dhcp_failover_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
struct dhc6_lease * old_lease
u_int32_t requested_lease
struct in6_addr dhcpv6_link_address
int clone_group(struct group **gp, struct group *group, const char *file, int line)
void write_lease_option(struct option_cache *oc, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct universe *u, void *stuff)
struct dhcp_packet * new_dhcp_packet(char *file, int line) const
struct timeout * timeouts
int dhcp_option_default_priority_list[]
int expr_valid_for_context(struct expression *, enum expression_context)
char * buf_to_hex(const unsigned char *s, unsigned len, const char *file, int line)
u_int32_t abandon_lease_time
isc_result_t dhcp_failover_link_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
binding_state_t next_binding_state
struct enumeration ddns_styles
u_int32_t checksum(unsigned char *buf, unsigned nbytes, u_int32_t sum)
void ia_remove_iasubopt(struct ia_xx *ia, struct iasubopt *iasubopt, const char *file, int line)
void discover_interfaces(int state)
int if_register_socket(struct interface_info *, int, int *, struct in6_addr *)
struct interface_info * interface
void convert_option_decl(struct parse *, jrefproto)
int dhcp_failover_state_pool_check(dhcp_failover_state_t *)
isc_result_t new_parse(struct parse **cfile, int file, char *inbuf, unsigned buflen, const char *name, int eolp)
void hw_hash_add(struct lease *)
void classify_client(struct packet *)
omapi_object_type_t * dhcp_type_subnet
struct dhc6_lease * active_lease
isc_result_t dhcp_pool_create(omapi_object_t **, omapi_object_t *)
#define PACKET_MAX_CLASSES
struct name_server * name_servers
isc_result_t dhcp_interface_lookup(omapi_object_t **ip, omapi_object_t *id, omapi_object_t *ref)
isc_result_t dhcp_failover_process_bind_update(dhcp_failover_state_t *, failover_message_t *)
isc_result_t dhcp_control_signal_handler(omapi_object_t *h, const char *name, va_list ap)
struct group_object * object
lease_ip_hash_t * lease_ip_addr_hash
isc_result_t dhcp_failover_process_update_done(dhcp_failover_state_t *, failover_message_t *)
void remove_routes(struct in_addr)
int lease_mine_to_reallocate(struct lease *)
void free_dhcp_packet(struct dhcp_packet *ptr, const char *file, int line)
isc_result_t expire_lease6(struct iasubopt **leasep, struct ipv6_pool *pool, time_t now)
int dhclient_interface_shutdown_hook(struct interface_info *interface)
void script_write_params(struct client_state *client, const char *prefix, struct client_lease *lease)
Adds parameters to environment variables for a script.
int option_dereference(struct option **dest, const char *file, int line)
void lease_insert(struct lease **lq, struct lease *comp)
void dhcp_failover_send_contact(void *)
enum dhcp_token next_raw_token(const char **rval, unsigned *rlen, struct parse *cfile)
isc_result_t dhcp_subclass_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_pool_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
void client_location_changed()
void state_stop(void *cpp)
struct dns_wakeup * wakeups
int lease_copy(struct lease **, struct lease *, const char *, int)
void add_route_default_gateway(struct interface_info *, struct in_addr)
int dns_zone_dereference(struct dns_zone **ptr, const char *file, int line)
struct option_chain_head * agent_options
int buffer_dereference(struct buffer **ptr, const char *file, int line)
struct option_cache * lookup_linked_option(struct universe *universe, struct option_state *options, unsigned code)
int addr_and(struct iaddr *result, const struct iaddr *a1, const struct iaddr *a2)
struct packet * dhcpv6_container_packet
struct option_cache * primary
ssize_t receive_packet6(struct interface_info *interface, unsigned char *buf, size_t len, struct sockaddr_in6 *from, struct in6_addr *to_addr, unsigned int *if_index)
isc_result_t ddns_modify_fwd(dhcp_ddns_cb_t *ddns_cb, const char *file, int line)
isc_result_t binding_scope_get_value(omapi_value_t **, struct binding_scope *, omapi_data_string_t *)
struct in6_addr * v6addresses
int is_dns_expression(struct expression *)
isc_result_t iasubopt_reference(struct iasubopt **iasubopt, struct iasubopt *src, const char *file, int line)
void remove_all_if_routes(struct interface_info *)
isc_result_t write_client6_lease(struct client_state *client, struct dhc6_lease *lease, int rewrite, int sync)
void dhcp_failover_auto_partner_down(void *vs)
int data_string_terminate(struct data_string *str, const char *file, int line)
int bootp_broadcast_always