projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow linking with multiple device drivers.
[tinc]
/
src
/
tincd.c
diff --git
a/src/tincd.c
b/src/tincd.c
index
a618e63
..
f7b956f
100644
(file)
--- a/
src/tincd.c
+++ b/
src/tincd.c
@@
-1,7
+1,7
@@
/*
tincd.c -- the main file for tincd
Copyright (C) 1998-2005 Ivo Timmermans
/*
tincd.c -- the main file for tincd
Copyright (C) 1998-2005 Ivo Timmermans
- 2000-201
0
Guus Sliepen <guus@tinc-vpn.org>
+ 2000-201
1
Guus Sliepen <guus@tinc-vpn.org>
2008 Max Rijevski <maksuf@gmail.com>
2009 Michael Tokarev <mjt@tls.msk.ru>
2010 Julien Muchembled <jm@jmuchemb.eu>
2008 Max Rijevski <maksuf@gmail.com>
2009 Michael Tokarev <mjt@tls.msk.ru>
2010 Julien Muchembled <jm@jmuchemb.eu>
@@
-203,6
+203,8
@@
static bool parse_options(int argc, char **argv) {
kill_tincd = SIGINT;
else if(!strcasecmp(optarg, "ALRM"))
kill_tincd = SIGALRM;
kill_tincd = SIGINT;
else if(!strcasecmp(optarg, "ALRM"))
kill_tincd = SIGALRM;
+ else if(!strcasecmp(optarg, "ABRT"))
+ kill_tincd = SIGABRT;
else {
kill_tincd = atoi(optarg);
else {
kill_tincd = atoi(optarg);
@@
-221,7
+223,9
@@
static bool parse_options(int argc, char **argv) {
break;
case 'n': /* net name given */
break;
case 'n': /* net name given */
- netname = xstrdup(optarg);
+ /* netname "." is special: a "top-level name" */
+ netname = strcmp(optarg, ".") != 0 ?
+ xstrdup(optarg) : NULL;
break;
case 'o': /* option */
break;
case 'o': /* option */
@@
-500,12
+504,12
@@
static bool drop_privs() {
}
#ifdef HAVE_MINGW
}
#ifdef HAVE_MINGW
-# define setpriority(level)
SetPriorityClass(GetCurrentProcess(), level
)
+# define setpriority(level)
!SetPriorityClass(GetCurrentProcess(), (level)
)
#else
# define NORMAL_PRIORITY_CLASS 0
# define BELOW_NORMAL_PRIORITY_CLASS 10
# define HIGH_PRIORITY_CLASS -10
#else
# define NORMAL_PRIORITY_CLASS 0
# define BELOW_NORMAL_PRIORITY_CLASS 10
# define HIGH_PRIORITY_CLASS -10
-# define setpriority(level)
nice(level
)
+# define setpriority(level)
(setpriority(PRIO_PROCESS, 0, (level))
)
#endif
int main(int argc, char **argv) {
#endif
int main(int argc, char **argv) {
@@
-519,7
+523,7
@@
int main(int argc, char **argv) {
if(show_version) {
printf("%s version %s (built %s %s, protocol %d)\n", PACKAGE,
VERSION, __DATE__, __TIME__, PROT_CURRENT);
if(show_version) {
printf("%s version %s (built %s %s, protocol %d)\n", PACKAGE,
VERSION, __DATE__, __TIME__, PROT_CURRENT);
- printf("Copyright (C) 1998-201
0
Ivo Timmermans, Guus Sliepen and others.\n"
+ printf("Copyright (C) 1998-201
1
Ivo Timmermans, Guus Sliepen and others.\n"
"See the AUTHORS file for a complete list.\n\n"
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
"and you are welcome to redistribute it under certain conditions;\n"
"See the AUTHORS file for a complete list.\n\n"
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
"and you are welcome to redistribute it under certain conditions;\n"
@@
-608,7
+612,7
@@
int main2(int argc, char **argv) {
/* Change process priority */
/* Change process priority */
- char *priority =
0
;
+ char *priority =
NULL
;
if(get_config_string(lookup_config(config_tree, "ProcessPriority"), &priority)) {
if(!strcasecmp(priority, "Normal")) {
if(get_config_string(lookup_config(config_tree, "ProcessPriority"), &priority)) {
if(!strcasecmp(priority, "Normal")) {
@@
-646,7
+650,7
@@
int main2(int argc, char **argv) {
/* Shutdown properly. */
ifdebug(CONNECTIONS)
/* Shutdown properly. */
ifdebug(CONNECTIONS)
- d
ump_device
_stats();
+ d
evops.dump
_stats();
close_network_connections();
close_network_connections();
@@
-657,6
+661,8
@@
end:
remove_pid(pidfilename);
#endif
remove_pid(pidfilename);
#endif
+ free(priority);
+
EVP_cleanup();
ENGINE_cleanup();
CRYPTO_cleanup_all_ex_data();
EVP_cleanup();
ENGINE_cleanup();
CRYPTO_cleanup_all_ex_data();
@@
-664,6
+670,7
@@
end:
ERR_free_strings();
exit_configuration(&config_tree);
ERR_free_strings();
exit_configuration(&config_tree);
+ list_free(cmdline_conf);
free_names();
return status;
free_names();
return status;