projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Convert tincd path args to absolute paths
[tinc]
/
src
/
tincd.c
diff --git
a/src/tincd.c
b/src/tincd.c
index
5bfeeab
..
06e6713
100644
(file)
--- a/
src/tincd.c
+++ b/
src/tincd.c
@@
-158,6
+158,17
@@
static void usage(bool status) {
}
}
}
}
+// Try to resolve path to absolute, return a copy of the argument if this fails.
+static char *get_path_arg(char *arg) {
+ char *result = absolute_path(arg);
+
+ if(!result) {
+ result = xstrdup(arg);
+ }
+
+ return result;
+}
+
static bool parse_options(int argc, char **argv) {
config_t *cfg;
int r;
static bool parse_options(int argc, char **argv) {
config_t *cfg;
int r;
@@
-175,7
+186,7
@@
static bool parse_options(int argc, char **argv) {
case OPT_CONFIG_FILE:
free(confbase);
case OPT_CONFIG_FILE:
free(confbase);
- confbase =
xstrdup
(optarg);
+ confbase =
get_path_arg
(optarg);
break;
case OPT_NO_DETACH:
break;
case OPT_NO_DETACH:
@@
-263,14
+274,14
@@
static bool parse_options(int argc, char **argv) {
if(optarg) {
free(logfilename);
if(optarg) {
free(logfilename);
- logfilename =
xstrdup
(optarg);
+ logfilename =
get_path_arg
(optarg);
}
break;
case OPT_PIDFILE:
free(pidfilename);
}
break;
case OPT_PIDFILE:
free(pidfilename);
- pidfilename =
xstrdup
(optarg);
+ pidfilename =
get_path_arg
(optarg);
break;
default:
break;
default: