Commit Graph

46 Commits

Author SHA1 Message Date
Solderpunk e57a3d5ecf Read header for directory listings from .mollyhead. 2020-06-11 22:43:13 +02:00
Solderpunk b0b18971f4 Run gofmt on everything for the first time ever! 2020-06-10 21:31:13 +02:00
Solderpunk 3e80488f92 Add DefaultLang config variable to set text/gemini lang parameter. Overridable via .molly file. 2020-06-10 21:22:15 +02:00
Solderpunk 7fb5ca052b Fix parent directory walking logic to work at the DocRoot. 2020-06-10 21:20:01 +02:00
Solderpunk cb1e0da7d5 Read .molly files from parent directories of served file, permitting overrides to text/gemini file extension. 2020-06-10 20:40:13 +02:00
Solderpunk 599bbf4b52 Proper tilde path clean up. 2020-06-10 19:43:49 +02:00
Solderpunk 8d2309f889 Quick hacky fix to tilde path transformation. 2020-06-08 23:03:19 +02:00
Solderpunk b8034c1576 Make text/gemini extension configurable. 2020-06-08 21:47:33 +02:00
Solderpunk 4681d3f971 Support multiple CGI paths. 2020-06-08 21:46:39 +02:00
Solderpunk 8f395d7932 Add link to parent directory in directory listings. 2020-06-08 20:01:03 +02:00
Solderpunk 301d3409f1 Support temporary and permanent redirects. 2020-06-08 19:59:16 +02:00
Solderpunk 433c43e98e Add file size and modification dates to automatically generated directory listings. 2020-06-06 21:28:12 +02:00
Solderpunk 11beddcfb1 Add rudimentary support for specifying redirects. 2020-06-06 13:36:10 +02:00
Solderpunk 548697b094 Get rid of debugging prints. 2020-06-06 13:35:47 +02:00
Solderpunk 2c99228610 Pass pointers to the log entry to functions which can set the status code, so changes are reflected in the main handle function. 2020-06-06 12:08:34 +02:00
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