Adding gopher+ compatibility. - geomyidae - A small C-based gopherd. HTML git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit a1cdda3a103efbe3da4dfed6b2b26301d1b83757 DIR parent 1ee9a83904a0077b273014297bd5ca0a1d076148 HTML Author: Christoph Lohmann <20h@r-36.net> Date: Tue, 30 Jan 2018 22:21:42 +0100 Adding gopher+ compatibility. Diffstat: M main.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) --- DIR diff --git a/main.c b/main.c @@ -130,6 +130,20 @@ handlerequest(int sock, char *base, char *ohost, char *port, char *clienth, c = strchr(recvb, '\n'); if (c) c[0] = '\0'; + sear = strchr(recvb, '\t'); + if (sear != nil) { + *sear++ = '\0'; + + /* Gopher+ compatibility hack. */ + if (*sear == '+' || *sear == '$' || *sear == '!') { + dprintf(sock, "+-2\r\n"); + dprintf(sock, "+INFO: 1gopher+\t\t%s\t%s\r\n", + ohost, port); + dprintf(sock, "+ADMIN:\r\n Admin: Me\r\n"); + return; + } + } + memmove(recvc, recvb, len+1); if (!strncmp(recvb, "URL:", 4)) { @@ -143,9 +157,6 @@ handlerequest(int sock, char *base, char *ohost, char *port, char *clienth, return; } - sear = strchr(recvb, '\t'); - if (sear != nil) - *sear++ = '\0'; args = strchr(recvb, '?'); if (args != nil) *args++ = '\0';