unix-socket: eliminate static unix_stream_socket() helper function
The static helper function `unix_stream_socket()` calls `die()`. This is not appropriate for all callers. Eliminate the wrapper function and make the callers propagate the error. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
59c7b88198
commit
4f98ce5865
@ -1,14 +1,6 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "unix-socket.h"
|
#include "unix-socket.h"
|
||||||
|
|
||||||
static int unix_stream_socket(void)
|
|
||||||
{
|
|
||||||
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
|
||||||
if (fd < 0)
|
|
||||||
die_errno("unable to create socket");
|
|
||||||
return fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int chdir_len(const char *orig, int len)
|
static int chdir_len(const char *orig, int len)
|
||||||
{
|
{
|
||||||
char *path = xmemdupz(orig, len);
|
char *path = xmemdupz(orig, len);
|
||||||
@ -73,13 +65,16 @@ static int unix_sockaddr_init(struct sockaddr_un *sa, const char *path,
|
|||||||
|
|
||||||
int unix_stream_connect(const char *path)
|
int unix_stream_connect(const char *path)
|
||||||
{
|
{
|
||||||
int fd, saved_errno;
|
int fd = -1, saved_errno;
|
||||||
struct sockaddr_un sa;
|
struct sockaddr_un sa;
|
||||||
struct unix_sockaddr_context ctx;
|
struct unix_sockaddr_context ctx;
|
||||||
|
|
||||||
if (unix_sockaddr_init(&sa, path, &ctx) < 0)
|
if (unix_sockaddr_init(&sa, path, &ctx) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
fd = unix_stream_socket();
|
fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
if (fd < 0)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
if (connect(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0)
|
if (connect(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
unix_sockaddr_cleanup(&ctx);
|
unix_sockaddr_cleanup(&ctx);
|
||||||
@ -87,15 +82,16 @@ int unix_stream_connect(const char *path)
|
|||||||
|
|
||||||
fail:
|
fail:
|
||||||
saved_errno = errno;
|
saved_errno = errno;
|
||||||
|
if (fd != -1)
|
||||||
|
close(fd);
|
||||||
unix_sockaddr_cleanup(&ctx);
|
unix_sockaddr_cleanup(&ctx);
|
||||||
close(fd);
|
|
||||||
errno = saved_errno;
|
errno = saved_errno;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int unix_stream_listen(const char *path)
|
int unix_stream_listen(const char *path)
|
||||||
{
|
{
|
||||||
int fd, saved_errno;
|
int fd = -1, saved_errno;
|
||||||
struct sockaddr_un sa;
|
struct sockaddr_un sa;
|
||||||
struct unix_sockaddr_context ctx;
|
struct unix_sockaddr_context ctx;
|
||||||
|
|
||||||
@ -103,7 +99,9 @@ int unix_stream_listen(const char *path)
|
|||||||
|
|
||||||
if (unix_sockaddr_init(&sa, path, &ctx) < 0)
|
if (unix_sockaddr_init(&sa, path, &ctx) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
fd = unix_stream_socket();
|
fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
if (fd < 0)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0)
|
if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -116,8 +114,9 @@ int unix_stream_listen(const char *path)
|
|||||||
|
|
||||||
fail:
|
fail:
|
||||||
saved_errno = errno;
|
saved_errno = errno;
|
||||||
|
if (fd != -1)
|
||||||
|
close(fd);
|
||||||
unix_sockaddr_cleanup(&ctx);
|
unix_sockaddr_cleanup(&ctx);
|
||||||
close(fd);
|
|
||||||
errno = saved_errno;
|
errno = saved_errno;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user