itAdd checks to original URL parsing - phroxy - Gopher to HTTP proxy Err z3bra.org 70 hgit clone git://git.z3bra.org/phroxy.git URL:git://git.z3bra.org/phroxy.git z3bra.org 70 1Log /scm/phroxy/log.gph z3bra.org 70 1Files /scm/phroxy/files.gph z3bra.org 70 1Refs /scm/phroxy/refs.gph z3bra.org 70 1LICENSE /scm/phroxy/file/LICENSE.gph z3bra.org 70 i--- Err z3bra.org 70 1commit 1ae65b7b2d472fd5236139bb8a6f1ed96ac55ef9 /scm/phroxy/commit/1ae65b7b2d472fd5236139bb8a6f1ed96ac55ef9.gph z3bra.org 70 1parent 65b08e3fe1928eb217aa59c7f936d13b9a6a5031 /scm/phroxy/commit/65b08e3fe1928eb217aa59c7f936d13b9a6a5031.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:dev@z3bra.org z3bra.org 70 iDate: Mon, 14 Sep 2020 16:10:37 +0200 Err z3bra.org 70 i Err z3bra.org 70 iAdd checks to original URL parsing Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M phroxy.c | 35 +++++++++++++++++++------------- Err z3bra.org 70 i Err z3bra.org 70 i1 file changed, 21 insertions(+), 14 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/phroxy.c b/phroxy.c /scm/phroxy/file/phroxy.c.gph z3bra.org 70 it@@ -343,24 +343,31 @@ phroxy(char *url) Err z3bra.org 70 i { Err z3bra.org 70 i int sock; Err z3bra.org 70 i size_t len; Err z3bra.org 70 i- char item = 0; Err z3bra.org 70 i- char *hole, *path, *host, *port; Err z3bra.org 70 i- char *data = NULL; Err z3bra.org 70 i+ char *hole, *item, *path, *host, *port; Err z3bra.org 70 i+ char *data = NULL, *srch = NULL; Err z3bra.org 70 i Err z3bra.org 70 i- hole = url + 1; Err z3bra.org 70 i- hole = strsep(&hole, "/"); Err z3bra.org 70 i- item = hole[strlen(hole) + 1]; Err z3bra.org 70 i- path = hole + strlen(hole) + 2; Err z3bra.org 70 i+ url++; Err z3bra.org 70 i+ hole = strsep(&url, "/"); Err z3bra.org 70 i+ if (!hole) { Err z3bra.org 70 i+ print404(); Err z3bra.org 70 i+ return 1; Err z3bra.org 70 i+ } Err z3bra.org 70 i Err z3bra.org 70 i- host = strtok(hole, ":"); Err z3bra.org 70 i- port = strtok(NULL, "\0"); Err z3bra.org 70 i+ host = strsep(&hole, ":"); Err z3bra.org 70 i+ port = strsep(&hole, "\0"); Err z3bra.org 70 i if (!port) Err z3bra.org 70 i port = "70"; Err z3bra.org 70 i Err z3bra.org 70 i- if (!hole || !item) { Err z3bra.org 70 i- print404(); Err z3bra.org 70 i- return 1; Err z3bra.org 70 i- } Err z3bra.org 70 i+ item = strsep(&url, "/"); Err z3bra.org 70 i+ if (!item) Err z3bra.org 70 i+ item = "1"; Err z3bra.org 70 i+ Err z3bra.org 70 i+ path = strsep(&url, "\0"); Err z3bra.org 70 i+ if (!path) Err z3bra.org 70 i+ path = "/"; Err z3bra.org 70 i+ Err z3bra.org 70 i+ if((srch = strchr(path, '?'))) Err z3bra.org 70 i+ *srch = '\t'; Err z3bra.org 70 i Err z3bra.org 70 i sock = connectto(host, port); Err z3bra.org 70 i if (!sendselector(sock, path)) Err z3bra.org 70 it@@ -371,7 +378,7 @@ phroxy(char *url) Err z3bra.org 70 i if (!data) Err z3bra.org 70 i return 1; Err z3bra.org 70 i Err z3bra.org 70 i- serveitem(item, data, len); Err z3bra.org 70 i+ serveitem(*item, data, len); Err z3bra.org 70 i Err z3bra.org 70 i return 0; Err z3bra.org 70 i } Err z3bra.org 70 .