ReactOS 0.4.16-dev-1041-g8b6907f
rosdhcp.h File Reference
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <ndk/rtlfuncs.h>
#include <dhcpcsdk.h>
#include <rosdhcp_pipe.h>
#include "debug.h"
#include "dhcpd.h"
Include dependency graph for rosdhcp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _DHCP_ADAPTER
 

Macros

#define WIN32_NO_STATUS
 
#define _INC_WINDOWS
 
#define COM_NO_WINDOWS_H
 
#define NTOS_MODE_USER
 
#define IFNAMSIZ   MAX_INTERFACE_NAME_LEN
 
#define DHCP_DISCOVER_INTERVAL   5
 
#define DHCP_REBOOT_TIMEOUT   10
 
#define DHCP_PANIC_TIMEOUT   20
 
#define DHCP_BACKOFF_MAX   300
 
#define DHCP_DEFAULT_LEASE_TIME   43200 /* 12 hours */
 
#define _PATH_DHCLIENT_PID   "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
 
#define _SSIZE_T_DEFINED
 
#define TIME   uintTIME
 
#define INLINE   inline
 
#define PROTO(x)   x
 
#define random   rand
 
#define srandom   srand
 

Typedefs

typedef voidVOIDPTR
 
typedef unsigned char u_int8_t
 
typedef unsigned short u_int16_t
 
typedef unsigned int u_int32_t
 
typedef charcaddr_t
 
typedef int ssize_t
 
typedef u_int32_t uintTIME
 
typedef void handler_t PROTO((struct packet *))
 
typedef struct _DHCP_ADAPTER DHCP_ADAPTER
 
typedef struct _DHCP_ADAPTERPDHCP_ADAPTER
 
typedef DWORD(* PipeSendFunc) (HANDLE CommPipe, COMM_DHCP_REPLY *Reply)
 

Functions

int init_client (void)
 
void stop_client (void)
 
void AdapterInit (VOID)
 
HANDLE StartAdapterDiscovery (HANDLE hStopEvent)
 
void AdapterStop (VOID)
 
PDHCP_ADAPTER AdapterGetFirst (VOID)
 
PDHCP_ADAPTER AdapterGetNext (PDHCP_ADAPTER)
 
PDHCP_ADAPTER AdapterFindIndex (unsigned int AdapterIndex)
 
PDHCP_ADAPTER AdapterFindName (const CHAR *name)
 
PDHCP_ADAPTER AdapterFindInfo (struct interface_info *info)
 
PDHCP_ADAPTER AdapterFindByHardwareAddress (u_int8_t haddr[16], u_int8_t hlen)
 
HANDLE PipeInit (HANDLE hStopEvent)
 
VOID ApiInit (VOID)
 
VOID ApiFree (VOID)
 
VOID ApiLock (VOID)
 
VOID ApiUnlock (VOID)
 
DWORD DSAcquireParams (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSReleaseParams (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSQueryHWInfo (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSLeaseIpAddress (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSRenewIpAddressLease (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSReleaseIpAddressLease (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSStaticRefreshParams (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
DWORD DSGetAdapterInfo (PipeSendFunc Send, HANDLE CommPipe, COMM_DHCP_REQ *Req)
 
int inet_aton (const char *s, struct in_addr *addr)
 
int warn (char *format,...)
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 7 of file rosdhcp.h.

◆ _PATH_DHCLIENT_PID

#define _PATH_DHCLIENT_PID   "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"

Definition at line 31 of file rosdhcp.h.

◆ _SSIZE_T_DEFINED

#define _SSIZE_T_DEFINED

Definition at line 39 of file rosdhcp.h.

◆ COM_NO_WINDOWS_H

#define COM_NO_WINDOWS_H

Definition at line 8 of file rosdhcp.h.

◆ DHCP_BACKOFF_MAX

#define DHCP_BACKOFF_MAX   300

Definition at line 29 of file rosdhcp.h.

◆ DHCP_DEFAULT_LEASE_TIME

#define DHCP_DEFAULT_LEASE_TIME   43200 /* 12 hours */

Definition at line 30 of file rosdhcp.h.

◆ DHCP_DISCOVER_INTERVAL

#define DHCP_DISCOVER_INTERVAL   5

Definition at line 26 of file rosdhcp.h.

◆ DHCP_PANIC_TIMEOUT

#define DHCP_PANIC_TIMEOUT   20

Definition at line 28 of file rosdhcp.h.

◆ DHCP_REBOOT_TIMEOUT

#define DHCP_REBOOT_TIMEOUT   10

Definition at line 27 of file rosdhcp.h.

◆ IFNAMSIZ

Definition at line 20 of file rosdhcp.h.

◆ INLINE

#define INLINE   inline

Definition at line 56 of file rosdhcp.h.

◆ NTOS_MODE_USER

#define NTOS_MODE_USER

Definition at line 13 of file rosdhcp.h.

◆ PROTO

#define PROTO (   x)    x

Definition at line 57 of file rosdhcp.h.

◆ random

#define random   rand

Definition at line 81 of file rosdhcp.h.

◆ srandom

#define srandom   srand

Definition at line 82 of file rosdhcp.h.

◆ TIME

Definition at line 53 of file rosdhcp.h.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 6 of file rosdhcp.h.

Typedef Documentation

◆ caddr_t

typedef char* caddr_t

Definition at line 36 of file rosdhcp.h.

◆ DHCP_ADAPTER

◆ PDHCP_ADAPTER

◆ PipeSendFunc

typedef DWORD(* PipeSendFunc) (HANDLE CommPipe, COMM_DHCP_REPLY *Reply)

Definition at line 79 of file rosdhcp.h.

◆ PROTO

typedef void handler_t PROTO((struct packet *))

Definition at line 59 of file rosdhcp.h.

◆ ssize_t

typedef int ssize_t

Definition at line 48 of file rosdhcp.h.

◆ u_int16_t

Definition at line 34 of file rosdhcp.h.

◆ u_int32_t

Definition at line 35 of file rosdhcp.h.

◆ u_int8_t

Definition at line 33 of file rosdhcp.h.

◆ uintTIME

Definition at line 52 of file rosdhcp.h.

◆ VOIDPTR

typedef void* VOIDPTR

Definition at line 32 of file rosdhcp.h.

Function Documentation

◆ AdapterFindByHardwareAddress()

PDHCP_ADAPTER AdapterFindByHardwareAddress ( u_int8_t  haddr[16],
u_int8_t  hlen 
)

Definition at line 540 of file adapter.c.

540 {
541 PDHCP_ADAPTER Adapter;
542 PLIST_ENTRY ListEntry;
543
544 for(ListEntry = AdapterList.Flink;
545 ListEntry != &AdapterList;
546 ListEntry = ListEntry->Flink) {
547 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
548 if (Adapter->DhclientInfo.hw_address.hlen == hlen &&
549 !memcmp(Adapter->DhclientInfo.hw_address.haddr,
550 haddr,
551 hlen)) return Adapter;
552 }
553
554 return NULL;
555}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
static LIST_ENTRY AdapterList
Definition: adapter.c:9
#define NULL
Definition: types.h:112
struct interface_info DhclientInfo
Definition: rosdhcp.h:71
Definition: typedefs.h:120
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by AdapterDiscoveryThread(), and got_one().

◆ AdapterFindIndex()

PDHCP_ADAPTER AdapterFindIndex ( unsigned int  AdapterIndex)

Definition at line 498 of file adapter.c.

498 {
499 PDHCP_ADAPTER Adapter;
500 PLIST_ENTRY ListEntry;
501
502 for( ListEntry = AdapterList.Flink;
503 ListEntry != &AdapterList;
504 ListEntry = ListEntry->Flink ) {
505 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
506 if( Adapter->IfMib.dwIndex == indx ) return Adapter;
507 }
508
509 return NULL;
510}
MIB_IFROW IfMib
Definition: rosdhcp.h:66
DWORD dwIndex
Definition: ifmib.h:38

Referenced by DSLeaseIpAddress(), DSQueryHWInfo(), DSReleaseIpAddressLease(), DSRenewIpAddressLease(), and DSStaticRefreshParams().

◆ AdapterFindInfo()

PDHCP_ADAPTER AdapterFindInfo ( struct interface_info info)

Definition at line 526 of file adapter.c.

526 {
527 PDHCP_ADAPTER Adapter;
528 PLIST_ENTRY ListEntry;
529
530 for( ListEntry = AdapterList.Flink;
531 ListEntry != &AdapterList;
532 ListEntry = ListEntry->Flink ) {
533 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
534 if( ip == &Adapter->DhclientInfo ) return Adapter;
535 }
536
537 return NULL;
538}
Definition: dhcpd.h:62

Referenced by bind_lease(), got_one(), send_request(), and state_panic().

◆ AdapterFindName()

PDHCP_ADAPTER AdapterFindName ( const CHAR name)

Definition at line 512 of file adapter.c.

512 {
513 PDHCP_ADAPTER Adapter;
514 PLIST_ENTRY ListEntry;
515
516 for( ListEntry = AdapterList.Flink;
517 ListEntry != &AdapterList;
518 ListEntry = ListEntry->Flink ) {
519 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
520 if( !stricmp((const CHAR*)Adapter->IfMib.bDescr, name ) ) return Adapter;
521 }
522
523 return NULL;
524}
#define stricmp(_String1, _String2)
Definition: compat.h:24
BYTE bDescr[MAXLEN_IFDESCR]
Definition: ifmib.h:60
Definition: name.c:39
char CHAR
Definition: xmlstorage.h:175

Referenced by DSAcquireParams(), and DSReleaseParams().

◆ AdapterGetFirst()

PDHCP_ADAPTER AdapterGetFirst ( VOID  )

◆ AdapterGetNext()

PDHCP_ADAPTER AdapterGetNext ( PDHCP_ADAPTER  This)

Definition at line 564 of file adapter.c.

565{
566 if( This->ListEntry.Flink == &AdapterList ) return NULL;
567 return CONTAINING_RECORD
568 ( This->ListEntry.Flink, DHCP_ADAPTER, ListEntry );
569}

◆ AdapterInit()

void AdapterInit ( VOID  )

◆ AdapterStop()

void AdapterStop ( VOID  )

◆ ApiFree()

VOID ApiFree ( VOID  )

◆ ApiInit()

VOID ApiInit ( VOID  )

◆ ApiLock()

VOID ApiLock ( VOID  )

◆ ApiUnlock()

VOID ApiUnlock ( VOID  )

◆ DSAcquireParams()

DWORD DSAcquireParams ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

◆ DSGetAdapterInfo()

DWORD DSGetAdapterInfo ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

◆ DSLeaseIpAddress()

DWORD DSLeaseIpAddress ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

Definition at line 131 of file api.c.

131 {
132 COMM_DHCP_REPLY Reply;
133 PDHCP_ADAPTER Adapter;
134 struct protocol* proto;
135
136 ApiLock();
137
138 Adapter = AdapterFindIndex( Req->AdapterIndex );
139
140 Reply.Reply = Adapter ? 1 : 0;
141
142 if( Adapter ) {
144 if (proto)
146
147 add_protocol( Adapter->DhclientInfo.name,
148 Adapter->DhclientInfo.rfdesc, got_one,
149 &Adapter->DhclientInfo );
150
151 Adapter->DhclientInfo.client->state = S_INIT;
152 state_reboot(&Adapter->DhclientInfo);
153
156 }
157
158 ApiUnlock();
159
160 return Send(CommPipe, &Reply );
161}
PDHCP_ADAPTER AdapterFindIndex(unsigned int indx)
Definition: adapter.c:498
HANDLE hAdapterStateChangedEvent
Definition: dhcpcsvc.c:20
VOID ApiLock()
Definition: api.c:22
VOID ApiUnlock()
Definition: api.c:26
void add_protocol(char *name, int fd, void(*handler)(struct protocol *), void *local)
Definition: dispatch.c:342
void remove_protocol(struct protocol *proto)
Definition: dispatch.c:359
void got_one(struct protocol *l)
Definition: dispatch.c:194
struct protocol * find_protocol_by_adapter(struct interface_info *info)
Definition: dispatch.c:412
void state_reboot(void *ipp)
Definition: dhclient.c:172
@ S_INIT
Definition: dhcpd.h:172
DWORD AdapterIndex
Definition: rosdhcp_pipe.h:16
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733

Referenced by PipeThreadProc().

◆ DSQueryHWInfo()

DWORD DSQueryHWInfo ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

Definition at line 163 of file api.c.

163 {
164 COMM_DHCP_REPLY Reply;
165 PDHCP_ADAPTER Adapter;
166
167 ApiLock();
168
169 Adapter = AdapterFindIndex( Req->AdapterIndex );
170
171 Reply.Reply = Adapter ? 1 : 0;
172
173 if (Adapter) {
174 Reply.QueryHWInfo.AdapterIndex = Req->AdapterIndex;
175 Reply.QueryHWInfo.MediaType = Adapter->IfMib.dwType;
176 Reply.QueryHWInfo.Mtu = Adapter->IfMib.dwMtu;
177 Reply.QueryHWInfo.Speed = Adapter->IfMib.dwSpeed;
178 }
179
180 ApiUnlock();
181
182 return Send(CommPipe, &Reply );
183}
DWORD dwSpeed
Definition: ifmib.h:41
DWORD dwMtu
Definition: ifmib.h:40
DWORD dwType
Definition: ifmib.h:39
struct _COMM_DHCP_REPLY::@38 QueryHWInfo

Referenced by PipeThreadProc().

◆ DSReleaseIpAddressLease()

DWORD DSReleaseIpAddressLease ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

Definition at line 185 of file api.c.

185 {
186 COMM_DHCP_REPLY Reply;
187 PDHCP_ADAPTER Adapter;
188 struct protocol* proto;
189
190 ApiLock();
191
192 Adapter = AdapterFindIndex( Req->AdapterIndex );
193
194 Reply.Reply = Adapter ? 1 : 0;
195
196 if( Adapter ) {
197 if (Adapter->NteContext)
198 {
199 DeleteIPAddress( Adapter->NteContext );
200 Adapter->NteContext = 0;
201 }
202 if (Adapter->RouterMib.dwForwardNextHop)
203 {
204 DeleteIpForwardEntry( &Adapter->RouterMib );
205 Adapter->RouterMib.dwForwardNextHop = 0;
206 }
207
209 if (proto)
211
212 Adapter->DhclientInfo.client->active = NULL;
213 Adapter->DhclientInfo.client->state = S_INIT;
214
217 }
218
219 ApiUnlock();
220
221 return Send(CommPipe, &Reply );
222}
DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute)
DWORD WINAPI DeleteIPAddress(ULONG NTEContext)
ULONG NteContext
Definition: rosdhcp.h:70
MIB_IPFORWARDROW RouterMib
Definition: rosdhcp.h:67
DWORD dwForwardNextHop
Definition: ipmib.h:74

Referenced by PipeThreadProc().

◆ DSReleaseParams()

DWORD DSReleaseParams ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

◆ DSRenewIpAddressLease()

DWORD DSRenewIpAddressLease ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

Definition at line 224 of file api.c.

224 {
225 COMM_DHCP_REPLY Reply;
226 PDHCP_ADAPTER Adapter;
227 struct protocol* proto;
228
229 ApiLock();
230
231 Adapter = AdapterFindIndex( Req->AdapterIndex );
232
233 if( !Adapter || Adapter->DhclientState.state == S_STATIC ) {
234 Reply.Reply = 0;
235 ApiUnlock();
236 return Send(CommPipe, &Reply );
237 }
238
239 Reply.Reply = 1;
240
242 if (proto)
244
245 add_protocol( Adapter->DhclientInfo.name,
246 Adapter->DhclientInfo.rfdesc, got_one,
247 &Adapter->DhclientInfo );
248
249 Adapter->DhclientInfo.client->state = S_INIT;
250 state_reboot(&Adapter->DhclientInfo);
251
254
255 ApiUnlock();
256
257 return Send(CommPipe, &Reply );
258}
@ S_STATIC
Definition: dhcpd.h:178
struct client_state DhclientState
Definition: rosdhcp.h:72

Referenced by PipeThreadProc().

◆ DSStaticRefreshParams()

DWORD DSStaticRefreshParams ( PipeSendFunc  Send,
HANDLE  CommPipe,
COMM_DHCP_REQ Req 
)

Definition at line 260 of file api.c.

260 {
262 COMM_DHCP_REPLY Reply;
263 PDHCP_ADAPTER Adapter;
264 struct protocol* proto;
265
266 ApiLock();
267
268 Adapter = AdapterFindIndex( Req->AdapterIndex );
269
270 Reply.Reply = Adapter ? 1 : 0;
271
272 if( Adapter ) {
273 if (Adapter->NteContext)
274 {
275 DeleteIPAddress( Adapter->NteContext );
276 Adapter->NteContext = 0;
277 }
278 if (Adapter->RouterMib.dwForwardNextHop)
279 {
280 DeleteIpForwardEntry( &Adapter->RouterMib );
281 Adapter->RouterMib.dwForwardNextHop = 0;
282 }
283
284 Adapter->DhclientState.state = S_STATIC;
286 if (proto)
289 Req->Body.StaticRefreshParams.Netmask,
290 Req->AdapterIndex,
291 &Adapter->NteContext,
292 &Adapter->NteInstance );
293 Reply.Reply = NT_SUCCESS(Status);
294
297 }
298
299 ApiUnlock();
300
301 return Send(CommPipe, &Reply );
302}
LONG NTSTATUS
Definition: precomp.h:26
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
Status
Definition: gdiplustypes.h:25
DWORD WINAPI AddIPAddress(IPAddr Address, IPMask Netmask, DWORD IfIndex, PULONG NteContext, PULONG NteInstance)
Definition: iphlpapi_main.c:67
union _COMM_DHCP_REQ::@32 Body
struct _COMM_DHCP_REQ::@32::@37 StaticRefreshParams
ULONG NteInstance
Definition: rosdhcp.h:70

Referenced by PipeThreadProc().

◆ inet_aton()

int inet_aton ( const char s,
struct in_addr addr 
)

Definition at line 32 of file compat.c.

34{
35 ULONG Octets[4] = {0,0,0,0};
36 ULONG i = 0;
37
38 if(!cp)
39 return 0;
40
41 while(*cp)
42 {
43 CHAR c = *cp;
44 cp++;
45
46 if(c == '.')
47 {
48 i++;
49 continue;
50 }
51
52 if(c < '0' || c > '9')
53 return 0;
54
55 Octets[i] *= 10;
56 Octets[i] += (c - '0');
57
58 if(Octets[i] > 255)
59 return 0;
60 }
61
62 inp->S_un.S_addr = (Octets[3] << 24) + (Octets[2] << 16) + (Octets[1] << 8) + Octets[0];
63 return 1;
64}
const GLubyte * c
Definition: glext.h:8905
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
POINT cp
Definition: magnifier.c:59
uint32_t ULONG
Definition: typedefs.h:59

◆ init_client()

int init_client ( void  )

Definition at line 111 of file dhclient.c.

112{
113 ApiInit();
114 AdapterInit();
115
116 tzset();
117
119 sockaddr_broadcast.sin_family = AF_INET;
121 sockaddr_broadcast.sin_addr.s_addr = INADDR_BROADCAST;
122 inaddr_any.s_addr = INADDR_ANY;
124
125 return 1; // TRUE
126}
void AdapterInit()
Definition: adapter.c:192
VOID ApiInit()
Definition: api.c:18
void(* bootp_packet_handler)(struct interface_info *, struct dhcp_packet *, int, unsigned int, struct iaddr, struct hardware *)
Definition: dispatch.c:59
void do_packet(struct interface_info *interface, struct dhcp_packet *packet, int len, unsigned int from_port, struct iaddr from, struct hardware *hfrom)
Definition: options.c:635
struct in_addr inaddr_any
Definition: dhclient.c:81
struct sockaddr_in sockaddr_broadcast
Definition: dhclient.c:82
#define REMOTE_PORT
Definition: dhcpd.h:113
#define AF_INET
Definition: tcpip.h:117
#define INADDR_BROADCAST
Definition: inet.h:82
#define INADDR_ANY
Definition: inet.h:80
#define htons(x)
Definition: module.h:215
_CRTIMP void __cdecl tzset(void)
#define memset(x, y, z)
Definition: compat.h:39

Referenced by ServiceMain().

◆ PipeInit()

HANDLE PipeInit ( HANDLE  hStopEvent)

Definition at line 428 of file pipe.c.

429{
431}
DWORD WINAPI PipeThreadProc(LPVOID Parameter)
Definition: pipe.c:276
HANDLE hStopEvent
Definition: dhcpcsvc.c:19
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137

Referenced by ServiceMain().

◆ StartAdapterDiscovery()

HANDLE StartAdapterDiscovery ( HANDLE  hStopEvent)

Definition at line 481 of file adapter.c.

481 {
483}
DWORD WINAPI AdapterDiscoveryThread(LPVOID Context)
Definition: adapter.c:291

Referenced by ServiceMain().

◆ stop_client()

void stop_client ( void  )

Definition at line 129 of file dhclient.c.

130{
131 // AdapterStop();
132 // ApiFree();
133 /* FIXME: Close pipe and kill pipe thread */
134}

Referenced by ServiceMain().

◆ warn()

int warn ( char format,
  ... 
)

Definition at line 42 of file util.c.

42 {
43 char buf[0x100];
44 int ret;
45 va_list arg_begin;
46 va_start( arg_begin, format );
47
48 ret = _vsnprintf( buf, sizeof(buf), format, arg_begin );
49
50 va_end( arg_begin );
51
52 DPRINT("WARN: %s\n", buf);
53
54 return ret;
55}
char * va_list
Definition: acmsvcex.h:78
#define va_end(ap)
Definition: acmsvcex.h:90
#define va_start(ap, A)
Definition: acmsvcex.h:91
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define DPRINT
Definition: sndvol32.h:73
Definition: format.c:58
int ret
#define _vsnprintf
Definition: xmlstorage.h:202