Commit Briefs

3d4035d20d Stefan Sperling

CHANGES for 0.94 (tags/0.94)


0503e47254 Stefan Sperling

sync dist file list


ca9125dc05 Stefan Sperling

adjust expected output to make 2 failing gotd regression tests pass

The repo_write process still announces HEAD twice, once with its symref target and once with the resolved symref object hash. I cannot recall if this is deliberate but let's accept it for now to avoid test failures being flagged due to this issue, which is mostly cosmetic.


f2d60da0a9 Stefan Sperling

detect concurrent changes to the set of pack files while matching object IDs

This should prevent a use-after-free crash I observed in gotwebd. ok op@


2bde3e78a5 Omar Polo

don't ignore err in got_privsep_recv_painted_commits


56a9d3151c Omar Polo

gotwebd: fix broken signal catching due to a pasto

While here, remove completely the libevent handling of SIGPIPE in favour of the already existing signal(3) call to ignore it; there's no point in logging a SIGPIPE.


6d0030ba1d Omar Polo

fix memory leak on error in got_privsep_recv_painted_commits()

Diff from Kyle Ackerman, thank you! I've added a imsg_free() call before the break too.


16efe7a78b Omar Polo

remove 'bind interface removal' TODO item


6e0942f697 Omar Polo

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@


1632f50aca Stefan Sperling

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@


7607b8e058 Stefan Sperling

whitespace fix


8def94257d Omar Polo

gotwebd: ignore SIGPIPE in the sockets processes too


58cdb97ce8 Omar Polo

gotwebd: send a UNIQUE temp fd

main_compose_sockets() has the 'feature' of implicitly dup(2)'ing the passed file descriptior. But it's not what we need for the temp fds, since those needs to be unique per-children. debugged with stsp@


4056db6342 Omar Polo

gotwebd: don't chdir to / before spawning the child processes

allows to run gotwebd from the got checkout again.



9ec8edf7c3 Omar Polo

gotwebd: define constant instead of using the magic number 3

suggested by stsp@


b2ce80908e Omar Polo

gotwebd: make main_compose_sockets() close the fd on error

concern raised by stsp@


26678adde2 Omar Polo

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@


03e70dd4d4 Omar Polo

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@


abe89edb69 Stefan Sperling

allow gotd repo read/write processes to max out data-size resource limits

Proccessing large pack files can easily result in out-of-memory errors if the datasize limit is too conservative.


296611672d Omar Polo

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


5abbba2d46 Omar Polo

gotwebd: move log_init() call a bit earlier

Otherwise the log_warnx() call in the -D case logs to syslog.


0c64c2f803 Omar Polo

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@


cdfd248aa7 Omar Polo

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@