diff options
author | Jeff Hostetler <jeffhost@microsoft.com> | 2021-03-15 21:08:25 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-03-15 21:32:51 (GMT) |
commit | 55144ccb0ac48bd2db0b907a8e8123b2befe83d1 (patch) | |
tree | 26f202024706ff1ff2c6fcfa3a3dd82a11193250 /unix-socket.c | |
parent | 4f98ce586542a9fc1a2f4b5633dc7edc8922fa8f (diff) | |
download | git-55144ccb0ac48bd2db0b907a8e8123b2befe83d1.zip git-55144ccb0ac48bd2db0b907a8e8123b2befe83d1.tar.gz git-55144ccb0ac48bd2db0b907a8e8123b2befe83d1.tar.bz2 |
unix-socket: add backlog size option to unix_stream_listen()
Update `unix_stream_listen()` to take an options structure to override
default behaviors. This commit includes the size of the `listen()` backlog.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'unix-socket.c')
-rw-r--r-- | unix-socket.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/unix-socket.c b/unix-socket.c index 69f81d6..012becd 100644 --- a/unix-socket.c +++ b/unix-socket.c @@ -1,6 +1,8 @@ #include "cache.h" #include "unix-socket.h" +#define DEFAULT_UNIX_STREAM_LISTEN_BACKLOG (5) + static int chdir_len(const char *orig, int len) { char *path = xmemdupz(orig, len); @@ -89,9 +91,11 @@ fail: return -1; } -int unix_stream_listen(const char *path) +int unix_stream_listen(const char *path, + const struct unix_stream_listen_opts *opts) { int fd = -1, saved_errno; + int backlog; struct sockaddr_un sa; struct unix_sockaddr_context ctx; @@ -106,7 +110,10 @@ int unix_stream_listen(const char *path) if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0) goto fail; - if (listen(fd, 5) < 0) + backlog = opts->listen_backlog_size; + if (backlog <= 0) + backlog = DEFAULT_UNIX_STREAM_LISTEN_BACKLOG; + if (listen(fd, backlog) < 0) goto fail; unix_sockaddr_cleanup(&ctx); |