4 #define WIN32_NO_STATUS
11 #include <dhcp/rosdhcp_public.h>
15 #define IFNAMSIZ MAX_INTERFACE_NAME_LEN
16 #undef interface /* wine/objbase.h -- Grrr */
21 #define DHCP_DISCOVER_INTERVAL 15
22 #define DHCP_REBOOT_TIMEOUT 300
23 #define DHCP_PANIC_TIMEOUT DHCP_REBOOT_TIMEOUT * 3
24 #define DHCP_BACKOFF_MAX 300
25 #define DHCP_DEFAULT_LEASE_TIME 43200 /* 12 hours */
26 #define _PATH_DHCLIENT_PID "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
27 typedef void *VOIDPTR
;
28 typedef unsigned char u_int8_t
;
29 typedef unsigned short u_int16_t
;
30 typedef unsigned int u_int32_t
;
31 typedef char *caddr_t
;
33 #ifndef _SSIZE_T_DEFINED
34 #define _SSIZE_T_DEFINED
37 #if defined(__GNUC__) && defined(__STRICT_ANSI__)
38 typedef int ssize_t
__attribute__ ((mode (DI
)));
40 typedef __int64 ssize_t
;
47 typedef u_int32_t uintTIME
;
54 typedef void (*handler_t
) PROTO ((struct packet
*));
57 struct interface_info
;
59 typedef struct _DHCP_ADAPTER
{
62 MIB_IPFORWARDROW RouterMib
;
65 ULONG NteContext
,NteInstance
;
66 struct interface_info DhclientInfo
;
67 struct client_state DhclientState
;
68 struct client_config DhclientConfig
;
69 struct sockaddr_in ListenAddr
;
70 unsigned int BindStatus
;
71 unsigned char recv_buf
[1];
72 } DHCP_ADAPTER
, *PDHCP_ADAPTER
;
74 typedef DWORD (*PipeSendFunc
)( COMM_DHCP_REPLY
*Reply
);
79 void AdapterInit(VOID
);
80 BOOLEAN
AdapterDiscover(VOID
);
81 void AdapterStop(VOID
);
82 extern PDHCP_ADAPTER
AdapterGetFirst();
83 extern PDHCP_ADAPTER
AdapterGetNext(PDHCP_ADAPTER
);
84 extern PDHCP_ADAPTER
AdapterFindIndex( unsigned int AdapterIndex
);
85 extern PDHCP_ADAPTER
AdapterFindInfo( struct interface_info
*info
);
86 extern PDHCP_ADAPTER
AdapterFindByHardwareAddress( u_int8_t haddr
[16], u_int8_t hlen
);
87 extern HANDLE
PipeInit();
88 extern VOID
ApiInit();
89 extern VOID
ApiFree();
90 extern VOID
ApiLock();
91 extern VOID
ApiUnlock();
92 extern DWORD
DSQueryHWInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
93 extern DWORD
DSLeaseIpAddress( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
94 extern DWORD
DSRenewIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
95 extern DWORD
DSReleaseIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
96 extern DWORD
DSStaticRefreshParams( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
97 extern DWORD
DSGetAdapterInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
98 extern int inet_aton(const char *s
, struct in_addr
*addr
);
99 int warn( char *format
, ... );