Commit Graph

81 Commits

Author SHA1 Message Date
Solderpunk b0a08f8231 Break CGI and SCGI stuff out into its own file. 2020-06-06 11:46:29 +02:00
Solderpunk 54ed1ab265 Merge CGI and SCGI variable preparation. 2020-06-06 11:33:00 +02:00
Solderpunk d78c840056 First step toward unstubbing SCGI. 2020-06-06 00:12:46 +02:00
Solderpunk b384105d86 Factor out request reading code. 2020-06-05 20:13:48 +02:00
Solderpunk 7ffbb6c6ef Pass some client cert information to CGI programs. 2020-06-05 19:55:24 +02:00
Solderpunk 6f3887bdc4 Request client certificates, check validity dates of received certs and pass certs to handleCGI. 2020-06-05 19:39:28 +02:00
Solderpunk 4e262d634a Fix line endings in response headers. 2020-06-05 19:37:56 +02:00
Solderpunk fc730c8b1c Refuse to serve any sensitive files. 2020-06-04 23:24:19 +02:00
Solderpunk 532dd83414 Make sure to always provide a MIME type. 2020-06-04 23:12:09 +02:00
Solderpunk a16a5fac12 Switch CGI implementation to actual CGI. 2020-06-04 22:38:22 +02:00
Solderpunk de119aa0bb Fix trailing slash redirects. 2020-06-04 21:32:20 +02:00
Solderpunk 920f06597f Stub implementation of SCGI. 2020-06-04 20:41:40 +02:00
Solderpunk 93f3c9e620 Break handleGeminiRequest up into smaller, clearer functions. 2020-06-04 20:35:14 +02:00
Solderpunk 9c51f26d74 Do not crash if os.Stat returns an error other than not found or no permission, which seems to mysteriously happen sometimes... 2020-06-01 21:27:15 +02:00
Solderpunk 5fdb3622e9 Remove vestigial generic response code. 2020-06-01 21:23:24 +02:00
Solderpunk 06809edfcc URL escape filenames in directory lisitngs. 2020-05-19 22:03:44 +02:00
Solderpunk 590aa672a2 Be more careful with permission issues on index.gmi 2020-05-17 14:12:11 +02:00
Solderpunk 8239e7fd3f Limit CGI processes to a particular path. 2020-01-12 13:39:38 +01:00
Solderpunk cadb7b2ea5 Check CGI responses for a valid status code. 2020-01-12 12:51:38 +01:00
Solderpunk 40ad09f9bc Close stdin of CGI process after sending URL. 2019-11-30 19:52:20 +02:00
Solderpunk 0b4fefd0ba Terminate CGI processes after 10 seconds. 2019-11-24 21:05:32 +02:00
Solderpunk efc1ecf7a7 Basic implementation of getting dynamic content from executables. 2019-11-24 20:24:35 +02:00
Solderpunk 10a169a7f3 Remove port number from hostname before comparing against configured hostname. 2019-11-24 12:29:38 +02:00
Solderpunk a67d1b113a Don't list dot files. 2019-11-22 21:35:51 +02:00
Solderpunk 0de58e031a Only list world readable files. 2019-11-21 23:03:39 +02:00
Solderpunk 23a6284cc4 Check that request hostname matches configured hostname. 2019-11-21 22:39:25 +02:00
Solderpunk b3a87c3739 Serve files and directories. 2019-11-06 22:23:51 +02:00
Solderpunk b4cbd47bce Defer sending log entry to channel. 2019-11-06 18:50:44 +02:00
Solderpunk dc92fbd228 Set missing scheme to gemini://, and return status 53 for non-Gemini schemes. 2019-11-06 18:46:44 +02:00
Solderpunk 7566636c97 Add basic logging. 2019-11-06 18:38:41 +02:00
Solderpunk 0ddf8ca2ae Initial bare bones implementation. 2019-11-06 17:08:44 +02:00