Commits


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.


gotwebd: drop redundant NULL check qs is guaranteed to be not NULL reached that point.


gotwebd: remove useless comment should be placed further down, after BLOB and RSS are handled, but the call to `gotweb_render_header' is successfully clear on its own.


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: 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: fix broken navigation in commits page since 8d02314 ok tracey@


gotwebd: start using the template system ok tracey@


gotwebd: simplify bit of gotweb_process_request ok tracey


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


portable: sha1.h


gotwebd: rework gotweb_get_repo_{description,cloneurl} - use openat(2) since we've already opened the containing dir - use fstat(2) instead of multiple seeks - don't special case len == 0 ok and improvements by stsp


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


gotwebd: simplify gotweb_render_index - drops the double loop; paginate in one go - avoid lstat + got_path_dir_is_empty for each entry: use dt_type if provided by the underlying filesystem - fixes a memleak: before `continue' we need to call gotweb_free_repo_dir ok stsp


gotwebd: use prev_disp to decide when to we've reached max_repos instead of hardcoding d_i - 2 and so expecting only "." and ".." as skipped entries, use t->prev_disp that is the number of repositories traversed until now (both skipped due to the pagination and the ones actually rendered.) ok jamsek


gotwebd: fix memleak in error path ok stsp@


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@


send a newline first if erroring out in plaintext mode otherwise, the webserver might complain: 'upstream sent invalid header: "gotwebd\x20..." while reading response header from upstream' ok stsp@


gotwebd: drop needless NULL check We can assume that the querystring was initialized when we reach gotweb_render_header. ok tracey@


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: add missing closing for div tags_content reported by the W3C validator.