ec91f60e2c970e0ba5bd13d119389440cc87526d
4 #define _CRT_SECURE_NO_WARNINGS
6 #define WIN32_NO_STATUS
15 #define TELNET_PORT (23003)
17 #define BUFSIZE (4096)
18 #define USERID_SIZE (64)
33 #define SUPPRESS_GO_AHEAD "\x03"
34 #define TERMINAL_TYPE "\x18"
36 #define LINEMODE "\x22"
37 #define NEWENVIRON "\x27"
40 #define HANDSHAKE_TIMEOUT (3)
46 typedef struct client_s
48 char userID
[USERID_SIZE
];
51 BOOLEAN bReadFromPipe
;
56 HANDLE hChildStdoutRd
;
67 ** Forward function declarations
69 static BOOL WINAPI
Cleanup(DWORD dwControlType
);
70 static void WaitForConnect(void);
71 static BOOLEAN
StartSocketInterface(void);
72 static void CreateSocket(void);
73 static void UserLogin(int client_socket
);
74 static DWORD WINAPI
UserLoginThread(LPVOID
);
75 static int DoTelnetHandshake(int sock
);
76 static int ReceiveLine(int sock
, char *buffer
, int len
, EchoMode echo
);
77 static void RunShell(client_t
*client
);
78 //static BOOL CreateChildProcess(const char *);
79 static DWORD WINAPI
MonitorChildThread(LPVOID
);
80 static DWORD WINAPI
WriteToPipeThread(LPVOID
);
81 static DWORD WINAPI
ReadFromPipeThread(LPVOID
);
82 static void TerminateShell(client_t
*client
);
83 static VOID
ErrorExit(LPTSTR
);
84 int kickoff_telnetd(void);
86 #endif /* __TELNETD_H */