Commit Briefs
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
gotd: allow to express timeouts using minutes/hours
This allows to use a suffix to indicate the unit of measure, such as "1h" for one hour or "30m" for 30 minutes. The suffix "s" for seconds is also accepted for completeness. ok stsp
enforce gotd request timeout > 0; the code doesn't handle zero right now
spotted by + ok op@
gotwebd: tweak gotweb_render_content_type_file parameters type
`type' and `file' are strings so use `const char *' for both.
add conf_limit_user_connection prototype at the top of parse.y
different yacc implementations (e.g. GNU bison) may put the various parts in a different order, and so the definition of the function may not be visible in the generated code.
introduce connection options to gotd.conf
Allow administrators to tweak the default authentication and request timeouts if needed, and to tweak the limit of concurrent connections for specific user accounts. with several tweaks from and ok op@
make 'tog log' display the committer handle by default, '@' switches to author
People coming from CVS might not expect names of patch contributers to show up in commit history listings, so make things easy for them. discussed with op@
gotd.conf: treat repositories without any parameters as a syntax error
Because gotd expects some parameters to be present they must not be optional at the syntax level.
adjust the first gotwebd.8 httpd.conf example to work out of the box
gotwebd defaults to listening on a unix socket, and this man page aims to provide an appropriate configuration snippet in EXAMPLES. suggested by Paul Wrankin via gameoftrees IRC
fix previous; name must be initialized
otherwise if binaryfilename fails to match the line, `name' may be left pointing to free'd memory.
got patch: handle the removal of binary files
Diffs that remove binary files don't have hunks so got patch would skip over them, treating that part of the diff as "noise". Different programs outputs a slightly different diff for this kind of patches, but the "Binary files ... and /dev/null differ" is usually shown, so try to match it. The adedd regress test covers got diff, git diff, and OpenBSD' /usr/bin/diff. CVS diffs will currently fail because the guessed file name will be wrong. CVS prints the file name in the Index and RCS lines which got patch currently ignores, and shows an useless path in the "Binary files /tmp/cvs... and /dev/null differ" line. Discussed with and ok stsp@
gotwebd: print commit message too in gotweb_render_commits
Regression from 156a1144 spotted by stsp, thanks!
enforce a per-uid connection limit in the gotd listen process
For now the limit is set at compile-time. It will become configurable via gotd.conf soon. ok op@
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.
convert gotd repo_read.c and repo_write.c to single-client
Because these processes are now started on demand per client connection there is no need to keep track of multiple clients anymore. Also, these processes can now exit when a disconnect event is received. ok op, jamsek