iadd an AUTHORS a SEE ALSO section - libgcgi - REST library for Gopher Err bitreich.org 70 hgit clone git://bitreich.org/libgcgi git://hg6vgqziawt5s4dj.onion/libgcgi URL:git://bitreich.org/libgcgi git://hg6vgqziawt5s4dj.onion/libgcgi bitreich.org 70 1Log /scm/libgcgi/log.gph bitreich.org 70 1Files /scm/libgcgi/files.gph bitreich.org 70 1Refs /scm/libgcgi/refs.gph bitreich.org 70 1Tags /scm/libgcgi/tag bitreich.org 70 1README /scm/libgcgi/file/README.gph bitreich.org 70 1LICENSE /scm/libgcgi/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 9dd4e7ace8205ca78f096674aa8f2129c790fbc9 /scm/libgcgi/commit/9dd4e7ace8205ca78f096674aa8f2129c790fbc9.gph bitreich.org 70 1parent 39674c36f9dbf2a2f4be5fa2f8df9894c1ed75be /scm/libgcgi/commit/39674c36f9dbf2a2f4be5fa2f8df9894c1ed75be.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:me@josuah.net bitreich.org 70 iDate: Wed, 3 Aug 2022 18:45:00 +0200 Err bitreich.org 70 i Err bitreich.org 70 iadd an AUTHORS a SEE ALSO section Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M README | 49 ++++++++++++++++++------------- Err bitreich.org 70 i M libgcgi.3 | 15 +++++++++++++++ Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 43 insertions(+), 21 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/README b/README /scm/libgcgi/file/README.gph bitreich.org 70 i@@ -4,7 +4,7 @@ NAME Err bitreich.org 70 i gcgi_handle_request, gcgi_fatal, gcgi_template, gcgi_set_var, Err bitreich.org 70 i gcgi_get_var, gcgi_free_var_list, gcgi_read_var_list, Err bitreich.org 70 i gcgi_write_var_list, gcgi_gopher_search, gcgi_gopher_path, Err bitreich.org 70 i- gcgi_gopher_query, gcgi_gopher_host, gcgi_gopher_port, REST library for Err bitreich.org 70 i+ gcgi_gopher_query, gcgi_gopher_host, gcgi_gopher_port, – REST library for Err bitreich.org 70 i Gopher Err bitreich.org 70 i Err bitreich.org 70 i SYNOPSIS Err bitreich.org 70 i@@ -51,10 +51,10 @@ DESCRIPTION Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i The glob is a string against which the path (everything in the query Err bitreich.org 70 i- before the ?) will be matched against. Err bitreich.org 70 i+ before the “”?) will be matched against. Err bitreich.org 70 i Err bitreich.org 70 i The fn function pointer will be called, with an array of matches passed Err bitreich.org 70 i- as argument. There are as many matches populated as there are * in Err bitreich.org 70 i+ as argument. There are as many matches populated as there are “*” in Err bitreich.org 70 i glob. Err bitreich.org 70 i Err bitreich.org 70 i void gcgi_handle_request(struct gcgi_handler h[], int argc, char **argv) Err bitreich.org 70 i@@ -65,8 +65,8 @@ DESCRIPTION Err bitreich.org 70 i Err bitreich.org 70 i Content Generation Err bitreich.org 70 i According to geomyidae(8) behavior, the output format will be: Err bitreich.org 70 i- a raw gophermap if the binary is index.cgi, Err bitreich.org 70 i- a geomyidae(8) gph format if the binary is index.dcgi. Err bitreich.org 70 i+ • a raw gophermap if the binary is “index.cgi”, Err bitreich.org 70 i+ • a geomyidae(8) ‘gph’ format if the binary is “index.dcgi”. Err bitreich.org 70 i Err bitreich.org 70 i void gcgi_fatal(char *fmt, ...) Err bitreich.org 70 i Prints an error message formatted by fmt and exit(3) the program Err bitreich.org 70 i@@ -74,7 +74,7 @@ DESCRIPTION Err bitreich.org 70 i Err bitreich.org 70 i void gcgi_template(char const *path, struct gcgi_var_list *vars) Err bitreich.org 70 i Format the template at path replacing every occurence of Err bitreich.org 70 i- {{key}} by the matching value by searching in vars. Err bitreich.org 70 i+ “{{key}}” by the matching value by searching in vars. Err bitreich.org 70 i Err bitreich.org 70 i void gcgi_print_gophermap(char type, char *desc, char *path, char *host, Err bitreich.org 70 i char *port) Err bitreich.org 70 i@@ -91,9 +91,9 @@ DESCRIPTION Err bitreich.org 70 i Err bitreich.org 70 i Variable List Handling Err bitreich.org 70 i A common data format is used for handling lists of variables: Err bitreich.org 70 i- For parsing a simple text-based database format and writing it back. Err bitreich.org 70 i- For storing the parsed query string in gcgi_gopher_query. Err bitreich.org 70 i- For passing variables to expand in the templates. Err bitreich.org 70 i+ • For parsing a simple text-based database format and writing it back. Err bitreich.org 70 i+ • For storing the parsed query string in gcgi_gopher_query. Err bitreich.org 70 i+ • For passing variables to expand in the templates. Err bitreich.org 70 i Err bitreich.org 70 i void gcgi_set_var(struct gcgi_var_list *vars, char *key, char *val) Err bitreich.org 70 i Overwrite with val the value of a variable matching key of vars. Err bitreich.org 70 i@@ -112,19 +112,19 @@ DESCRIPTION Err bitreich.org 70 i void gcgi_read_var_list(struct gcgi_var_list *vars, char *path) Err bitreich.org 70 i Store all variables from path onto variables in vars. The file Err bitreich.org 70 i format is similar to RFC822 messages or HTTP headers: Err bitreich.org 70 i- One line per variable, with a key=value format. Err bitreich.org 70 i- The key is everything at the beginning of the line until the Err bitreich.org 70 i- occurence of :. Err bitreich.org 70 i- The value is everything after : . Err bitreich.org 70 i- After the list of variables, an empty line declares the body Err bitreich.org 70 i+ • One line per variable, with a key=value format. Err bitreich.org 70 i+ • The key is everything at the beginning of the line until the Err bitreich.org 70 i+ occurence of “:”. Err bitreich.org 70 i+ • The value is everything after “: ”. Err bitreich.org 70 i+ • After the list of variables, an empty line declares the body Err bitreich.org 70 i of the message, which continues until the end and is stored in Err bitreich.org 70 i- a text key. Err bitreich.org 70 i+ a “text” key. Err bitreich.org 70 i Err bitreich.org 70 i int gcgi_write_var_list(struct gcgi_var_list *vars, char *path) Err bitreich.org 70 i Encode the variable list vars into a new file at path. A Err bitreich.org 70 i temporary file will be created in the meantime, and the Err bitreich.org 70 i replacement will be atomic so that no partial write can occur. Err bitreich.org 70 i- The text special key will be turned into the body of the Err bitreich.org 70 i+ The “text” special key will be turned into the body of the Err bitreich.org 70 i message after an empty line instead of a variable on its own Err bitreich.org 70 i line. Err bitreich.org 70 i Err bitreich.org 70 i@@ -134,7 +134,7 @@ DESCRIPTION Err bitreich.org 70 i Err bitreich.org 70 i char *gcgi_gopher_search Err bitreich.org 70 i From argv[1], this is the search string, passed after a tab in Err bitreich.org 70 i- the gopher protocol for item type 7. Err bitreich.org 70 i+ the gopher protocol for item type “7”. Err bitreich.org 70 i Err bitreich.org 70 i char *gcgi_gopher_path Err bitreich.org 70 i From argv[2], this is the query path. It is the full query Err bitreich.org 70 i@@ -143,17 +143,17 @@ DESCRIPTION Err bitreich.org 70 i struct gcgi_var_list gcgi_gopher_query Err bitreich.org 70 i From argv[2], this is the query string stored as a key-value Err bitreich.org 70 i gcgi_var_list. It is extracted from the part of the query after Err bitreich.org 70 i- the ?, usually formated as Err bitreich.org 70 i- ?key1=value1&key2=value2&key3=value3 Err bitreich.org 70 i+ the “”?, usually formated as Err bitreich.org 70 i+ “?key1=value1&key2=value2&key3=value3” Err bitreich.org 70 i Err bitreich.org 70 i char *gcgi_gopher_host Err bitreich.org 70 i From argv[3], this is the current host name configured in Err bitreich.org 70 i- geomyidae(8). It is what to use as a host in links printed Err bitreich.org 70 i+ geomyidae(8). It is what to use as a ‘host’ in links printed Err bitreich.org 70 i out. Err bitreich.org 70 i Err bitreich.org 70 i char *gcgi_gopher_port Err bitreich.org 70 i From argv[4], this is the current port number configured in Err bitreich.org 70 i- geomyidae(8). It is what to use as a port in links printed Err bitreich.org 70 i+ geomyidae(8). It is what to use as a ‘port’ in links printed Err bitreich.org 70 i out. Err bitreich.org 70 i Err bitreich.org 70 i EXAMPLES Err bitreich.org 70 i@@ -196,4 +196,11 @@ CAVEATS Err bitreich.org 70 i The Gopher protocol is not designed for dynamic scripting. A dedicated Err bitreich.org 70 i remote interface protocol such as SSH or telnet may be used instead. Err bitreich.org 70 i Err bitreich.org 70 i+SEE ALSO Err bitreich.org 70 i+ geomyidae(8) Err bitreich.org 70 i+ Err bitreich.org 70 i+AUTHORS Err bitreich.org 70 i+ Josuah Demangeon Err bitreich.org 70 i+ gopher://bitreich.org: The Bitreich Project Err bitreich.org 70 i+ Err bitreich.org 70 i LIBGCGI(3) Library Functions Manual LIBGCGI(3) Err bitreich.org 70 1diff --git a/libgcgi.3 b/libgcgi.3 /scm/libgcgi/file/libgcgi.3.gph bitreich.org 70 i@@ -337,3 +337,18 @@ A dedicated file upload protocol such as SFTP or FTP may be used instead. Err bitreich.org 70 i .Pp Err bitreich.org 70 i The Gopher protocol is not designed for dynamic scripting. Err bitreich.org 70 i A dedicated remote interface protocol such as SSH or telnet may be used instead. Err bitreich.org 70 i+. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh SEE ALSO Err bitreich.org 70 i+. Err bitreich.org 70 i+.Xr geomyidae 8 Err bitreich.org 70 i+. Err bitreich.org 70 i+. Err bitreich.org 70 i+.Sh AUTHORS Err bitreich.org 70 i+. Err bitreich.org 70 i+.Bl -ohang -compact Err bitreich.org 70 i+.It Err bitreich.org 70 i+.An Josuah Demangeon Aq Mt me@josuah.net Err bitreich.org 70 i+.It Err bitreich.org 70 i+.Lk "The Bitreich Project" gopher://bitreich.org Err bitreich.org 70 i+.El Err bitreich.org 70 .