Commit graph

95 commits

Author SHA1 Message Date
Johann150
aa713a2dea
formatting 2021-02-04 16:56:17 +01:00
Johann150
46866c4320
resolve merge conflicts 2021-01-27 22:00:28 +01:00
Johann150
0411a8278f fix doc comment 2021-01-26 09:36:51 -08:00
Johann150
f0789921e0 make functions into methods of RequestHandle 2021-01-26 09:36:51 -08:00
Johann150
116c9fdcb4 rename flag 2021-01-26 09:36:51 -08:00
Johann150
74853799c7 handle errors in handle_request 2021-01-26 09:36:51 -08:00
Johann150
3353989e7e add log_line to RequestHandle
There are still some problems with this, the error handling in handle_request
will have to be changed to accomodated the new log_line.
2021-01-26 09:36:51 -08:00
Johann150
aa17b5bc17 add RequestHandle struct 2021-01-26 09:36:51 -08:00
Johann150
21486a0d11 add logging for peer IP addresses 2021-01-26 09:36:51 -08:00
Johann150
fdd2ac7e56 simplify meta type to &str
Since this specialty is only used once and this would complicate generating the
logging string from a str array without code duplication.
2021-01-26 09:36:51 -08:00
Johann150
6bbbb5ed4b use sidecar files 2021-01-17 19:43:42 +01:00
Johann150
e68637fb1b fix check_outdated 2021-01-17 19:42:48 +01:00
Johann150
f7ac1fe21b update readme 2021-01-17 19:42:48 +01:00
Johann150
c916827709 add metadata database 2021-01-17 19:42:48 +01:00
Johann150
bb7e885143 run cargo fmt 2021-01-17 19:42:48 +01:00
Johann150
6d51e97649 fix help message 2021-01-16 18:24:10 -08:00
Johann150
7c4a042cd3 check port against TCP stream's port
This also reinstates the old format for the --addr flag and removes
the separate flag for the port.
2021-01-16 18:24:10 -08:00
Matt Brubeck
dd4be5b9f6 Take port as a separate command-line argument 2021-01-16 10:42:27 -08:00
Johann150
4e7d09204f only check path segments in URL
This will only check path segments specified in the request URL and not
path segments that are part of the path specified on the command line.

Otherwise if the content directory was (in) a hidden directory, or specified
with a relative path containing "." or ".." segments, nothing would be served.
2021-01-16 09:56:58 -08:00
Johann150
972ecf8c13 correctly redirect directories
cf. <https://lists.orbitalfox.eu/archives/gemini/2021/004827.html>
2021-01-16 09:56:04 -08:00
Johann150
681ba770a1 check all path components 2021-01-05 12:36:50 -08:00
Johann150
af783f6911 configuration flag to reenable secret files 2021-01-05 12:36:50 -08:00
Johann150
7d10fa3c74 do not serve hidden files 2021-01-05 12:36:50 -08:00
Matt Brubeck
1361f07467 Scheme-relative URLs are no longer allowed
https://lists.orbitalfox.eu/archives/gemini/2020/003646.html
2021-01-01 20:10:04 -08:00
Matt Brubeck
c563f27b1a Send close_notify before closing connection 2021-01-01 20:05:19 -08:00
Matt Brubeck
33d39cc34b Organize imports 2020-12-31 18:07:59 -08:00
Matt Brubeck
471a9927a0 Use the Tokio async runtime 2020-12-31 18:05:46 -08:00
Matt Brubeck
ec50a315a3 Use concrete types for TlsStreams 2020-12-31 17:02:45 -08:00
Matt Brubeck
edf2ebffdc Refactor error handling and logging 2020-12-31 16:20:57 -08:00
Matt Brubeck
847434d844 Reorganize some code 2020-12-31 15:41:15 -08:00
Matt Brubeck
879422c2cc Simplify percent-encoding of paths. 2020-12-31 15:39:36 -08:00
Matt Brubeck
fe62be214e Reduce number of writes in send_header 2020-12-31 14:43:22 -08:00
Matt Brubeck
bf2e35537c Percent-escape more characters 2020-12-30 22:12:38 -08:00
Matt Brubeck
70b28a65e1 Encode spaces in filenames 2020-12-30 21:16:12 -08:00
Matt Brubeck
9683146851 Print directory listings in alphabetical order 2020-12-30 21:15:35 -08:00
Matt Brubeck
a70f5e6100 Use async version of read_dir 2020-12-27 12:18:05 -08:00
Matt Brubeck
0909a4def8 Rename 'respond' to 'send_header' 2020-12-27 12:12:21 -08:00
Matt Brubeck
a007908248 Facter directory listing into a function 2020-12-27 12:11:38 -08:00
Johann150
e4dacd1315 implement basic directory listing 2020-12-27 11:30:53 -08:00
Matt Brubeck
a2f6f5932f Enable logging by default 2020-12-22 17:42:23 -08:00
Matt Brubeck
7a117f3a47 Option to add a language code to text/gemini responses 2020-12-22 16:16:42 -08:00
Matt Brubeck
dfa5dbd971 Use getopts for option parsing 2020-12-22 16:09:05 -08:00
Matt Brubeck
cd5918e1b9 Refactor error handling code 2020-11-21 10:44:06 -08:00
Matt Brubeck
9097318e28 Log all requests 2020-11-21 09:53:26 -08:00
Matt Brubeck
6b553afa13 Use error 53 for mismatched port 2020-11-21 09:51:28 -08:00
Matt Brubeck
b88cffb75e Tweak formatting of URLs in logs 2020-11-20 14:16:14 -08:00
Johann150
a515d508ac do not redirect on empty path
also fixed the check for a trailing slash
2020-11-20 13:45:08 -08:00
Johann150
b671ddf235
implement right status codes
Ran cargo fmt.
Implemented most recommendations of clippy.
2020-11-16 20:39:30 +01:00
Johann150
7ef914153b
add host and port checks
If the host does not match, the status code 53 should be used. But I am not sure how
to implement this best as the parse_request function only returns a String as error.
2020-11-14 11:15:30 +01:00
Tronje Krabbe
b33417198c Add some simple logging via the env_logger crate 2020-11-09 16:55:09 +01:00