mirror of
https://github.com/ericonr/sndio.git
synced 2024-02-18 04:45:21 -06:00
Use a goto to factor all calls to close() when listen_in() returns
an error. From Michael W. Bombardieri. Thanks.
This commit is contained in:
parent
1b8223b94b
commit
7d9db26e38
@ -257,8 +257,7 @@ listen_in(void *arg)
|
||||
if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) {
|
||||
file_log(f->file);
|
||||
log_puts(": failed to set non-blocking mode\n");
|
||||
close(sock);
|
||||
return;
|
||||
goto bad_close;
|
||||
}
|
||||
if (f->path == NULL) {
|
||||
opt = 1;
|
||||
@ -266,14 +265,14 @@ listen_in(void *arg)
|
||||
&opt, sizeof(int)) < 0) {
|
||||
file_log(f->file);
|
||||
log_puts(": failed to set TCP_NODELAY flag\n");
|
||||
close(sock);
|
||||
goto bad_close;
|
||||
}
|
||||
}
|
||||
if (sock_new(sock) == NULL)
|
||||
goto bad_close;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (sock_new(sock) == NULL) {
|
||||
bad_close:
|
||||
close(sock);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user