projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Give getsockopt() a reference to a socklen_t.
[tinc]
/
src
/
control.c
diff --git
a/src/control.c
b/src/control.c
index
1f56213
..
dc8890a
100644
(file)
--- a/
src/control.c
+++ b/
src/control.c
@@
-178,15
+178,15
@@
bool init_control(void) {
#ifndef HAVE_MINGW
int unix_fd = socket(AF_UNIX, SOCK_STREAM, 0);
if(unix_fd < 0) {
#ifndef HAVE_MINGW
int unix_fd = socket(AF_UNIX, SOCK_STREAM, 0);
if(unix_fd < 0) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Could not create UNIX socket: %s", sockstrerror(errno));
+ logger(DEBUG_ALWAYS, LOG_ERR, "Could not create UNIX socket: %s", sockstrerror(
sock
errno));
return false;
}
return false;
}
- struct sockaddr_un sun;
- sun.sun_family = AF_UNIX;
- strncpy(s
un.sun_path, unixsocketname, sizeof s
un.sun_path);
+ struct sockaddr_un s
a_
un;
+ s
a_
un.sun_family = AF_UNIX;
+ strncpy(s
a_un.sun_path, unixsocketname, sizeof sa_
un.sun_path);
- if(connect(unix_fd, (struct sockaddr *)&s
un, sizeof s
un) >= 0) {
+ if(connect(unix_fd, (struct sockaddr *)&s
a_un, sizeof sa_
un) >= 0) {
logger(DEBUG_ALWAYS, LOG_ERR, "UNIX socket %s is still in use!", unixsocketname);
return false;
}
logger(DEBUG_ALWAYS, LOG_ERR, "UNIX socket %s is still in use!", unixsocketname);
return false;
}
@@
-194,16
+194,16
@@
bool init_control(void) {
unlink(unixsocketname);
umask(mask | 077);
unlink(unixsocketname);
umask(mask | 077);
- int result = bind(unix_fd, (struct sockaddr *)&s
un, sizeof s
un);
+ int result = bind(unix_fd, (struct sockaddr *)&s
a_un, sizeof sa_
un);
umask(mask);
if(result < 0) {
umask(mask);
if(result < 0) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Could not bind UNIX socket to %s: %s", unixsocketname, sockstrerror(errno));
+ logger(DEBUG_ALWAYS, LOG_ERR, "Could not bind UNIX socket to %s: %s", unixsocketname, sockstrerror(
sock
errno));
return false;
}
if(listen(unix_fd, 3) < 0) {
return false;
}
if(listen(unix_fd, 3) < 0) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Could not listen on UNIX socket %s: %s", unixsocketname, sockstrerror(errno));
+ logger(DEBUG_ALWAYS, LOG_ERR, "Could not listen on UNIX socket %s: %s", unixsocketname, sockstrerror(
sock
errno));
return false;
}
return false;
}
@@
-215,6
+215,7
@@
bool init_control(void) {
void exit_control(void) {
#ifndef HAVE_MINGW
void exit_control(void) {
#ifndef HAVE_MINGW
+ unlink(unixsocketname);
io_del(&unix_socket);
close(unix_socket.fd);
#endif
io_del(&unix_socket);
close(unix_socket.fd);
#endif