Commit Briefs

Omar Polo

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@


Omar Polo

gotwebd: fix broken navigation in commits page since 8d02314

ok tracey@


Omar Polo

gotwebd: start using the template system

ok tracey@


Omar Polo

gotwebd: simplify bit of gotweb_process_request

ok tracey


Omar Polo

gotwebd: provide maximum value for the description and cloneurl

ok stsp@


Omar Polo

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


Omar Polo

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

ok jamsek


Omar Polo

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


Omar Polo

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


Omar Polo

gotwebd: fix memleak in error path

ok stsp@


Landry Breuil

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@


Landry Breuil

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@


Omar Polo

gotwebd: drop needless NULL check

We can assume that the querystring was initialized when we reach gotweb_render_header. ok tracey@


Omar Polo

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@


Omar Polo

gotwebd: add missing closing for div tags_content

reported by the W3C validator.


Omar Polo

gotwebd: fix page title

due to an error in the order of the arguments to fcgi_printf that I've introduced last time I touched gotweb_render_header the title is now "/" (or SCRIPT_NAME) and one assets (the safari pinned tab svg) is a funny URL :)


Omar Polo

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@


Omar Polo

gotwebd: percent-decode the received query string

ok stsp@


Omar Polo

gotwebd: free age and reflist in gotweb_render_branches

ok stsp@


Omar Polo

gotwebd: free scandir(3) result in gotweb_render_index

ok stsp@



Omar Polo

gotwebd: fix leak in gotweb_init_querystring in error path

if strdup fails we fail to free the querystring Found by clang' scan-build.


Omar Polo

gotwebd: add missing fcgi_printf return check

dead store found by clang' scan-build.


Omar Polo

gotwebd: fix assets URLs

In 95a4a5a1e8d0952ee0d2523dc31df7170d80e0b3 I forgot to fix the links for the favicons and the web manifest.


Stefan Sperling

fix regression in gotweb_free_repo_tag(): free(...): modified chunk-pointer

problem introduced in commit 625e5896fc9ecf87ccfc92ad2a65cd3be58f73c0