TIME tstp; /* Time sent to partner. */
TIME tsfp; /* Time sent from partner. */
TIME cltt; /* Client last transaction time. */
+ struct lease *next_pending;
};
struct lease_state {
#define SV_DUPLICATES 28
#define SV_DECLINES 29
#define SV_DDNS_UPDATES 30
+#define SV_OMAPI_PORT 31
+#define SV_LOCAL_PORT 32
+#define SV_LIMITED_BROADCAST_ADDRESS 33
+#define SV_REMOTE_PORT 34
+#define SV_LOCAL_ADDRESS 35
#if !defined (DEFAULT_DEFAULT_LEASE_TIME)
# define DEFAULT_DEFAULT_LEASE_TIME 43200
/* dhcpd.c */
extern TIME cur_time;
extern struct group root_group;
-extern struct in_addr limited_broadcast;
-
-extern u_int16_t local_port;
-extern u_int16_t remote_port;
extern const char *path_dhcpd_conf;
extern const char *path_dhcpd_db;
*dummy_interfaces, *fallback_interface;
extern struct protocol *protocols;
extern int quiet_interface_discovery;
+
+extern struct in_addr limited_broadcast;
+extern struct in_addr local_address;
+
+extern u_int16_t local_port;
+extern u_int16_t remote_port;
+
extern void (*bootp_packet_handler) PROTO ((struct interface_info *,
struct dhcp_packet *, unsigned,
unsigned int,
/* dns.c */
#if defined (NSUPDATE)
-isc_result_t find_tsig_key (ns_tsig_key **, const char *);
+isc_result_t find_tsig_key (ns_tsig_key **, const char *, struct dns_zone *);
void tkey_free (ns_tsig_key **);
#endif
isc_result_t enter_dns_zone (struct dns_zone *);
isc_result_t tsig_key_lookup (struct tsig_key **, const char *);
int dns_zone_dereference PROTO ((struct dns_zone **, const char *, int));
#if defined (NSUPDATE)
-int find_cached_zone (const char *, ns_class,
- char *, size_t, struct in_addr *, int);
+int find_cached_zone (const char *, ns_class, char *,
+ size_t, struct in_addr *, int, struct dns_zone **);
+void forget_zone (struct dns_zone **);
+void repudiate_zone (struct dns_zone **);
#endif /* NSUPDATE */
/* resolv.c */
/* failover.c */
#if defined (FAILOVER_PROTOCOL)
-void enter_failover_peer PROTO ((dhcp_failover_state_t *));
-isc_result_t find_failover_peer PROTO ((dhcp_failover_state_t **, char *));
+void dhcp_failover_startup PROTO ((void));
+isc_result_t enter_failover_peer PROTO ((dhcp_failover_state_t *));
+isc_result_t find_failover_peer PROTO ((dhcp_failover_state_t **,
+ const char *));
isc_result_t dhcp_failover_link_initiate PROTO ((omapi_object_t *));
isc_result_t dhcp_failover_link_signal PROTO ((omapi_object_t *,
const char *, va_list));
isc_result_t dhcp_failover_register PROTO ((omapi_object_t *));
isc_result_t dhcp_failover_state_signal PROTO ((omapi_object_t *,
const char *, va_list));
+isc_result_t dhcp_failover_state_transition (dhcp_failover_state_t *,
+ const char *);
+isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *,
+ enum failover_state);
isc_result_t dhcp_failover_state_set_value PROTO ((omapi_object_t *,
omapi_object_t *,
omapi_data_string_t *,
omapi_typed_data_t *));
+void dhcp_failover_keepalive (void *);
isc_result_t dhcp_failover_state_get_value PROTO ((omapi_object_t *,
omapi_object_t *,
omapi_data_string_t *,
isc_result_t dhcp_failover_update_peer (struct lease *, int);
void failover_print PROTO ((char *, unsigned *, unsigned, const char *));
void update_partner PROTO ((struct lease *));
+int load_balance_mine (struct packet *, dhcp_failover_state_t *);
#endif /* FAILOVER_PROTOCOL */
/* client/omapi.c */