-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparseHttpProtocol.h
More file actions
37 lines (34 loc) · 1.04 KB
/
parseHttpProtocol.h
File metadata and controls
37 lines (34 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
/**
* Limit the possible size and number of headers possible for a request.
* The limits are the same ones used for the Apache 2.3 server.
*/
#define MAX_NUMBER_OF_HEADERS 100
#define MAX_HEADER_SIZE 8190
#define MAX_BODY_SIZE 100000
#define MAX_BUFFER_SIZE MAX_NUMBER_OF_HEADERS * MAX_HEADER_SIZE + MAX_BODY_SIZE
#define MAX_RESPONSE_MSG_SIZE 200
#define MAX_RESPONSE_BODY_SIZE 100000
#define MAX_RESPONSE_SIZE MAX_RESPONSE_MSG_SIZE + MAX_RESPONSE_BODY_SIZE
/**
* Defines a request structure.
*/
typedef struct {
char parsed_request[MAX_NUMBER_OF_HEADERS][MAX_HEADER_SIZE];
char body[MAX_BODY_SIZE];
size_t parsed_request_size;
size_t body_size;
} requestStruct;
/**
* Defines a response structure.
*/
typedef struct {
char message[MAX_RESPONSE_MSG_SIZE];
char body[MAX_RESPONSE_BODY_SIZE];
char full_response[MAX_RESPONSE_SIZE];
size_t message_size;
size_t body_size;
size_t full_response_size;
} responseStruct;
void * handle_http_request(void* p_client_socket);
int split_http_request(char *buffer, requestStruct *request);