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
Matt Brubeck
713c8ca837
Code cleanup
2020-07-27 15:59:02 -07:00
Matt Brubeck
2c4118b590
Switch from tree_magic to mime_guess
2020-07-22 08:33:04 -07:00
Matt Brubeck
2cc5f791aa
Code cleanup
2020-07-16 08:57:57 -07:00
Matt Brubeck
c12b2ab656
Factor out response code
2020-06-28 15:08:31 -07:00
Matt Brubeck
29fddfe41e
Minor cleanup
2020-06-20 12:14:07 -07:00
Matt Brubeck
b25da60e10
Make usage output friendlier
2020-06-20 11:16:41 -07:00
Matt Brubeck
95f03cf143
Never read whole file into memory
2020-06-20 10:30:43 -07:00
Matt Brubeck
76bbfafee5
Minor cleanup
2020-06-20 10:02:36 -07:00
Matt Brubeck
59c921c5d5
Switch to fork of tree_magic
2020-06-10 08:42:57 -07:00
Matt Brubeck
7899d9addb
Change file extension from .gemini to .gmi
2020-06-07 08:53:32 -07:00
Matt Brubeck
2632bf14be
Minor cleanup
2020-05-22 19:13:27 -07:00
Matt Brubeck
798506a03c
Fix error message when request is too long
2020-05-22 19:08:00 -07:00
Matt Brubeck
7588b23fcb
Switch from lazy_static to once_cell
2020-05-22 19:03:41 -07:00
Matt Brubeck
8e13714011
comments
2020-05-22 18:37:55 -07:00
Matt Brubeck
cac7e394be
Minor cleanup in parse_request
2020-05-22 15:26:16 -07:00
Matt Brubeck
a049beb66b
Improved request parsing.
...
Only read up to 1024 bytes plus CRLF. This avoids allocations and
copies, and prevents malicious/buggy clients from making us allocate
unbounded amounts of memory.
We also stop if we see a lone LF, rather than timing out until CRLF is
received.
2020-05-22 08:45:58 -07:00
Matt Brubeck
039057b8db
Improve request parsing
2020-05-22 08:32:44 -07:00
Matt Brubeck
ce570fc8c4
Auto-detect MIME types
2020-05-21 15:29:04 -07:00
Matt Brubeck
6f490876cd
Check URL schemes
2020-05-21 10:36:49 -07:00
Matt Brubeck
3a41f40775
Redirect on URLs without trailing slash
2020-05-21 10:11:49 -07:00