148 lines
3.1 KiB
C
148 lines
3.1 KiB
C
#pragma once
|
|
|
|
//
|
|
// init.c will #include this file with GLOBAL_DATA_ALLOCATE defined.
|
|
// That will cause each of these variables to be allocated.
|
|
//
|
|
|
|
#ifdef GLOBAL_DATA_ALLOCATE
|
|
#define GLOBAL
|
|
#else
|
|
#define GLOBAL extern
|
|
#endif
|
|
|
|
//
|
|
// DHCP Global data.
|
|
//
|
|
|
|
extern BOOL DhcpGlobalServiceRunning; // initialized global.
|
|
|
|
GLOBAL LONG DhcpGlobalNdisWanAdaptersCount; // global count of Wan adaptersx
|
|
GLOBAL LPSTR DhcpGlobalHostName;
|
|
GLOBAL LPWSTR DhcpGlobalHostNameW;
|
|
GLOBAL LPSTR DhcpGlobalHostComment;
|
|
|
|
//
|
|
// NIC List.
|
|
//
|
|
|
|
GLOBAL LIST_ENTRY DhcpGlobalNICList;
|
|
GLOBAL LIST_ENTRY DhcpGlobalRenewList;
|
|
|
|
//
|
|
// Synchronization variables.
|
|
//
|
|
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalRenewListCritSect;
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalSetInterfaceCritSect;
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalOptionsListCritSect;
|
|
GLOBAL HANDLE DhcpGlobalRecomputeTimerEvent;
|
|
|
|
// waitable timer
|
|
GLOBAL HANDLE DhcpGlobalWaitableTimerHandle;
|
|
|
|
//
|
|
// to display success message.
|
|
//
|
|
|
|
GLOBAL BOOL DhcpGlobalProtocolFailed;
|
|
|
|
//
|
|
// This varible tells if we are going to provide the DynDns api support to external clients
|
|
// and if we are going to use the corresponding DnsApi. The define below gives the default
|
|
// value.
|
|
//
|
|
|
|
GLOBAL DWORD UseMHAsyncDns;
|
|
#define DEFAULT_USEMHASYNCDNS 1
|
|
|
|
//
|
|
// This flag tells if we need to use inform or request packets
|
|
//
|
|
GLOBAL DWORD DhcpGlobalUseInformFlag;
|
|
|
|
#ifdef BOOTPERF
|
|
//
|
|
// This flag controls if pinging is disabled on the whole or not.
|
|
//
|
|
GLOBAL DWORD DhcpGlobalQuickBootEnabledFlag;
|
|
#endif
|
|
|
|
//
|
|
// This flag tells if pinging the g/w is disabled. (in this case the g/w is always NOT present)
|
|
//
|
|
GLOBAL DWORD DhcpGlobalDontPingGatewayFlag;
|
|
|
|
//
|
|
// The # of seconds before retrying according to AUTONET... default is EASYNET_ALLOCATION_RETRY
|
|
//
|
|
|
|
GLOBAL DWORD AutonetRetriesSeconds;
|
|
#define RAND_RETRY_DELAY_INTERVAL 30 // randomize +/- 30 SECONDS
|
|
#define RAND_RETRY_DELAY ((DWORD)(RAND_RETRY_DELAY_INTERVAL - ((rand()*2*RAND_RETRY_DELAY_INTERVAL)/RAND_MAX)))
|
|
|
|
//
|
|
// Not used on NT. Just here for memphis.
|
|
//
|
|
|
|
GLOBAL DWORD DhcpGlobalMachineType;
|
|
|
|
//
|
|
// Do we need to do a global refresh?
|
|
//
|
|
|
|
GLOBAL ULONG DhcpGlobalDoRefresh;
|
|
|
|
//
|
|
// (global check) autonet is enabled ?
|
|
//
|
|
GLOBAL ULONG DhcpGlobalAutonetEnabled;
|
|
|
|
//
|
|
// options related lists
|
|
//
|
|
|
|
GLOBAL LIST_ENTRY DhcpGlobalClassesList;
|
|
GLOBAL LIST_ENTRY DhcpGlobalOptionDefList;
|
|
|
|
|
|
//
|
|
// dhcpmsg.c.. list for doing parallel recv on..
|
|
//
|
|
|
|
GLOBAL LIST_ENTRY DhcpGlobalRecvFromList;
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalRecvFromCritSect;
|
|
|
|
//
|
|
// need to for entering exiting external APIs..
|
|
//
|
|
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalApiCritSect;
|
|
|
|
//
|
|
// the client vendor name ( "MSFT 5.0" or something like that )
|
|
//
|
|
|
|
GLOBAL LPSTR DhcpGlobalClientClassInfo;
|
|
|
|
//
|
|
// The following global keys are used to avoid re-opening each time
|
|
//
|
|
GLOBAL DHCPKEY DhcpGlobalParametersKey;
|
|
GLOBAL DHCPKEY DhcpGlobalTcpipParametersKey;
|
|
GLOBAL DHCPKEY DhcpGlobalClientOptionKey;
|
|
GLOBAL DHCPKEY DhcpGlobalServicesKey;
|
|
|
|
//
|
|
// debug variables.
|
|
//
|
|
|
|
#if DBG
|
|
GLOBAL DWORD DhcpGlobalDebugFlag;
|
|
GLOBAL HANDLE DhcpGlobalDebugFile;
|
|
GLOBAL CRITICAL_SECTION DhcpGlobalDebugFileCritSect;
|
|
#endif
|
|
|
|
GLOBAL DWORD DhcpGlobalClientPort, DhcpGlobalServerPort;
|
|
|