Commits


gotwebd: templateify gotweb_render_tree ok tracey@


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


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.)


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


gotwebd: tweak gotweb_render_content_type_file parameters type `type' and `file' are strings so use `const char *' for both.


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


gotwebd: add an RSS feed for the tags ok tracey@


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@


gotwebd: templateify gotweb_render_commits ok tracey@


gotwebd: templateify gotweb_render_navs ok tracey@


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@


gotwebd: start using the template system ok tracey@


gotwebd: provide maximum value for the description and cloneurl ok stsp@


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


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@


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@


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@


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@


gotwebd: garbage collect the now unused GOTWEB_GOT_DIR


make gotwebd cache open repository handles in struct server ok op@


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@


remove fcgi_socket keyword from gotwebd.conf; "listen on" now implies it ok op@


allow multiple "listen on" statements per server in gotwebd.conf ok tracey


gotwebd: struct socket_conf can only use a single address, so don't use a list ok tracey


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!