Commits
- Commit:
c8af7691c98d6cd5864e6c2b62642c6c3e3ca086
- From:
- Omar Polo <op@omarpolo.com>
- Date:
simplify gotwebd' server matching
Currently, if there is not a match on the server name, it attempts
to match the "subdomain" against the server names, and fall back
to the first server defined.
The server name is taken from the SERVER_NAME fastcgi' parameter,
the subdomain extracted from HTTP_HOST.
Keep only the SERVER_NAME matching, but still use the first server
defined if there's no match.
Fix the manpage documenting how matching works and drop the lie
about SNI as gotwebd doesn't do TLS but just looks at what the
upstream http server decided.
ok stsp@
- Commit:
8a078d7f1359fdf37e7bc18d6ace3c3579b98b33
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: lower log priority of unexpected disconnections
no need to be so loud when a client disconnects earlier than expected,
log it only in verbose mode. Don't log GOT_ERR_CANCELLED too since
that is only used to communicate the callers that we need to stop.
ok stsp@
- Commit:
df2d3cd2545e0a1579ce83ae137e52135755ed1f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: provide gotweb_render_page() entrypoint for all pages
simplify gotweb_process_request more, handling all the pages
inside the big switch. There's only one entrypoint for rendering
the templates gotweb_render_page() that takes the page' content
as argument.
The only real difference is that gotweb_render_index() now skips
directory entries which fails to handle.
ok tracey@
- Commit:
5add7f42e1397d136860680e1f0411db17b4f22c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: handle short reads and timeouts
If a short read happens, or if all the fastcgi record to read don't fit
in the buffer, gotwebd fails to continue reading and hits the timeout.
If this happens before gotweb_process_request is called, it will crash
in gotweb_free_transport since c->t will be NULL.
This register the event with EV_PERSIST so fcgi_request is called again
when there's more to read and guards gotweb_free_transport. It also
makes spaces for the records as soon as they're successfully parsed.
With lots of help from stsp
ok stsp@
- Commit:
1abb18e1777172a9f4149a0f50c4cecfd024f02c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: add an RSS feed for the tags
ok tracey@
- Commit:
d19d9fcec89a7d18ca8325b70f5edde7b4e6369a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: use DOCUMENT_URI rather than SCRIPT_NAME
the latter is empty when serving from a directory-like path prefix with
an httpd.conf(5) as per gotwebd(8).
ok tracey@
- Commit:
ed619ca07e51b9c984c8404ca2b1153efdb14d1e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: start using the template system
ok tracey@
- Commit:
8d02314fcaebb323c9ca3b102f8a085d66ea4633
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: percent-encode generated URLs
This adds a new helper function `gotweb_link' that outputs an HTML link
with the parameter correctly escaped.
ok stsp@
- Commit:
40a95f4f726567f73ee83d4866608f7ea0654eaa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: plug leak in fcgi_parse_params
fcgi_parse_params parses fastcgi parameters into a list. (This is a
leftover from slowcgi where that list is later used to populate the
environment of the CGI process.) However, this list is never looked at
and its memory never released, so just drop it.
Make the matching on fastcgi parameters name strictier by checking also
that the length is the one we expect; otherwise we might pick up
parameters with the same prefix string (i.e. FOO vs FOO_WITH_SUFFIX)
While here turn some bcopy into memcpy and simplify some if-nesting too.
Fix the reading from an un-initialized pointer that I introduced in a
previous commit.
ok stsp@
- Commit:
95a4a5a1e8d0952ee0d2523dc31df7170d80e0b3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: use SCRIPT_NAME to derive URLs
This makes gotwebd use SCRIPT_NAME instead of the DOCUMENT_ROOT fastcgi
param to generate the links to the assets and changes some links so
every page is consistently linked with a relative URL.
It allows to drop the `root "/"' in the location for fastcgi and, as a
bonus, also makes possible to run gotwebd on non "/" paths.
ok stsp@
- Commit:
01498c42e0fc9fb6355312a236656cf2f36cebc0
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: add fcgi_printf
instead of fcgi_gen_response which outputs only a fixed strings provide
a printf-like fcgi_printf: it greatly simplifies the generation of the
HTML pages.
While here also (probably) fix some HTML errors: the output was verified
with the W3C validator and it's correct (in the sense that the tags are
properly closed, there are still some other things the validator
complains about.)
ok/encouragement baseprime@, ok jamsek
Thanks for reading such a boring diff!
- Commit:
3ff00eade6c3b17a852658c28502edbfc83ef25b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: add a some buffering
This adds some buffering to fcgi_gen_binary_response so that we don't
end up sending too many (very) small fastcgi records.
While here also make fcgi_send_response non-void and make its errors
"sticky".
ok tracey@
- Commit:
311b7e33449ba2b480b546b8e5b79221b1539b70
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotwebd: avoid large allocation per fcgi record
while here also wrap fcgi_send_response to make sure we don't end up
trying to send a fcgi record bigger than allowed.
ok tracey@
- Commit:
7375fc126e0f55289656336c6c8160c46efaba20
- From:
- Tracey Emery <tracey@traceyemery.net>
- Date:
tweak op@ log_debug output
- Commit:
b43fa49a9931372eb6c60a9fb4bda9ac58ba9e39
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix logging of fcgi_send_response
as originally intended by tracey@