- Implement ProtocolResetComplete
[reactos.git] / base / services / tcpsvcs / tcpsvcs.h
1 #include <stdio.h>
2 #include <winsock2.h>
3 #include <tchar.h>
4 #include <time.h>
5
6 #define LOG_FILE 1
7 #define LOG_EVENTLOG 2
8 #define LOG_ERROR 4
9 #define LOG_ALL (LOG_FILE | LOG_EVENTLOG | LOG_ERROR)
10
11 /* default port numbers */
12 #define ECHO_PORT 7
13 #define DISCARD_PORT 9
14 #define DAYTIME_PORT 13
15 #define QOTD_PORT 17
16 #define CHARGEN_PORT 19
17
18 #define NUM_SERVICES 5
19 #define CS_TIMEOUT 1000
20
21
22 /* data structure to pass to threads */
23 typedef struct _Services {
24 USHORT Port;
25 TCHAR *Name;
26 LPTHREAD_START_ROUTINE Service;
27 } SERVICES, *PSERVICES;
28
29 extern volatile BOOL bShutdown;
30 extern volatile BOOL bPause;
31
32 /* logging functions */
33 VOID InitLogging();
34 VOID UninitLogging();
35 VOID LogEvent(LPCTSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags);
36
37 /* skelserver functions */
38 DWORD WINAPI StartServer(LPVOID lpParam);
39 BOOL ShutdownConnection(SOCKET Sock, BOOL bRec);
40
41 /* server thread handlers */
42 DWORD WINAPI ChargenHandler(VOID* sock_);
43 DWORD WINAPI DaytimeHandler(VOID* sock_);
44 DWORD WINAPI EchoHandler(VOID* sock_);
45 DWORD WINAPI DiscardHandler(VOID* sock_);
46 DWORD WINAPI QotdHandler(VOID* sock_);