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


gotwebd: rework got_output_file_blob, no functional change can now use got_object_blob_is_binary to simplify the logic. ok stsp@


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: add an RSS feed for the tags ok tracey@


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


make got_commit_graph_iter_next use caller-provided storage for the id and adjust the callers. discussed with and ok stsp@


gotwebd: fix briefs navigation broken in 4a9629420 got_get_repo_commits iterates over the commits and build a queue for later display. My previous memleak fix moved the TAILQ_INSERT_TAIL *before* the logic to exit the loop and so it broke the pagination. This fixes it by delaying the insertion into the queue, but also by moving the check for the "previous" button after we've opened the commit. 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: plug leak in got_output_repo_tree


gotwebd: fix usage of the commit graph iter got_get_repo_commits mixes ids allocated on the heap and the one returned by the iter_next in the same variable, and then even attemp to free it. This is both a leak (we loose the pointer to the previously allocated id) and a possible invalid free since the object id pointer returned by the graph iterator is not to be passed to free(3). part of a bigger diff that's ok stsp@


gotwebd: free obj_id and reflist in got_output_file_blame ok stsp@


gotwebd: got_output_file_blame: free lines on error path ok stsp@


gotwebd: free eline in got_gotweb_blame_cb loop ok stsp@


gotwebd: drop superfluous check commit_id is not NULL if got_repo_match_object_id returned successfully. ok stsp@


gotwebd: kill unused id_str in got_output_repo_tree ok stsp@


gotwebd: avoid extra strdups in got_output_repo_tree ok stsp@


gotwebd: avoid extra variable in got_output_repo_tree in_repo_path was used only to build a path, it's then assigned to path (which is NULL at that point.) Just asprintf into path. ok stsp@


gotwebd: plugs leaks in got_get_repo_commits call got_get_repo_commit only once and avoid leaking the field of repo_commit at each loop iteration. ok stsp@


gotwebd: free in_repo_path in got_get_repo_commits; ok stsp@


gotwebd: always free ref in got_get_repo_commits some code-paths may leak it. ok stsp@


gotwebd: don't close tag in got_get_repo_tags too early it's still used a bit later, so defer the free'ing at the next loop iteration or at function end.


gotwebd: free commit_msg0 only at the end of got_get_repo_tags in case of a failure between when it's allocated and when it's released it might get leaked otherwise. ok and semplification stsp@


gotwebd: plug some leaks in got_get_repo_tags ok stsp@


gotwebd: free all allocated fields of repo_tag got_get_repo_tags needs some tweaking to how tag_commit is allocated too. ok stsp@