diff options
author | Alex Harpin <development@landsofshadow.co.uk> | 2015-10-02 07:43:42 +0100 |
---|---|---|
committer | Alex Harpin <development@landsofshadow.co.uk> | 2015-10-02 07:43:42 +0100 |
commit | ef5ae91676c8ada2a12ea72f889a54452dd94981 (patch) | |
tree | 0a962905ab9d0c2322f627928521a10c4cb5e20f /src/local.c | |
parent | 9f9a63cecdc6ac4f449d3eacda6c591f0de9fbf3 (diff) | |
parent | 8845f3db20c951fcf1db3229a818cfd185f17f2e (diff) | |
download | conntrack-tools-ef5ae91676c8ada2a12ea72f889a54452dd94981.tar.gz conntrack-tools-ef5ae91676c8ada2a12ea72f889a54452dd94981.zip |
Merge remote-tracking branch 'source/master' into upstreamupstream
Diffstat (limited to 'src/local.c')
-rw-r--r-- | src/local.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/local.c b/src/local.c index feff608..3395b4c 100644 --- a/src/local.c +++ b/src/local.c @@ -77,7 +77,7 @@ int do_local_server_step(struct local_server *server, void *data, int rfd; struct sockaddr_un local; socklen_t sin_size = sizeof(struct sockaddr_un); - + rfd = accept(server->fd, (struct sockaddr *) &local, &sin_size); if (rfd == -1) return -1; @@ -117,11 +117,10 @@ void local_client_destroy(int fd) int do_local_client_step(int fd, void (*process)(char *buf)) { - int numbytes; char buf[1024]; memset(buf, 0, sizeof(buf)); - while ((numbytes = recv(fd, buf, sizeof(buf)-1, 0)) > 0) { + while (recv(fd, buf, sizeof(buf)-1, 0) > 0) { buf[sizeof(buf)-1] = '\0'; if (process) process(buf); @@ -148,11 +147,14 @@ int do_local_request(int request, ret = send(fd, &request, sizeof(int), 0); if (ret == -1) - return -1; + goto err1; do_local_client_step(fd, step); local_client_destroy(fd); - + return 0; +err1: + local_client_destroy(fd); + return -1; } |