diff options
author | Runxi Yu <me@runxiyu.org> | 2025-02-17 12:20:23 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-02-17 12:20:23 +0800 |
commit | 1d6200af164a2e7fe21b3f2bdadb3373dadae76c (patch) | |
tree | e2ef666e267d4f1a189337c5ecbff9070eb7df14 /git_hooks_client/git_hooks_client.c | |
parent | database.go: Merge name_desc_t; remove misc.go (diff) | |
download | forge-1d6200af164a2e7fe21b3f2bdadb3373dadae76c.tar.gz forge-1d6200af164a2e7fe21b3f2bdadb3373dadae76c.tar.zst forge-1d6200af164a2e7fe21b3f2bdadb3373dadae76c.zip |
git_hooks_client.c: Get return value from unix socket
Diffstat (limited to 'git_hooks_client/git_hooks_client.c')
-rw-r--r-- | git_hooks_client/git_hooks_client.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/git_hooks_client/git_hooks_client.c b/git_hooks_client/git_hooks_client.c index 01af196..9050181 100644 --- a/git_hooks_client/git_hooks_client.c +++ b/git_hooks_client/git_hooks_client.c @@ -68,6 +68,25 @@ int main(void) { return EXIT_FAILURE; } + char status_buf[1]; + ssize_t bytes_read = read(sock, status_buf, 1); + switch (bytes_read) { + case -1: + perror("read"); + close(sock); + return EXIT_FAILURE; + case 0: + dprintf(STDERR_FILENO, "fatal: unexpected EOF on internal socket\n"); + close(sock); + return EXIT_FAILURE; + case 1: + break; + default: + dprintf(STDERR_FILENO, "fatal: read returned unexpected value on internal socket\n"); + close(sock); + return EXIT_FAILURE; + } + close(sock); - return EXIT_SUCCESS; + return *status_buf; } |