From 656a74c4ee41d4de77d44c784f2341ca95d1519f Mon Sep 17 00:00:00 2001 From: Nils Durner Date: Sat, 21 Nov 2009 23:56:41 +0000 Subject: [PATCH] fix --- src/util/os_priority.c | 14 ++++++++++++-- src/util/test_resolver_api.c | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/util/os_priority.c b/src/util/os_priority.c index aa540e5b4..9f872d04d 100644 --- a/src/util/os_priority.c +++ b/src/util/os_priority.c @@ -180,6 +180,8 @@ GNUNET_OS_start_process (const char *filename, ...) char *cmd, *idx; STARTUPINFO start; PROCESS_INFORMATION proc; + char *fn; + int len; cmdlen = 0; va_start (ap, filename); @@ -196,14 +198,22 @@ GNUNET_OS_start_process (const char *filename, ...) memset (&start, 0, sizeof (start)); start.cb = sizeof (start); + len = strlen (filename); + if (strnicmp (filename + len - 4, ".exe", 4) == 0) + fn = filename; + else + GNUNET_asprintf (&fn, "%s.exe", filename); + if (!CreateProcess - (filename, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &start, + (fn, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &start, &proc)) { SetErrnoFromWinError (GetLastError ()); - GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "CreateProcess", filename); + GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "CreateProcess", fn); return -1; } + if (fn != filename) + GNUNET_free (fn); CloseHandle (proc.hProcess); CloseHandle (proc.hThread); diff --git a/src/util/test_resolver_api.c b/src/util/test_resolver_api.c index 328a9e5b8..f49d7a79a 100644 --- a/src/util/test_resolver_api.c +++ b/src/util/test_resolver_api.c @@ -171,7 +171,7 @@ check () struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - GNUNET_asprintf(&fn, "%s%cgnunet-service-resolver.exe", + GNUNET_asprintf(&fn, "%s%cgnunet-service-resolver", GNUNET_OS_installation_get_path(GNUNET_OS_IPK_BINDIR), DIR_SEPARATOR); pid = GNUNET_OS_start_process (fn, -- 2.25.1