- Don't call winsock initialiser for each seperate server thread
[reactos.git] / reactos / apps / utils / net / tcpsvcs / tcpsvcs.h
1 /* default port numbers */
2 #define ECHO_PORT 7
3 #define DISCARD_PORT 9
4 #define DAYTIME_PORT 13
5 #define QOTD_PORT 17
6 #define CHARGEN_PORT 19
7
8 #define NUM_SERVICES 5
9 #define BUF_SIZE 255
10 #define BUF 1024
11 #define CS_TIMEOUT 1000
12
13 /* RFC865 states no more than 512 chars per line */
14 #define MAX_QUOTE_BUF 512
15
16 /* printable ASCII's characters for chargen */
17 #define START 32
18 #define END 126
19
20 /* number of chars to put on a line */
21 #define LINESIZ 74 // 72 + /r and /n
22
23 /* data structure to pass to threads */
24 typedef struct _Services {
25 INT Port;
26 TCHAR *Name;
27 LPTHREAD_START_ROUTINE Service;
28 } SERVICES, *PSERVICES;
29
30
31 /* tcpsvcs functions * /
32 static VOID WINAPI ServiceMain(DWORD argc, LPTSTR argv[]);
33 VOID WINAPI ServerCtrlHandler(DWORD control);
34 INT CreateServers(VOID);
35 VOID LogEvent (LPCTSTR UserMessage, DWORD ExitCode, BOOL PrintErrorMsg);
36 void UpdateStatus (int NewStatus, int Check);
37 */
38
39 /* skelserver functions */
40 DWORD WINAPI StartServer(LPVOID lpParam);
41 SOCKET SetUpListener(const char* ServAddr, int Port);
42 VOID AcceptConnections(SOCKET ListeningSocket,
43 LPTHREAD_START_ROUTINE Service, TCHAR *Name);
44 BOOL EchoIncomingPackets(SOCKET sd);
45 BOOL ShutdownConnection(SOCKET Sock, BOOL bRec);
46
47 /* chargen functions */
48 DWORD WINAPI ChargenHandler(VOID* Sock_);
49 BOOL GenerateChars(SOCKET Sock);
50 BOOL SendLine(SOCKET Sock, TCHAR* Line);
51
52 /* daytime functions */
53 DWORD WINAPI DaytimeHandler(VOID* Sock_);
54 BOOL SendTime(SOCKET Sock, TCHAR *time);
55
56 /* echo functions */
57 DWORD WINAPI EchoHandler(VOID* Sock_);
58 BOOL EchoIncomingPackets(SOCKET Sock);
59
60 /* discard functions */
61 DWORD WINAPI DiscardHandler(VOID* Sock_);
62 BOOL RecieveIncomingPackets(SOCKET Sock);
63
64 /* qotd functions */
65 DWORD WINAPI QotdHandler(VOID* Sock_);
66 BOOL SendQuote(SOCKET Sock, TCHAR* Quote);