You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#include "url.h"
|
|
|
|
#include <string.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
struct URL_s {
|
|
|
|
char* schema;
|
|
|
|
char* hostname;
|
|
|
|
char* port;
|
|
|
|
char* filepath;
|
|
|
|
char* url_str;
|
|
|
|
};
|
|
|
|
|
|
|
|
char* get_schema(URL* url) {
|
|
|
|
return url->schema;
|
|
|
|
}
|
|
|
|
|
|
|
|
char* get_hostname(URL* url) {
|
|
|
|
return url->hostname;
|
|
|
|
}
|
|
|
|
|
|
|
|
char* get_port(URL* url) {
|
|
|
|
return url->port;
|
|
|
|
}
|
|
|
|
|
|
|
|
char* get_filepath(URL* url) {
|
|
|
|
return url->filepath;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char* url_to_str(URL* url) {
|
|
|
|
return url->url_str;
|
|
|
|
}
|
|
|
|
|
|
|
|
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,"/");
|
|
|
|
|
|
|
|
if (strcmp(url->schema,"http") == 0) {
|
|
|
|
url->port = "80";
|
|
|
|
} else {
|
|
|
|
url->port = "443";
|
|
|
|
}
|
|
|
|
|
|
|
|
url->filepath = strtok(NULL,"/");
|
|
|
|
if (url->filepath == NULL) {
|
|
|
|
url->filepath = "/";
|
|
|
|
}
|
|
|
|
|
|
|
|
return url;
|
|
|
|
}
|