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".


render the READMEs in the tree view


gotwebd: add patch action to serve diffs in plain text


gotwebd: inline and remove IMSG_SIZE_CHECK() I always find confusing if IMSG_SIZE_CHECK() takes pointers or not, and we had at least a few instances of wrong usages, so inline (with exact size checks) and remove the macro. ok stsp@


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@


gotwebd: define constant instead of using the magic number 3 suggested by stsp@


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: garbage-collect PREVID, removed long time ago This leftover kept QSELEM__MAX bigger than the querystring_keys[] table and causes gotweb_assign_querystring to go out of bounds. Spotted on alpine (thanks to -portable.)


gotwebd: clean up sockets_create_socket a bit Instead of hardcoding the flags, keep ai_{family,socktype,protocol} from the getaddrinfo() call and apply them here. ok stsp@


gotadmin: get rid of got_sockaddr.[ch] usage It was added due to gotwebd weird structure sockaddr_storage handling. Instead, save the size reported by getaddrinfo() and not reach into the struct sockaddr_storage at all (except for extracting the port number for diagnostics purposes.) sockets_conf_new_socket_fcgi() gets an hardcoded ipproto to zero (which is the only value it can get in practice, and keeps for the moment the hardcoded SOCK_STREAM. It'll be cleaned in a follow-up. ok stsp@


gotwebd: merge host() and get_addrs(); use * instead of "" for any addr ok plus tweaks 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!)