itWrap types 0 and 1 in HTML - 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 e159168461c30eb37813b1c43afa98d27bc3d6d5 /scm/phroxy/commit/e159168461c30eb37813b1c43afa98d27bc3d6d5.gph z3bra.org 70 1parent c3904deacd7faa41c91e97ae247e0791c945138f /scm/phroxy/commit/c3904deacd7faa41c91e97ae247e0791c945138f.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:dev@z3bra.org z3bra.org 70 iDate: Fri, 11 Sep 2020 22:37:01 +0200 Err z3bra.org 70 i Err z3bra.org 70 iWrap types 0 and 1 in HTML Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M phroxy.c | 41 ++++++++++++++++++++++++++++--- Err z3bra.org 70 i Err z3bra.org 70 i1 file changed, 37 insertions(+), 4 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@@ -205,16 +205,49 @@ printheaders(char *ctype) Err z3bra.org 70 i printf("Connection: close\r\n"); Err z3bra.org 70 i } Err z3bra.org 70 i Err z3bra.org 70 i+char * Err z3bra.org 70 i+htmlize(char *data, size_t len, size_t *newsize) Err z3bra.org 70 i+{ Err z3bra.org 70 i+ size_t hlen; Err z3bra.org 70 i+ char *html = NULL; Err z3bra.org 70 i+ Err z3bra.org 70 i+ char *foot = ""; Err z3bra.org 70 i+ char *head = Err z3bra.org 70 i+ "" Err z3bra.org 70 i+ "" Err z3bra.org 70 i+ "" Err z3bra.org 70 i+ "" Err z3bra.org 70 i+ "" Err z3bra.org 70 i+ "phroxy(8)" Err z3bra.org 70 i+ "
\n";	Err	z3bra.org	70
i+	Err	z3bra.org	70
i+        hlen = len + strlen(head) + strlen(foot);	Err	z3bra.org	70
i+        html = malloc(hlen);	Err	z3bra.org	70
i+        if (!html)	Err	z3bra.org	70
i+                return NULL;	Err	z3bra.org	70
i+	Err	z3bra.org	70
i+        snprintf(html, hlen, "%s%s%s", head, data, foot);	Err	z3bra.org	70
i+	Err	z3bra.org	70
i+        if (newsize)	Err	z3bra.org	70
i+                *newsize = hlen;	Err	z3bra.org	70
i+	Err	z3bra.org	70
i+        return html;	Err	z3bra.org	70
i+}	Err	z3bra.org	70
i 	Err	z3bra.org	70
i int	Err	z3bra.org	70
i serveitem(char item, char *data, size_t len)	Err	z3bra.org	70
i {	Err	z3bra.org	70
i-        char *sendi;	Err	z3bra.org	70
i+        char *send, *html;	Err	z3bra.org	70
i         int sent;	Err	z3bra.org	70
i 	Err	z3bra.org	70
i         switch(item) {	Err	z3bra.org	70
i          case '0':	Err	z3bra.org	70
i          case '1':	Err	z3bra.org	70
i+                html = htmlize(data, len, &len);	Err	z3bra.org	70
i+                free(data);	Err	z3bra.org	70
i+                data = html;	Err	z3bra.org	70
i+                break;	Err	z3bra.org	70
i+	Err	z3bra.org	70
i          case '6':	Err	z3bra.org	70
i          case '9':	Err	z3bra.org	70
i          case 'g':	Err	z3bra.org	70
it@@ -243,12 +276,12 @@ serveitem(char item, char *data, size_t len)	Err	z3bra.org	70
i         printf("\r\n");	Err	z3bra.org	70
i         fflush(stdout);	Err	z3bra.org	70
i 	Err	z3bra.org	70
i-        sendi = data;	Err	z3bra.org	70
i+        send = data;	Err	z3bra.org	70
i         while (len > 0) {	Err	z3bra.org	70
i-                if ((sent = write(1, sendi, len)) < 0)	Err	z3bra.org	70
i+                if ((sent = write(1, send, len)) < 0)	Err	z3bra.org	70
i                         return 1;	Err	z3bra.org	70
i                 len -= sent;	Err	z3bra.org	70
i-                sendi += sent;	Err	z3bra.org	70
i+                send += sent;	Err	z3bra.org	70
i         }	Err	z3bra.org	70
i 	Err	z3bra.org	70
i         return 0;	Err	z3bra.org	70
.