Commits


change got_open_blob_for_output to not look at the querystring the implicit dependency on the various variables inside the querystring makes reusing the code in got_operations.c a bit harder. Accessing a blob in the tree view for instance requires a few workaround. Instead, just take the folder^W directory, file and commit id as arguments, so they can be easily changed without hacks in the proper places. While here, support passing a NULL commit to mean "HEAD".


gotwebd: add patch action to serve diffs in plain text


refactor gotweb_load_got_path; no functional change ok tracey@


remove the gotwebd repository cache It only had 4 slots so was never quite useful, and sharing of sock->pack_fds across cached repositories seems problematic. with help from + ok op@


whitespace fix


gotwebd: get rid of proc.[ch] proc.c really shines when there's a network of different types of processes, potentially with a various number of instances each, that needs to exchange messages. Gotwebd instead has a much simpler design, and using proc.c causes more overhead (/headaches) than it solves. So, this attempts to provide the same functionalities but with a much simpler implementation that fits gotwebd better. ok stsp@


gotwebd: improve gotwebd_assign_querystring() This prevents the issues that we just hit with forgetting to remove PREVID: instead of relying on the enum value to yield the size of a table, use nitems(). Also, quit as soon as the matching key was found, no need to iterate further. ok stsp@


gotwebd: render all the datetimes in a time tag fixes an unused variable that should have been dropped in previous commit too. ok stsp@


gotwebd: inline the only use of TM_RFC822


gotwebd: move the buffering from the fastcgi layer to the template Reduces the indirection in fcgi.c, starts to make the struct template opaque, simplifies the template usage. All with a net negative :-) reads fine to stsp@ (thanks!)


gotwebd: fix branches modification time with show_repo_age off If show_repo_age is set to off, got_get_repo_age() returns without setting the timestamp. got_get_repo_age() is also used by the branch listing to show how old they are however, and we end up rendering the stack garbage. Instead, respect `show_repo_age off' one layer above, and always return a timestamp in got_get_repo_age(). While here, initialize the timestamp to zero so it's set also in case of failures. Issue reported on IRC by xs, thanks!


bubble up got_repo_commits() now that got_get_repo_commits() doesn't look at `action' we can stop fetching the commits during the rendering and bubble up the call. This yields better error messages and better replies codes on failure.


simplify gotwebd' server matching Currently, if there is not a match on the server name, it attempts to match the "subdomain" against the server names, and fall back to the first server defined. The server name is taken from the SERVER_NAME fastcgi' parameter, the subdomain extracted from HTTP_HOST. Keep only the SERVER_NAME matching, but still use the first server defined if there's no match. Fix the manpage documenting how matching works and drop the lie about SNI as gotwebd doesn't do TLS but just looks at what the upstream http server decided. ok stsp@


retire GOT_ERR_QUERYSTRING it's redundant with GOT_ERR_BAD_QUERYSTRING; convert its only use to the latter.


dropping unnecessary strlen()s ok jamsek, stsp