2015-11-29 10:30:52 +01:00
|
|
|
#ifndef INCLUDED_SHARED_GLOBALS_H
|
|
|
|
#define INCLUDED_SHARED_GLOBALS_H
|
|
|
|
|
|
|
|
#ifndef CONFIG
|
|
|
|
#define CONFIG "config.h"
|
|
|
|
#endif // CONFIG
|
|
|
|
#include CONFIG
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
|
|
#ifndef _WIN32
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
#include <pwd.h>
|
|
|
|
#include <grp.h>
|
|
|
|
#include <syslog.h>
|
2016-10-31 13:59:15 +01:00
|
|
|
#if !__minix__
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <pthread.h>
|
2016-10-31 13:59:15 +01:00
|
|
|
#endif // !__minix__
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <fcntl.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#if !defined(NO_LIMIT) && !__minix__
|
|
|
|
#include <semaphore.h>
|
|
|
|
#endif // !defined(NO_LIMIT) && !__minix__
|
|
|
|
#else
|
2016-10-14 07:28:23 +02:00
|
|
|
//#ifndef USE_MSRPC
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <winsock2.h>
|
|
|
|
#include <ws2tcpip.h>
|
2016-10-14 07:28:23 +02:00
|
|
|
//#endif // USE_MSRPC
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <windows.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <signal.h>
|
2016-10-08 07:35:48 +02:00
|
|
|
#if !_MSC_VER
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <unistd.h>
|
2016-10-08 07:35:48 +02:00
|
|
|
#endif
|
2015-11-29 10:30:52 +01:00
|
|
|
#include <time.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <stdarg.h>
|
2016-06-28 07:07:01 +02:00
|
|
|
//#include <semaphore.h>
|
2015-11-29 10:30:52 +01:00
|
|
|
#include "types.h"
|
|
|
|
|
2016-09-04 16:03:54 +02:00
|
|
|
#define MAX_KMSAPPS 4
|
2015-11-29 10:30:52 +01:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
const char* Epid;
|
|
|
|
const BYTE* HwId;
|
|
|
|
#ifndef NO_LOG
|
|
|
|
const char* EpidSource;
|
|
|
|
#endif // NO_LOG
|
|
|
|
} KmsResponseParam_t, *PKmsResponseParam_t;
|
|
|
|
|
2016-10-24 15:32:24 +02:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int8_t HasRpcDiag;
|
|
|
|
int8_t HasBTFN;
|
|
|
|
int8_t HasNDR64;
|
|
|
|
} RpcDiag_t, *PRpcDiag_t;
|
|
|
|
|
2015-11-29 10:30:52 +01:00
|
|
|
#if !defined(NO_LIMIT) && !__minix__
|
|
|
|
#ifndef SEM_VALUE_MAX // Android does not define this
|
|
|
|
#ifdef __ANDROID__
|
|
|
|
#define SEM_VALUE_MAX 0x3fffffff
|
2016-10-14 07:28:23 +02:00
|
|
|
#elif defined(_WIN32)
|
2015-11-29 10:30:52 +01:00
|
|
|
#define SEM_VALUE_MAX 0x7fffffff
|
|
|
|
#else
|
|
|
|
#define SEM_VALUE_MAX 0x7fff // Be cautious if unknown
|
|
|
|
#endif // __ANDROID__
|
|
|
|
#endif // !defined(SEM_VALUE_MAX)
|
|
|
|
#endif // !defined(NO_LIMIT) && !__minix__
|
|
|
|
|
|
|
|
extern const char *const Version;
|
|
|
|
|
|
|
|
//Fix for stupid eclipse parser
|
|
|
|
#ifndef UINT_MAX
|
|
|
|
#define UINT_MAX 4294967295
|
|
|
|
#endif
|
|
|
|
|
2016-08-15 12:35:59 +02:00
|
|
|
#define MESSAGE_BUFFER_SIZE 4096
|
2016-06-06 04:36:00 +02:00
|
|
|
#ifdef IS_LIBRARY
|
2016-08-15 12:35:59 +02:00
|
|
|
extern char ErrorMessage[MESSAGE_BUFFER_SIZE];
|
2016-06-06 04:36:00 +02:00
|
|
|
#endif // IS_LIBRARY
|
2015-11-29 10:30:52 +01:00
|
|
|
|
|
|
|
extern int global_argc, multi_argc;
|
|
|
|
extern CARGV global_argv, multi_argv;
|
2016-06-06 04:36:00 +02:00
|
|
|
#ifndef _WIN32
|
2015-11-29 10:30:52 +01:00
|
|
|
extern int_fast8_t nodaemon;
|
2016-06-06 04:36:00 +02:00
|
|
|
#endif // _WIN32
|
2015-11-29 10:30:52 +01:00
|
|
|
extern DWORD VLActivationInterval;
|
|
|
|
extern DWORD VLRenewalInterval;
|
|
|
|
extern int_fast8_t DisconnectImmediately;
|
|
|
|
extern KmsResponseParam_t KmsResponseParameters[MAX_KMSAPPS];
|
|
|
|
extern const char *const cIPv4;
|
|
|
|
extern const char *const cIPv6;
|
|
|
|
extern int_fast8_t InetdMode;
|
|
|
|
|
2016-10-24 15:32:24 +02:00
|
|
|
#ifndef NO_STRICT_MODES
|
|
|
|
extern uint32_t WhitelistingLevel;
|
|
|
|
extern int_fast8_t CheckClientTime;
|
2016-10-31 13:59:15 +01:00
|
|
|
#ifndef NO_CLIENT_LIST
|
|
|
|
extern int_fast8_t MaintainClients;
|
|
|
|
extern int_fast8_t StartEmpty;
|
|
|
|
#endif // NO_CLIENT_LIST
|
2016-10-24 15:32:24 +02:00
|
|
|
#endif // !NO_STRICT_MODES
|
|
|
|
|
|
|
|
|
2015-11-29 10:30:52 +01:00
|
|
|
#ifndef USE_MSRPC
|
|
|
|
extern int_fast8_t UseMultiplexedRpc;
|
2016-10-24 15:32:24 +02:00
|
|
|
#ifndef SIMPLE_RPC
|
|
|
|
extern int_fast8_t UseServerRpcNDR64;
|
|
|
|
extern int_fast8_t UseServerRpcBTFN;
|
|
|
|
#endif // !SIMPLE_RPC
|
|
|
|
extern int_fast8_t UseClientRpcNDR64;
|
|
|
|
extern int_fast8_t UseClientRpcBTFN;
|
2015-11-29 10:30:52 +01:00
|
|
|
#endif // USE_MSRPC
|
|
|
|
|
|
|
|
#ifndef NO_SOCKETS
|
2016-10-24 15:32:24 +02:00
|
|
|
extern char *defaultport;
|
2015-11-29 10:30:52 +01:00
|
|
|
#endif // NO_SOCKETS
|
|
|
|
|
2016-08-02 16:39:39 +02:00
|
|
|
#if !defined(NO_PRIVATE_IP_DETECT)
|
|
|
|
extern uint32_t PublicIPProtectionLevel;
|
|
|
|
#endif
|
|
|
|
|
2015-11-29 10:30:52 +01:00
|
|
|
#if !defined(NO_SOCKETS) && !defined(NO_SIGHUP) && !defined(_WIN32)
|
|
|
|
extern int_fast8_t IsRestarted;
|
|
|
|
#endif // !defined(NO_SOCKETS) && !defined(NO_SIGHUP) && !defined(_WIN32)
|
|
|
|
|
|
|
|
#if !defined(NO_TIMEOUT) && !__minix__
|
|
|
|
extern DWORD ServerTimeout;
|
|
|
|
#endif // !defined(NO_TIMEOUT) && !__minix__
|
|
|
|
|
|
|
|
#if !defined(NO_LIMIT) && !defined (NO_SOCKETS) && !__minix__
|
|
|
|
extern uint32_t MaxTasks;
|
|
|
|
#endif // !defined(NO_LIMIT) && !defined (NO_SOCKETS) && !__minix__
|
|
|
|
|
|
|
|
#ifndef NO_LOG
|
2016-08-02 16:39:39 +02:00
|
|
|
extern int_fast8_t LogDateAndTime;
|
2015-11-29 10:30:52 +01:00
|
|
|
extern char *fn_log;
|
|
|
|
extern int_fast8_t logstdout;
|
|
|
|
#ifndef NO_VERBOSE_LOG
|
|
|
|
extern int_fast8_t logverbose;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef NO_RANDOM_EPID
|
|
|
|
extern int_fast8_t RandomizationLevel;
|
|
|
|
extern uint16_t Lcid;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
2016-06-06 04:36:00 +02:00
|
|
|
#if defined(SIMPLE_SOCKETS)
|
|
|
|
extern SOCKET s_server;
|
|
|
|
#else // !defined(SIMPLE_SOCKETS)
|
2015-11-29 10:30:52 +01:00
|
|
|
extern SOCKET *SocketList;
|
|
|
|
extern int numsockets;
|
2016-06-06 04:36:00 +02:00
|
|
|
#endif // !defined(SIMPLE_SOCKETS)
|
2015-11-29 10:30:52 +01:00
|
|
|
|
|
|
|
#if !defined(NO_LIMIT) && !__minix__
|
|
|
|
|
|
|
|
#ifndef _WIN32
|
2016-10-31 13:59:15 +01:00
|
|
|
extern sem_t *MaxTaskSemaphore;
|
2015-11-29 10:30:52 +01:00
|
|
|
#else // _WIN32
|
2016-10-31 13:59:15 +01:00
|
|
|
extern HANDLE MaxTaskSemaphore;
|
2015-11-29 10:30:52 +01:00
|
|
|
#endif // _WIN32
|
|
|
|
|
|
|
|
#endif // !defined(NO_LIMIT) && !__minix__
|
|
|
|
|
|
|
|
#endif // !defined(NO_SOCKETS) && !defined(USE_MSRPC)
|
|
|
|
|
|
|
|
#ifdef _NTSERVICE
|
|
|
|
extern int_fast8_t IsNTService;
|
|
|
|
extern int_fast8_t ServiceShutdown;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef NO_LOG
|
|
|
|
#ifdef USE_THREADS
|
|
|
|
#if !defined(_WIN32) && !defined(__CYGWIN__)
|
|
|
|
extern pthread_mutex_t logmutex;
|
|
|
|
#else
|
|
|
|
extern CRITICAL_SECTION logmutex;
|
|
|
|
#endif // _WIN32
|
|
|
|
#endif // USE_THREADS
|
|
|
|
#endif // NO_LOG
|
|
|
|
|
2016-06-06 04:36:00 +02:00
|
|
|
#if HAVE_FREEBIND
|
|
|
|
extern int_fast8_t freebind;
|
|
|
|
#endif // HAVE_FREEBIND
|
|
|
|
|
2015-11-29 10:30:52 +01:00
|
|
|
|
|
|
|
#endif // INCLUDED_SHARED_GLOBALS_H
|