Commit Briefs

Thomas Adam

gotwebd: templateify gotweb_render_diff

ok tracey@; rebased after recent changes.


Thomas Adam

gotwebd: templateify gotweb_render_tag

ok tracey@


Thomas Adam

gotwebd: templateify gotweb_render_tags

ok tracey@


Thomas Adam

backout 169b163113a6db9878c9166aa05fbd30d05eb832

pushed by mistake, wasn't reviewed.


Thomas Adam

gotwebd: templateify gotweb_render_diff

To avoid calling functions from got_operations.c directly from a template (which would hide the error), change got_output_repo_diff into got_open_diff_for_output that returns a file with the diff in it, to be then rendered by the template. got_gotweb_flushfile needs to be exposed then. It also bundles a smaller change: the `label' argument of got_repo_match_object_id is optional and not used, so just pass NULL there.


Thomas Adam

gotwebd: templateify gotweb_render_tree

ok tracey@


Thomas Adam

gotwebd: render BLOB inline, add BLOBRAW for serving raw blobs

binary blobs are automatically redirected to the BLOBRAW page (which is the old BLOB.) ok jamske


Thomas Adam

change gotweb_render_content_type argument type to const char *

it's a string, `const char *' is fine (and what all the callers use anyway.)


Thomas Adam

gotwebd: use Content-Disposition for RSS; sets the filename

Since gotwebd serves the RSS from a path without a file name component, browsers just make up a random string to give the file a name which can be confusing. Furthermore, since it's served as application/rss+xml they try to render the XML (failing.) Use gotweb_render_content_type_file (which sets the Content-Disposition HTTP header) to fix both: the feed is now called <repo-name>.rss and set as attachment (thus saved and not rendered.) Change the function to take an optional filename suffix for the occasion. ok jamsek


Thomas Adam

gotwebd: tweak gotweb_render_content_type_file parameters type

`type' and `file' are strings so use `const char *' for both.


Thomas Adam

portable: gotwebd: use template

This updates -portable's gotwebd instance to make use of the new templating engine.


Thomas Adam

gotwebd: add an RSS feed for the tags

ok tracey@


Thomas Adam

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@


Thomas Adam

gotwebd: templateify gotweb_render_commits

ok tracey@


Thomas Adam

gotwebd: templateify gotweb_render_navs

ok tracey@


Thomas Adam

gotwebd: drop index_page_str and page_str

gotwebd uses sprintf to update index_page_str and page_str if they were negative. While this specific usage is safe, let's drop it. Since the index_page_str and page_str fields are never read from, remove them. This saves two allocations per request too. ok tracey@


Thomas Adam

gotwebd: start using the template system

ok tracey@


Thomas Adam

gotwebd: provide maximum value for the description and cloneurl

ok stsp@


Thomas Adam

gotwebd: drop unused path parameter from got_get_repo_{owner,age}

ok jamsek


Thomas Adam

add respect_exportok flag, defaulting to off

allows to hide repositories if they have the magic git-daemon-export-ok file ok op@ tracey@ stsp@


Thomas Adam

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@


Thomas Adam

gotwebd: shrink struct server

keeping GOTWEBD_REPO_CACHESIZE * sizeof(struct cache_repo) inside the struct server makes it too large for imsg on some platforms (linux at least.) Instead, store a pointer and allocate the array when it's received on the child processes. ok stsp@


Thomas Adam

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@



Thomas Adam

make gotwebd cache open repository handles in struct server

ok op@