Skip to content
Snippets Groups Projects
Commit 6cb01363 authored by Neesergparajuli's avatar Neesergparajuli
Browse files

simple get request parser working, ignoring everything but the first line right now

parent 73c3732e
No related branches found
No related tags found
No related merge requests found
#include "GETheader.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char getrequest[BUFFERSIZE];
memset(getrequest, 0, BUFFERSIZE);
fread(getrequest, 1, BUFFERSIZE, stdin);
struct GET_header header;
parse_GET_request(getrequest, &header);
printf("%s\n", header.filepath);
printf("%s\n", header.httpversion);
return 0;
}
int parse_GET_request(char* message, struct GET_header* header){
char workingcopy[BUFFERSIZE];
char delimeter[6] = " \r\n\t\v";
strcpy(workingcopy, message);
char *get;
if((get = strtok(workingcopy, delimeter))==NULL){
perror("NOT VALID");
header->status = BADREQUEST;
return -1;
}
if (strcmp(get, "GET") != 0)
{
perror("NOT VALID");
header->status = BADREQUEST;
return -1;
}
char *temp;
if((temp = strtok(NULL, delimeter)) == NULL){
perror("NOT VALID");
header->status = FILENOTFOUND;
return -1;
}
strcpy(header->filepath, temp);
if((temp = strtok(NULL, delimeter)) == NULL){
perror("NOT VALID");
header->status = BADREQUEST;
return -1;
}
strcpy(header->httpversion, temp);
}
#ifndef GETheader
#define GETheader
#define BUFFERSIZE 1000
#define BADREQUEST 400
#define FILENOTFOUND 404
struct GET_header
{
char httpversion[10];
int status;
char filepath[128];
};
int parse_GET_request(char* message, struct GET_header* header);
#endif
\ No newline at end of file
sample 0 → 100755
File added
#ifndef SERVER
#define SERVER
char root[32];
#endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment