summaryrefslogtreecommitdiff
path: root/src/config/PROTOCOL.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/PROTOCOL.txt')
-rw-r--r--src/config/PROTOCOL.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/config/PROTOCOL.txt b/src/config/PROTOCOL.txt
new file mode 100644
index 0000000..ffeb72f
--- /dev/null
+++ b/src/config/PROTOCOL.txt
@@ -0,0 +1,43 @@
+* Globals
+
+G:verbosity -> 4 bytes
+G:read_timeout -> 4 bytes exit if waiting on client input for read_timeout ms
+G:write_timeout -> 4 bytes die if waiting on flush to client for write_timeout ms
+G:cgi_timeout -> 4 bytes 504 if CGI hasn't finished answering / die if NPH hasn't finished reading
+G:max_request_body_length -> 4 bytes
+G:max_cgi_body_length -> 4 bytes
+G:index_file -> file1\0file2\0file3\0 list of files to attempt when URL is a directory
+
+They all need to exist, tipidee-config creates defaults.
+
+
+* Content-Type
+
+T:extension -> string T:pdf -> application/pdf
+or individual Content-Types in resource attributes
+
+tipidee-config hardcodes a number of default content-types, they
+can be overridden.
+
+
+* Individual redirection
+
+R:vres -> Xurl R:skarnet.org/rickroll.html -> Xhttps://www.youtube.com/watch?v=dQw4w9WgXcQ
+ X = '@' | redir_type (307=0, 308=1, 302=2, 301=3)
+
+
+* Prefix redirection
+
+r:prefix -> Xurlprefix r:s6.org -> Xhttps://skarnet.org/software/s6
+ X = '@' | redir_type (307=0, 308=1, 302=2, 301=3)
+
+* Resource attributes
+
+A:file -> Xstring X = '@' | 1 (iscgi)
+ if string nonempty: it's the content-type for the resource. If empty, default ctype
+
+a:prefix -> Xstring same, but for prefixes
+
+* NPH prefixes
+
+N:domain -> nphprefix N:skarnet.org -> nph- any CGI under skarnet.org starting with nph