From 6bfda18041dffeac373ad799b22b0aceaaf6039d Mon Sep 17 00:00:00 2001 From: epochqwert Date: Sat, 28 May 2016 09:40:08 +0000 Subject: fuck if I know. I'm tired. moved the magic stuff to url.c. --- url.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'url.c') diff --git a/url.c b/url.c index ecb9e5d..0c918bc 100644 --- a/url.c +++ b/url.c @@ -1,3 +1,4 @@ +#include #include /* @@ -127,3 +128,20 @@ void urlfromline(struct url *u,char *line) { u->password=0; } } + +#define AorB(a,b) ((a)?(a):(b)) + +void magic_and_defaults(struct url *u) { + struct servent *serv; + char sport[10]; + u->scheme=AorB(u->scheme,AorB(getenv("URL_SCHEME"),"DEFAULT")); + u->username=AorB(u->username,AorB(getenv("URL_USERNAME"),"DEFAULT")); + u->password=AorB(u->password,AorB(getenv("URL_PASSWORD"),"DEFAULT")); + u->domain=AorB(u->domain,AorB(getenv("URL_DOMAIN"),"DEFAULT")); + serv=getservbyname(u->scheme,strcmp(u->scheme,"udp")?"tcp":"udp");//gets default port for the scheme. http -> 80 + if(serv) snprintf(sport,sizeof(sport)-1,"%d",ntohs(serv->s_port)); + u->port=AorB(u->port,AorB(getenv("URL_PORT"),(serv?sport:"DEFAULT"))); + u->path=AorB(u->path,AorB(getenv("URL_PATH"),"DEFAULT")); + u->query_string=AorB(u->query_string,AorB(getenv("URL_QUERY_STRING"),"DEFAULT")); + u->fragment_id=AorB(u->fragment_id,AorB(getenv("URL_FRAGMENT_ID"),"DEFAULT")); +} -- cgit v1.2.3