Skip to content
Snippets Groups Projects
Select Git revision
2 results Searching

server.c

Blame
  • 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);
    
    }