diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-02-06 22:00:25 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-02-06 22:00:25 +0000 |
commit | 534baec4a1d9214eade9213704690d2308bfe847 (patch) | |
tree | 92d819656755de1ec4a2f9dfe8ad62eb845c30b7 /src/or | |
parent | c4faebfa6db9ca41a9e42be9efba8c285c03d819 (diff) | |
download | tor-534baec4a1d9214eade9213704690d2308bfe847.tar tor-534baec4a1d9214eade9213704690d2308bfe847.tar.gz |
r11674@catbus: nickm | 2007-02-06 17:00:22 -0500
Remove a now-bogus assert() from nt_service_command_line(), and change option handling. (Now that we no longer force a -f, it is possible to have no command-line options for Tor-as-service.)
svn:r9503
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/main.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/or/main.c b/src/or/main.c index 9c3c93e0d..fef93da49 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -2096,8 +2096,7 @@ static char * nt_service_command_line(int *using_default_torrc) { TCHAR tor_exe[MAX_PATH+1]; - char *command, *options; - const char *torrc; + char *command, *options=NULL; smartlist_t *sl; int i, cmdlen; *using_default_torrc = 1; @@ -2108,7 +2107,6 @@ nt_service_command_line(int *using_default_torrc) /* Get the service arguments */ sl = smartlist_create(); - torrc = get_torrc_fname(); for (i = 1; i < backup_argc; ++i) { if (!strcmp(backup_argv[i], "--options") || !strcmp(backup_argv[i], "-options")) { @@ -2119,8 +2117,8 @@ nt_service_command_line(int *using_default_torrc) } } } - tor_assert(smartlist_len(sl)); - options = smartlist_join_strings(sl,"\" \"",0,NULL); + if (smartlist_len(sl)) + options = smartlist_join_strings(sl,"\" \"",0,NULL); smartlist_free(sl); /* Allocate a string for the NT service command line */ @@ -2128,10 +2126,17 @@ nt_service_command_line(int *using_default_torrc) command = tor_malloc(cmdlen); /* Format the service command */ - if (tor_snprintf(command, cmdlen, "\"%s\" --nt-service \"%s\"", - tor_exe, options)<0) { - tor_free(command); /* sets command to NULL. */ + if (options) { + if (tor_snprintf(command, cmdlen, "\"%s\" --nt-service \"%s\"", + tor_exe, options)<0) { + tor_free(command); /* sets command to NULL. */ + } + } else { /* ! options */ + if (tor_snprintf(command, cmdlen, "\"%s\" --nt-service", tor_exe)<0) { + tor_free(command); /* sets command to NULL. */ + } } + tor_free(options); return command; } |