* Sync up to trunk head (r65147).
[reactos.git] / base / services / tcpsvcs / tcpsvcs.h
1 #ifndef _TCPSVCS_H
2 #define _TCPSVCS_H
3
4 #include <stdarg.h>
5
6 #define WIN32_NO_STATUS
7 #include <windef.h>
8 #include <winbase.h>
9 #define _INC_WINDOWS
10 #include <winsock2.h>
11 #include <tchar.h>
12
13 #define LOG_FILE 1
14 #define LOG_EVENTLOG 2
15 #define LOG_ERROR 4
16 #define LOG_ALL (LOG_FILE | LOG_EVENTLOG | LOG_ERROR)
17
18 /* default port numbers */
19 #define ECHO_PORT 7
20 #define DISCARD_PORT 9
21 #define DAYTIME_PORT 13
22 #define QOTD_PORT 17
23 #define CHARGEN_PORT 19
24
25 #define NUM_SERVICES 5
26 #define CS_TIMEOUT 1000
27
28
29 /* data structure to pass to threads */
30 typedef struct _Services
31 {
32 USHORT Port;
33 LPWSTR lpName;
34 LPTHREAD_START_ROUTINE lpService;
35 } SERVICES, *PSERVICES;
36
37 extern volatile BOOL bShutdown;
38 extern volatile BOOL bPause;
39
40 /* logging functions */
41 BOOL InitLogging(VOID);
42 VOID UninitLogging(VOID);
43 VOID LogEvent(LPCWSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags);
44
45 /* skelserver functions */
46 DWORD WINAPI StartServer(LPVOID lpParam);
47 BOOL ShutdownConnection(SOCKET Sock, BOOL bRec);
48
49 /* server thread handlers */
50 DWORD WINAPI ChargenHandler(VOID* sock_);
51 DWORD WINAPI DaytimeHandler(VOID* sock_);
52 DWORD WINAPI EchoHandler(VOID* sock_);
53 DWORD WINAPI DiscardHandler(VOID* sock_);
54 DWORD WINAPI QotdHandler(VOID* sock_);
55
56 #endif /* _TCPSVCS_H */