- converted 1st stage setup stub from message box style to property sheet style
[reactos.git] / rosapps / applications / net / roshttpd / include / http.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS HTTP Daemon
4 * FILE: include/http.h
5 */
6 #ifndef __HTTP_H
7 #define __HTTP_H
8
9 #include <windows.h>
10
11 // Generel HTTP related constants
12 #define NUMMETHODS 7
13 #define NUMGENERELS 7
14 #define NUMREQUESTS 17
15 #define NUMENTITIES 12
16
17 // HTTP method constants
18 #define hmOPTIONS 0
19 #define hmGET 1
20 #define hmHEAD 2
21 #define hmPOST 3
22 #define hmPUT 4
23 #define hmDELETE 5
24 #define hmTRACE 6
25
26 class CHttpParser {
27 public:
28 CHAR sBuffer[2048];
29 UINT nHead;
30 UINT nTail;
31 CHAR sUri[255];
32 CHAR sVersion[15];
33 CHAR sHeader[63];
34 CHAR sMethod[63];
35 UINT nMethodNo;
36 BOOL bUnknownMethod;
37 BOOL bBadRequest;
38 CHttpParser();
39 ~CHttpParser();
40 BOOL Complete();
41 BOOL Parse();
42 private:
43 BOOL ReadChar(LPSTR lpsStr);
44 BOOL PeekChar(LPSTR lpsStr);
45 BOOL ReadString(LPSTR lpsStr, UINT nLength);
46 BOOL ReadSpecial(LPSTR lpStr, UINT nLength);
47 VOID Skip(CHAR sStr);
48 BOOL Expect(CHAR sStr);
49 BOOL ExpectCRLF();
50 BOOL RequestLine();
51 BOOL GenerelHeader();
52 BOOL RequestHeader();
53 BOOL EntityHeader();
54 BOOL MessageBody();
55 };
56
57 #endif /* __HTTP_H */