aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/os_priority.c14
-rw-r--r--src/util/test_resolver_api.c2
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, ...)
180 char *cmd, *idx; 180 char *cmd, *idx;
181 STARTUPINFO start; 181 STARTUPINFO start;
182 PROCESS_INFORMATION proc; 182 PROCESS_INFORMATION proc;
183 char *fn;
184 int len;
183 185
184 cmdlen = 0; 186 cmdlen = 0;
185 va_start (ap, filename); 187 va_start (ap, filename);
@@ -196,14 +198,22 @@ GNUNET_OS_start_process (const char *filename, ...)
196 memset (&start, 0, sizeof (start)); 198 memset (&start, 0, sizeof (start));
197 start.cb = sizeof (start); 199 start.cb = sizeof (start);
198 200
201 len = strlen (filename);
202 if (strnicmp (filename + len - 4, ".exe", 4) == 0)
203 fn = filename;
204 else
205 GNUNET_asprintf (&fn, "%s.exe", filename);
206
199 if (!CreateProcess 207 if (!CreateProcess
200 (filename, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &start, 208 (fn, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &start,
201 &proc)) 209 &proc))
202 { 210 {
203 SetErrnoFromWinError (GetLastError ()); 211 SetErrnoFromWinError (GetLastError ());
204 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "CreateProcess", filename); 212 GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "CreateProcess", fn);
205 return -1; 213 return -1;
206 } 214 }
215 if (fn != filename)
216 GNUNET_free (fn);
207 CloseHandle (proc.hProcess); 217 CloseHandle (proc.hProcess);
208 CloseHandle (proc.hThread); 218 CloseHandle (proc.hThread);
209 219
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 ()
171 struct GNUNET_GETOPT_CommandLineOption options[] = { 171 struct GNUNET_GETOPT_CommandLineOption options[] = {
172 GNUNET_GETOPT_OPTION_END 172 GNUNET_GETOPT_OPTION_END
173 }; 173 };
174 GNUNET_asprintf(&fn, "%s%cgnunet-service-resolver.exe", 174 GNUNET_asprintf(&fn, "%s%cgnunet-service-resolver",
175 GNUNET_OS_installation_get_path(GNUNET_OS_IPK_BINDIR), 175 GNUNET_OS_installation_get_path(GNUNET_OS_IPK_BINDIR),
176 DIR_SEPARATOR); 176 DIR_SEPARATOR);
177 pid = GNUNET_OS_start_process (fn, 177 pid = GNUNET_OS_start_process (fn,