summaryrefslogtreecommitdiff
path: root/daemon.c
Commit message (Collapse)AuthorAgeFilesLines
* Create object subdirectories on demandLinus Torvalds2005-10-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it possible to have a "sparse" git object subdirectory structure, something that has become much more attractive now that people use pack-files all the time. As a result of pack-files, a git object directory doesn't necessarily have any individual objects lying around, and in that case it's just wasting space to keep the empty first-level object directories around: on many filesystems the 256 empty directories will be aboue 1MB of diskspace. Even more importantly, after you re-pack a project that _used_ to be unpacked, you could be left with huge directories that no longer contain anything, but that waste space and take time to look through. With this change, "git prune-packed" can just do an rmdir() on the directories, and they'll get removed if empty, and re-created on demand. This patch also tries to fix up "write_sha1_from_fd()" to use the new common infrastructure for creating the object files, closing a hole where we might otherwise leave half-written objects in the object database. [jc: I unoptimized the part that really removes the fan-out directories to ease transition. init-db still wastes 1MB of diskspace to hold 256 empty fan-outs, and prune-packed rmdir()'s the grown but empty directories, but runs mkdir() immediately after that -- reducing the saving from 150KB to 146KB. These parts will be re-introduced when everybody has the on-demand capability.] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Move signal setting into service_loop()H. Peter Anvin2005-09-301-2/+2
|
* socklen_t is unsigned int on most Linux platformsH. Peter Anvin2005-09-301-1/+1
|
* Use xmalloc/xcallocH. Peter Anvin2005-09-301-6/+2
|
* Don't need <alloca.h>H. Peter Anvin2005-09-301-1/+0
|
* Merge with master.kernel.org:/pub/scm/git/git.gitH. Peter Anvin2005-09-301-2/+2
|\
| * [PATCH] Make logerror() and loginfo() staticPavel Roskin2005-09-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | Make logerror() and loginfo() static logerror() and loginfo() in daemon.c are never declared and never called from other files, therefore they should be declared static. Found by sparse. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Remove variables not needed when using pollPeter Anvin2005-09-281-4/+0
| |
* | NO_IPV6 support for git daemonPeter Anvin2005-09-281-16/+75
|/
* Restore chdir(".git")H. Peter Anvin2005-09-271-0/+2
|
* Support a modicum of path validation, and allow an export all trees option.H. Peter Anvin2005-09-261-5/+67
|
* [PATCH] Rename daemon.c's lognotice() to loginfo()Petr Baudis2005-09-241-3/+3
| | | | | | | | The syslog code logs with severity LOG_INFO in the loginfo() function, so make things less confusing. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] git-daemon --syslog to log through syslogPetr Baudis2005-09-241-7/+27
| | | | | | | | | | | | Well, this makes it even more clear that we need the packet reader and friends to use the daemon logging code. :/ Therefore, we at least indicate in the "Disconnect" log message if the child process exitted with an error code or not. Idea by Linus. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* daemon.c: pid_t is not int.Junio C Hamano2005-09-231-1/+1
| | | | | | Reported by Morten Welinder <mwelinder@gmail.com>. Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] Verbose git-daemon loggingPetr Baudis2005-09-221-4/+90
| | | | | | | | | | | | | | | This patch makes git-daemon --verbose log some useful things on stderr - in particular connects, disconnects and upload requests, and in such a way to be able to trace a particular session. Some more errors are now also logged (even when --verbose is not passed). It is still not perfect since messages produced by the non-daemon-specific code are obviously not formatted properly. [jc: With minor fix up in the log line truncation, and use of write(2) as suggested by Linus.] Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Use int instead of socklen_tJunio C Hamano2005-09-111-4/+4
| | | | | | | | | | | | | | This should work around the compilation problem Johannes Schindelin and others had on Mac OS/X. Quoting Linus: Any operating system where socklen_t is anything else than "int" is terminally broken. The people who introduced that typedef were confused, and I actually had to argue with them that it was fundamentally wrong: there is no other valid type than "int" that makes sense for it. Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] git-daemon --inetdlars.doelle@on-line.de2005-09-071-1/+3
| | | | | | | | | | | | git-daemon using inetd. does not work properly. inetd routes stderr onto the network line just like stdout, which was apparently not expected to be so. As the result of this, the stream is closed by the receiver, because some "Packing %d objects\n" originating from pack_objects is first reported over the line instead of the expected pack_header, and so the SIGNATURE test fails. Here is a workaround. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Include sys/time.h in daemon.c.Jason Riedy2005-08-231-0/+1
| | | | | | | Some systems and feature levels want sys/time.h for fd_set functionality. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu>
* daemon.c: squelch error message from EINTRJunio C Hamano2005-08-051-2/+5
| | | | | | | | | | | | | | | Every time after servicing the connection, select() first fails with EINTR and ends up waiting for one second before serving the next client. The sleep() was placed by the original author per suggestion from the list to avoid spinning on failing select, but at least this EINTR situation should not result in "at most one client per second" service limit. I am not sure if this is the right fix, but WTH. The king penguin says that serious people would run the daemon under inetd anyway, and I agree with that. Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] Fix sparse warningsLinus Torvalds2005-08-011-2/+2
| | | | | | | | | | A few sparse warnings have crept in again since I checked last time: undeclared variables with global scope. Fix them by marking the private variables properly "static". Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] GIT: Listen on IPv6 as well, if available.YOSHIFUJI Hideaki2005-07-271-31/+100
| | | | | Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Be slightly smarter about git-daemon client shutdownLinus Torvalds2005-07-151-20/+38
| | | | | | Shut down connections that haven't even identified themselves as git clients first. That should get rid of people who just connect to the port and wait for something to happen.
* git-daemon: actually remember the children we have outstandingLinus Torvalds2005-07-151-21/+121
| | | | | | | | This is using a lockless approach that allows us to handle children dying without having to block SIGCHLD. Right now our "solution" to too many kids is pretty damn rough, but it at least shows what you can do.
* git-daemon: keep track of childrenLinus Torvalds2005-07-151-1/+43
| | | | | We don't want them as zombies, and eventually we'll want to limit their number. Right now we just count them.
* Add "--inetd" flag to git-daemonLinus Torvalds2005-07-151-1/+11
| | | | | All credit go to Alexey Nezhdanov <snake@penza-gsm.ru>, I just ended up re-implementing his idea.
* git-daemon: re-organize code a bit for --inetd flagLinus Torvalds2005-07-151-10/+10
| | | | | | | Alexey Nezhdanov sent a patch that made git-daemon usable from inetd (ie where inetd has already done the accept on the new connection, the fork, and the setup of stdin/stdout). I wanted to organize the thing slightly differently, though.
* Add a "git-daemon" that listens on a TCP portLinus Torvalds2005-07-131-0/+117
.. and does a "git-upload-pack" on demand.