From 534baec4a1d9214eade9213704690d2308bfe847 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 6 Feb 2007 22:00:25 +0000 Subject: 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 --- src/or/main.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src/or') 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; } -- cgit v1.2.3