projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use the TCP socket infrastructure for control sockets.
[tinc]
/
src
/
tincd.c
diff --git
a/src/tincd.c
b/src/tincd.c
index
1761dc2
..
f6cda97
100644
(file)
--- a/
src/tincd.c
+++ b/
src/tincd.c
@@
-78,8
+78,8
@@
static const char *switchuser = NULL;
bool use_logfile = false;
char *identname = NULL; /* program name for syslog */
bool use_logfile = false;
char *identname = NULL; /* program name for syslog */
-char *controlsocketname = NULL; /* control socket location */
char *logfilename = NULL; /* log file location */
char *logfilename = NULL; /* log file location */
+char *controlcookiename = NULL;
char **g_argv; /* a copy of the cmdline arguments */
static int status;
char **g_argv; /* a copy of the cmdline arguments */
static int status;
@@
-96,7
+96,7
@@
static struct option const long_options[] = {
{"chroot", no_argument, NULL, 'R'},
{"user", required_argument, NULL, 'U'},
{"logfile", optional_argument, NULL, 4},
{"chroot", no_argument, NULL, 'R'},
{"user", required_argument, NULL, 'U'},
{"logfile", optional_argument, NULL, 4},
- {"control
socket
", required_argument, NULL, 5},
+ {"control
cookie
", required_argument, NULL, 5},
{NULL, 0, NULL, 0}
};
{NULL, 0, NULL, 0}
};
@@
-117,7
+117,7
@@
static void usage(bool status) {
" -n, --net=NETNAME Connect to net NETNAME.\n"
" -L, --mlock Lock tinc into main memory.\n"
" --logfile[=FILENAME] Write log entries to a logfile.\n"
" -n, --net=NETNAME Connect to net NETNAME.\n"
" -L, --mlock Lock tinc into main memory.\n"
" --logfile[=FILENAME] Write log entries to a logfile.\n"
- " --control
socket=FILENAME Open control socket at
FILENAME.\n"
+ " --control
cookie=FILENAME Write control socket cookie to
FILENAME.\n"
" --bypass-security Disables meta protocol security, for debugging.\n"
" -R, --chroot chroot to NET dir at startup.\n"
" -U, --user=USER setuid to given USER at startup.\n" " --help Display this help and exit.\n"
" --bypass-security Disables meta protocol security, for debugging.\n"
" -R, --chroot chroot to NET dir at startup.\n"
" -U, --user=USER setuid to given USER at startup.\n" " --help Display this help and exit.\n"
@@
-190,7
+190,7
@@
static bool parse_options(int argc, char **argv) {
break;
case 5: /* open control socket here */
break;
case 5: /* open control socket here */
- control
socket
name = xstrdup(optarg);
+ control
cookie
name = xstrdup(optarg);
break;
case '?':
break;
case '?':
@@
-231,6
+231,8
@@
static void make_names(void) {
else
xasprintf(&confbase, "%s", installdir);
}
else
xasprintf(&confbase, "%s", installdir);
}
+ if(!controlcookiename)
+ xasprintf(&controlcookiename, "%s/cookie", confbase);
}
RegCloseKey(key);
if(*installdir)
}
RegCloseKey(key);
if(*installdir)
@@
-238,9
+240,6
@@
static void make_names(void) {
}
#endif
}
#endif
- if(!controlsocketname)
- xasprintf(&controlsocketname, "%s/run/%s.control/socket", LOCALSTATEDIR, identname);
-
if(!logfilename)
xasprintf(&logfilename, LOCALSTATEDIR "/log/%s.log", identname);
if(!logfilename)
xasprintf(&logfilename, LOCALSTATEDIR "/log/%s.log", identname);
@@
-258,7
+257,7
@@
static void make_names(void) {
static void free_names() {
if (identname) free(identname);
if (netname) free(netname);
static void free_names() {
if (identname) free(identname);
if (netname) free(netname);
- if (control
socketname) free(controlsocket
name);
+ if (control
cookiename) free(controlcookie
name);
if (logfilename) free(logfilename);
if (confbase) free(confbase);
}
if (logfilename) free(logfilename);
if (confbase) free(confbase);
}
@@
-359,9
+358,6
@@
int main(int argc, char **argv) {
return 1;
}
return 1;
}
- if(!init_control())
- return 1;
-
g_argv = argv;
init_configuration(&config_tree);
g_argv = argv;
init_configuration(&config_tree);
@@
-410,6
+406,9
@@
int main2(int argc, char **argv) {
if(!setup_network())
goto end;
if(!setup_network())
goto end;
+ if(!init_control())
+ return 1;
+
/* Initiate all outgoing connections. */
try_outgoing_connections();
/* Initiate all outgoing connections. */
try_outgoing_connections();
@@
-449,9
+448,7
@@
int main2(int argc, char **argv) {
end:
logger(LOG_NOTICE, "Terminating");
end:
logger(LOG_NOTICE, "Terminating");
-#ifndef HAVE_MINGW
exit_control();
exit_control();
-#endif
crypto_exit();
crypto_exit();