Commit graph

274 commits

Author SHA1 Message Date
craff
6ccd8314a3 Unix.accept may raise an exception (typicall Unix.EINTR, even with sigpipe blocked ?)
This avoids the server to stop
2021-11-29 15:35:41 -10:00
Simon Cruanes
a58372b9a7
add a @since 2021-09-25 15:35:57 -04:00
Simon Cruanes
0e05b8cac6
Update src/Tiny_httpd.ml 2021-09-25 14:41:42 -04:00
Yawar Amin
8414efc3e0 Adjust implementation
Only do things that are relevant for binding a socket if we actually
should.
2021-09-25 02:03:28 -04:00
Yawar Amin
ce61ac2afd feat: allow socket activation
This enables passing in an existing socket e.g. from systemd,[1] instead
of creating a new socket when running the server.

[1] https://github.com/juergenhoetzel/ocaml-systemd
2021-09-25 01:41:32 -04:00
Simon Cruanes
9961bd1b29 prepare for 0.9 2021-07-18 00:07:43 -04:00
Simon Cruanes
95d9bd10ef fix: do not set content-length for server-sent events 2021-07-17 22:09:45 -04:00
Simon Cruanes
62d583553e allow extra headers in server-sent events 2021-07-17 22:09:45 -04:00
Simon Cruanes
17d8f37c93 feat: remove async for now, finish server sent events 2021-07-17 22:09:45 -04:00
Simon Cruanes
2e0f08366f wip: feat: server-sent events, and asynchronous handlers 2021-07-16 01:12:39 -04:00
Simon Cruanes
91e9323671 doc 2021-07-15 23:47:31 -04:00
Simon Cruanes
19cbda8571 test is only for tiny_httpd 2021-06-02 21:06:38 -04:00
Simon Cruanes
8a914448c9 avoid dune stanza for inline tests
simpler to just do the testing ourselves
2021-06-02 15:39:50 -04:00
Simon Cruanes
ff5795c389 workaround for css/js in http_of_dir 2021-06-01 09:59:55 -04:00
Anurag Soni
6b57540b50
Validate header key's character set (#15)
* Validate header key's character set
2021-05-14 12:10:33 -04:00
Simon Cruanes
2340cf0bf7 chore: tell dune to stop pestering with warn-error 2021-05-03 13:23:56 -04:00
Simon Cruanes
ddd337cc61 perf: simpler parsing of headers 2021-05-03 12:39:19 -04:00
Simon Cruanes
06ef1fc787 ci stuff 2021-02-01 11:15:49 -05:00
Simon Cruanes
07d479c305 chore: try to fix the freakin CI 2021-01-27 10:50:38 -05:00
Simon Cruanes
21f4743320 fix(urlencode): encode non ascii chars 2020-12-15 22:16:33 -05:00
Simon Cruanes
70f1205880 doc: fix examples 2020-12-08 00:26:08 -05:00
Simon Cruanes
e267838d23 fix doc 2020-11-17 14:32:45 -05:00
Simon Cruanes
a35b063d41 prepare for 0.7 2020-11-17 10:45:13 -05:00
Simon Cruanes
2a955bcbb4 feat: add rest_of_path_urlencoded and rename rest to rest_of_path 2020-11-17 10:43:05 -05:00
Simon Cruanes
9dd94b0158 fix: use the request path when redirecting to index.html 2020-11-17 09:50:47 -05:00
Simon Cruanes
39671d62e4 feat(http_of_dir): redirect to index.html if present 2020-11-17 09:43:13 -05:00
Simon Cruanes
c6d5c9a40f fix(http_of_dir): do not url-encode paths with / 2020-11-17 09:16:46 -05:00
Simon Cruanes
2ed9131bdc feat: add Route.rest to match the rest of the path 2020-11-17 09:16:28 -05:00
Simon Cruanes
aa66e172e8 feat: printing routes 2020-08-04 19:16:15 -04:00
Simon Cruanes
a679ddf1d1 style 2020-08-03 21:40:42 -04:00
Simon Cruanes
13dca59afd fix doc 2020-05-28 21:23:10 -04:00
Simon Cruanes
3ac5510e2d prepare for 0.6 2020-05-28 21:20:09 -04:00
Simon Cruanes
6e54ee69b5 fix: avoid spamming response 2020-05-27 22:30:50 -04:00
Simon Cruanes
6d01b5347e fix: do not output a content-length for a chunked response 2020-05-27 22:25:13 -04:00
Simon Cruanes
fdd97744e0 feat: use chunked encoding for large string responses, too 2020-05-27 22:16:36 -04:00
Simon Cruanes
020dd056ac fix(zip) 2020-05-27 21:40:38 -04:00
Simon Cruanes
bbe8d1c504 refactor(echo): simplify code, use gzip aggressively 2020-05-27 21:40:20 -04:00
Simon Cruanes
4f730ec7b6 fix: set transfer-encoding header when returning a chunked stream 2020-05-27 21:39:43 -04:00
Simon Cruanes
4a83a2f07f fix(zip): handle case where camlzip consumes 0 bytes 2020-05-27 21:27:25 -04:00
Simon Cruanes
4300e8dcf0 feat(gzip): also compress string responses if they're big 2020-05-27 20:29:55 -04:00
Simon Cruanes
b640c0da30 feat: add Route.t construct, deprecate scanf, add more structured path
- Request now contains a path split into components
- Request now contains the query part already transformed into an assoc list
- Route.t uses a simple GADT for mapping `/`-split paths into routes,
  passing some components of type string or int to the handler
- deprecate scanf-based routing, as being too error prone
2020-05-27 19:56:23 -04:00
Simon Cruanes
eaa2c9b3b7 accept http1.0 2020-05-27 13:23:02 -04:00
Simon Cruanes
5c56cb7f1e debug msg 2020-05-27 13:11:32 -04:00
Simon Cruanes
1d309abca6 prepare for 0.5 2020-03-25 23:26:03 -04:00
Simon Cruanes
4023a5ab79 fix: use content-encoding: deflate when returning compressed content
the RFCs don't mandate it but it seems like chrome and firefox only
understand that.
2020-03-25 23:23:06 -04:00
Simon Cruanes
64df8616f9 style: fix example 2020-03-25 23:23:06 -04:00
Simon Cruanes
ab90f09e2c small fix 2020-03-25 23:23:06 -04:00
Simon Cruanes
e8ed0afe47 fix: parse transfer-encoding properly 2020-03-25 23:23:06 -04:00
Simon Cruanes
65f8f957bd example: update echo so it can use camlzip, and serves files 2020-03-25 23:23:06 -04:00
Simon Cruanes
9d6f4d25cf fix(camlzip): proper handling of transfer-encoding for deflate 2020-03-25 23:23:06 -04:00