#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
+#include <sys/un.h>
#include <arpa/inet.h>
#include <netdb.h>
#else
#include "tree.h"
#include "hash.h"
#include "inet.h"
+#include "systat.h"
struct option_data {
int len;
#define DISCOVER_SERVER 1
#define DISCOVER_UNCONFIGURED 2
#define DISCOVER_RELAY 3
+#define DISCOVER_REQUESTED 4
/* Group of declarations that share common parameters. */
struct group {
struct ifreq *ifp; /* Pointer to ifreq struct. */
u_int32_t flags; /* Control flags... */
#define INTERFACE_REQUESTED 1
+#define INTERFACE_AUTOMATIC 2
/* Only used by DHCP client code. */
struct client_state *client;
void parse_options PROTO ((struct packet *));
void parse_option_buffer PROTO ((struct packet *, unsigned char *, int));
int cons_options PROTO ((struct packet *, struct dhcp_packet *,
- struct tree_cache **, int, int));
+ struct tree_cache **, int, int, int));
int store_options PROTO ((unsigned char *, int, struct tree_cache **,
unsigned char *, int, int, int, int));
char *pretty_print_option PROTO ((unsigned int,
void add_protocol PROTO ((char *, int,
void (*) PROTO ((struct protocol *)), void *));
+void remove_protocol PROTO ((struct protocol *));
+
/* hash.c */
struct hash_table *new_hash PROTO ((void));
void add_hash PROTO ((struct hash_table *, char *, int, unsigned char *));
extern char *path_dhclient_conf;
extern char *path_dhclient_db;
extern char *path_dhclient_pid;
+extern int interfaces_requested;
extern struct client_config top_level_config;
struct client_lease *packet_to_lease PROTO ((struct packet *));
void go_daemon PROTO ((void));
+void write_client_pid_file PROTO ((void));
+void status_message PROTO ((struct systat_header *, void *));
+void client_location_changed PROTO ((void));
/* db.c */
int write_lease PROTO ((struct lease *));
#ifdef NEED_INET_ATON
int inet_aton PROTO ((char *, struct in_addr *));
#endif
+
+/* systat.c */
+void systat_startup PROTO ((void (*) (struct systat_header *, void *)));
+void systat_restart PROTO ((void *));
+void systat_message PROTO ((struct protocol *proto));