char *cmd, *idx;
STARTUPINFO start;
PROCESS_INFORMATION proc;
+ char *fn;
+ int len;
cmdlen = 0;
va_start (ap, 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);
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,