4 #define WIN32_NO_STATUS
16 #include <dhcp/rosdhcp_public.h>
18 #define IFNAMSIZ MAX_INTERFACE_NAME_LEN
19 #undef interface /* wine/objbase.h -- Grrr */
24 #define DHCP_DISCOVER_INTERVAL 15
25 #define DHCP_REBOOT_TIMEOUT 300
26 #define DHCP_PANIC_TIMEOUT DHCP_REBOOT_TIMEOUT * 3
27 #define DHCP_BACKOFF_MAX 300
28 #define _PATH_DHCLIENT_PID "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
29 #define RRF_RT_REG_SZ 2
30 typedef void *VOIDPTR
;
32 typedef u_int32_t uintTIME
;
39 typedef void (*handler_t
) PROTO ((struct packet
*));
41 typedef struct _DHCP_ADAPTER
{
46 ULONG NteContext
,NteInstance
;
47 struct interface_info DhclientInfo
;
48 struct client_state DhclientState
;
49 struct client_config DhclientConfig
;
50 struct sockaddr_in ListenAddr
;
51 unsigned int BindStatus
;
52 unsigned char recv_buf
[1];
53 } DHCP_ADAPTER
, *PDHCP_ADAPTER
;
55 typedef DWORD (*PipeSendFunc
)( COMM_DHCP_REPLY
*Reply
);
60 void AdapterInit(VOID
);
61 HANDLE
PipeInit(VOID
);
62 extern PDHCP_ADAPTER
AdapterFindIndex( unsigned int AdapterIndex
);
63 extern PDHCP_ADAPTER
AdapterFindInfo( struct interface_info
*info
);
64 extern VOID
ApiInit();
65 extern VOID
ApiLock();
66 extern VOID
ApiUnlock();
67 extern DWORD
DSQueryHWInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
68 extern DWORD
DSLeaseIpAddress( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
69 extern DWORD
DSRenewIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
70 extern DWORD
DSReleaseIpAddressLease( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
71 extern DWORD
DSStaticRefreshParams( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
72 extern DWORD
DSGetAdapterInfo( PipeSendFunc Send
, COMM_DHCP_REQ
*Req
);
73 extern int inet_aton(const char *s
, struct in_addr
*addr
);
74 int warn( char *format
, ... );