Compare commits

..

6 Commits

4 changed files with 55 additions and 7 deletions

12
main.c Normal file
View File

@@ -0,0 +1,12 @@
#include "url.h"
#include "request.h"
#include <stdio.h>
int main() {
char* url_str = "http://www.google.com";
// URL* url = new_url(url_str);
// printf("Schema is %s\nHostname is %s\nPort is %s\nFilepath is %s\n",get_schema(url),get_hostname(url),get_port(url),get_filepath(url));
Request* req = new_request(url_str,"GET");
printf("%s",make_request(req));
}

View File

@@ -1,16 +1,43 @@
#include "stdlib.h"
#include <stdlib.h>
#include <string.h>
#include "url.h"
#include "request.h"
#define MAX_BUFFER_SIZE 50000
struct Request_s {
URL* url;
char* req_type;
};
Request* new_Request(char* url_str,char* req_type_str) {
Request* new_request(char* url_str,char* req_type_str) {
Request* req = malloc(sizeof(struct Request_s));
req->url = new_url(url_str);
req->req_type = req_type_str;
}
URL* get_url(Request* req) {
return req->url;
}
char* make_request(Request* req) {
char* request_str = malloc(sizeof(char) * MAX_BUFFER_SIZE);
strcat(request_str,req->req_type);
strcat(request_str," ");
strcat(request_str,get_filepath(req->url));
strcat(request_str," HTTP/1.1");
strcat(request_str,"\r\n");
strcat(request_str,"Host: ");
strcat(request_str,get_hostname(req->url));
strcat(request_str,"\r\n\r\n");
return request_str;
if (strcmp(get_schema(req->url),"http") == 0) {
} else if (strcmp(get_schema(req->url),"https") == 0) {
}
}

View File

@@ -1,3 +1,7 @@
#include "url.h"
typedef struct Request_s Request;
Request* new_request(char* url,char* req_type);
URL* get_url(Request* req);
char* make_request(Request* req);

15
url.c
View File

@@ -7,6 +7,7 @@ struct URL_s {
char* hostname;
char* port;
char* filepath;
char* url_str;
};
char* get_schema(URL* url) {
@@ -26,11 +27,15 @@ char* get_filepath(URL* url) {
}
URL* new_url(char* url_str) {
char* url_dup = strdup(url_str);
URL* url = malloc(sizeof(struct URL_s));
char* url_to_str(URL* url) {
return url->url_str;
}
url->schema = strtok(url_dup,":");
URL* new_url(char* url_str) {
URL* url = malloc(sizeof(struct URL_s));
url->url_str = strdup(url_str);
url->schema = strtok(url->url_str,":");
url->hostname = strtok(NULL,"/");
@@ -42,7 +47,7 @@ URL* new_url(char* url_str) {
url->filepath = strtok(NULL,"/");
if (url->filepath == NULL) {
url->filepath = "/index.html";
url->filepath = "/";
}
return url;