summaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'server.c')
-rw-r--r--server.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/server.c b/server.c
index cf66001..5025f18 100644
--- a/server.c
+++ b/server.c
@@ -230,13 +230,13 @@ server_local_open(struct cfg *cfg, struct server *scfg, struct server_local *loc
sfd = socket(local->local.storage.ss_family, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (sfd < 0) {
error("socket: %m");
- goto out;
+ goto error;
}
option = true;
if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option)) < 0) {
error("setsockopt: %m");
- goto out;
+ goto error;
}
/* The MC protocol expects the client to send data first */
@@ -255,20 +255,20 @@ server_local_open(struct cfg *cfg, struct server *scfg, struct server_local *loc
r = bind(sfd, (struct sockaddr *)&local->local.storage, local->local.addrlen);
if (r < 0) {
error("bind: %m");
- goto out;
+ goto error;
}
r = listen(sfd, 100);
if (r < 0) {
error("listen: %m");
- goto out;
+ goto error;
}
uring_task_set_fd(&local->task, sfd);
uring_accept(cfg, &local->task, &local->client, server_local_accept);
return true;
-out:
+error:
if (sfd >= 0)
close(sfd);
return false;
@@ -314,6 +314,7 @@ server_exec_done(struct cfg *cfg, struct uring_task *task, int res)
debug(DBG_SRV, "command successfully executed\n");
else
error("command failed: %i\n", info.si_status);
+
out:
uring_task_close_fd(cfg, &scfg->exec_task);
}