3e8121f85c04daf26fabae90d097398cc985d3a8
[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 6
9 #define BUF_SIZE 255
10 #define BUF 1024
11
12 /* RFC865 states no more than 512 chars per line */
13 #define MAX_QUOTE_BUF 512
14
15 /* printable ASCII's characters for chargen */
16 #define START 32
17 #define END 126
18
19 /* number of chars to put on a line */
20 #define LINESIZ 74 // 72 + /r and /n
21
22 /* data structure to pass to threads */
23 typedef struct _Services {
24 INT Port;
25 LPTHREAD_START_ROUTINE Service;
26 } SERVICES, *PSERVICES;
27
28 /* tcpsvcs functions */
29 //static VOID CALLBACK ServiceMain(DWORD argc, LPTSTR *argv);
30
31 /* skelserver functions */
32 DWORD WINAPI StartServer(LPVOID lpParam);
33 SOCKET SetUpListener(const char* ServAddr, int Port);
34 VOID AcceptConnections(SOCKET ListeningSocket, LPTHREAD_START_ROUTINE Service);
35 BOOL EchoIncomingPackets(SOCKET sd);
36 BOOL ShutdownConnection(SOCKET Sock, BOOL bRec);
37
38 /* chargen functions */
39 DWORD WINAPI ChargenHandler(VOID* Sock_);
40 BOOL GenerateChars(SOCKET Sock);
41 BOOL SendLine(SOCKET Sock, TCHAR* Line);
42
43 /* daytime functions */
44 DWORD WINAPI DaytimeHandler(VOID* Sock_);
45 BOOL SendTime(SOCKET Sock, TCHAR *time);
46
47 /* echo functions */
48 DWORD WINAPI EchoHandler(VOID* Sock_);
49 BOOL EchoIncomingPackets(SOCKET Sock);
50
51 /* discard functions */
52 DWORD WINAPI DiscardHandler(VOID* Sock_);
53 BOOL RecieveIncomingPackets(SOCKET Sock);
54
55 /* qotd functions */
56 DWORD WINAPI QotdHandler(VOID* Sock_);
57 BOOL SendQuote(SOCKET Sock, TCHAR* Quote);