#include "xalloc.h"
char controlcookie[65];
-extern char *controlcookiename;
+extern char *pidfilename;
static bool control_return(connection_t *c, int type, int error) {
return send_request(c, "%d %d %d", CONTROL, type, error);
bin2hex(controlcookie, controlcookie, sizeof controlcookie / 2);
controlcookie[sizeof controlcookie - 1] = 0;
- FILE *f = fopen(controlcookiename, "w");
+ FILE *f = fopen(pidfilename, "w");
if(!f) {
- logger(LOG_ERR, "Cannot write control socket cookie file %s: %s", controlcookiename, strerror(errno));
+ logger(LOG_ERR, "Cannot write control socket cookie file %s: %s", pidfilename, strerror(errno));
return false;
}
#ifdef HAVE_FCHMOD
fchmod(fileno(f), 0600);
#else
- chmod(controlcookiename, 0600);
+ chmod(pidfilename, 0600);
#endif
fprintf(f, "%s %s %d\n", controlcookie, myport, getpid());
}
void exit_control(void) {
- unlink(controlcookiename);
+ unlink(pidfilename);
}
static char *name = NULL;
static char *identname = NULL; /* program name for syslog */
-static char *controlcookiename = NULL; /* cookie file location */
+static char *pidfilename = NULL; /* pid file location */
static char controlcookie[1024];
char *netname = NULL;
char *confbase = NULL;
{"net", required_argument, NULL, 'n'},
{"help", no_argument, NULL, 1},
{"version", no_argument, NULL, 2},
- {"controlcookie", required_argument, NULL, 5},
+ {"pidfile", required_argument, NULL, 5},
{NULL, 0, NULL, 0}
};
else {
printf("Usage: %s [options] command\n\n", program_name);
printf("Valid options are:\n"
- " -c, --config=DIR Read configuration options from DIR.\n"
- " -n, --net=NETNAME Connect to net NETNAME.\n"
- " --controlcookie=FILENAME Read control socket from FILENAME.\n"
- " --help Display this help and exit.\n"
- " --version Output version information and exit.\n"
+ " -c, --config=DIR Read configuration options from DIR.\n"
+ " -n, --net=NETNAME Connect to net NETNAME.\n"
+ " --pidfile=FILENAME Read control cookie from FILENAME.\n"
+ " --help Display this help and exit.\n"
+ " --version Output version information and exit.\n"
"\n"
"Valid commands are:\n"
" start Start tincd.\n"
break;
case 5: /* open control socket here */
- controlcookiename = xstrdup(optarg);
+ pidfilename = xstrdup(optarg);
break;
case '?':
xasprintf(&confbase, "%s", installdir);
}
}
- if(!controlcookiename)
- xasprintf(&controlcookiename, "%s/cookie", confbase);
+ if(!pidfilename)
+ xasprintf(&pidfilename, "%s/pid", confbase);
RegCloseKey(key);
if(*installdir)
return;
}
#endif
- if(!controlcookiename)
- xasprintf(&controlcookiename, "%s/run/%s.cookie", LOCALSTATEDIR, identname);
+ if(!pidfilename)
+ xasprintf(&pidfilename, "%s/run/%s.pid", LOCALSTATEDIR, identname);
if(netname) {
if(!confbase)
* ancestors are writable only by trusted users, which we don't verify.
*/
- FILE *f = fopen(controlcookiename, "r");
+ FILE *f = fopen(pidfilename, "r");
if(!f) {
- fprintf(stderr, "Could not open control socket cookie file %s: %s\n", controlcookiename, strerror(errno));
+ fprintf(stderr, "Could not open pid file %s: %s\n", pidfilename, strerror(errno));
return 1;
}
if(fscanf(f, "%1024s %128s %20d", controlcookie, port, &pid) != 3) {
- fprintf(stderr, "Could not parse control socket cookie file %s\n", controlcookiename);
+ fprintf(stderr, "Could not parse pid file %s\n", pidfilename);
return 1;
}
char *identname = NULL; /* program name for syslog */
char *logfilename = NULL; /* log file location */
-char *controlcookiename = NULL;
+char *pidfilename = NULL;
char **g_argv; /* a copy of the cmdline arguments */
static int status = 1;
{"chroot", no_argument, NULL, 'R'},
{"user", required_argument, NULL, 'U'},
{"logfile", optional_argument, NULL, 4},
- {"controlcookie", required_argument, NULL, 5},
+ {"pidfile", required_argument, NULL, 5},
{NULL, 0, NULL, 0}
};
program_name);
else {
printf("Usage: %s [option]...\n\n", program_name);
- printf( " -c, --config=DIR Read configuration options from DIR.\n"
- " -D, --no-detach Don't fork and detach.\n"
- " -d, --debug[=LEVEL] Increase debug level or set it to LEVEL.\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"
- " --controlcookie=FILENAME Write control socket cookie to FILENAME.\n"
- " --bypass-security Disables meta protocol security, for debugging.\n"
- " -o [HOST.]KEY=VALUE Set global/host configuration value.\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"
- " --version Output version information and exit.\n\n");
+ printf( " -c, --config=DIR Read configuration options from DIR.\n"
+ " -D, --no-detach Don't fork and detach.\n"
+ " -d, --debug[=LEVEL] Increase debug level or set it to LEVEL.\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"
+ " --pidfile=FILENAME Write PID and control socket cookie to FILENAME.\n"
+ " --bypass-security Disables meta protocol security, for debugging.\n"
+ " -o [HOST.]KEY=VALUE Set global/host configuration value.\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"
+ " --version Output version information and exit.\n\n");
printf("Report bugs to tinc@tinc-vpn.org.\n");
}
}
break;
case 5: /* open control socket here */
- controlcookiename = xstrdup(optarg);
+ pidfilename = xstrdup(optarg);
break;
case '?':
else
xasprintf(&confbase, "%s", installdir);
}
- if(!controlcookiename)
- xasprintf(&controlcookiename, "%s/cookie", confbase);
+ if(!pidfilename)
+ xasprintf(&pidfilename, "%s/pid", confbase);
}
RegCloseKey(key);
if(*installdir)
if(!logfilename)
xasprintf(&logfilename, LOCALSTATEDIR "/log/%s.log", identname);
- if(!controlcookiename)
- xasprintf(&controlcookiename, LOCALSTATEDIR "/run/%s.cookie", identname);
+ if(!pidfilename)
+ xasprintf(&pidfilename, LOCALSTATEDIR "/run/%s.pid", identname);
if(netname) {
if(!confbase)
static void free_names(void) {
if (identname) free(identname);
if (netname) free(netname);
- if (controlcookiename) free(controlcookiename);
+ if (pidfilename) free(pidfilename);
if (logfilename) free(logfilename);
if (confbase) free(confbase);
}