Select Git revision
GETheader.c 1.24 KiB
#include "GETheader.h"
#include "server.h"
#include "RESPheader.h"
#include <stdio.h>
#include <string.h>
/*int main(int argc, char const *argv[])
{
char getrequest[BUFFERSIZE];
root = "/home/neeserg/Dropbox/CompSys/practice";
memset(getrequest, 0, BUFFERSIZE);
fread(getrequest, 1, BUFFERSIZE, stdin);
struct GET_header header;
parse_GET_request(getrequest, &header);
printf("%s\n", header.filepath);
sendresponse(0, &header);
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;
}
memset(header->filepath, 0, PATHLEN);
strcat(header->filepath, root);
strcat(header->filepath, temp);
if((temp = strtok(NULL, delimeter)) == NULL){
perror("NOT VALID");
header->status = BADREQUEST;
return -1;
}
strcpy(header->httpversion, temp);
}