w32: Add extra diagnostic about possible missing gpgme-w32spawn.exe.

* src/w32-io.c (_gpgme_io_spawn): Add a new diagnostic.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2015-10-28 16:27:49 +01:00
parent a82e9b182f
commit bb2d11c1ee
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B

View File

@ -1550,6 +1550,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
int debug_me = 0; int debug_me = 0;
int tmp_fd; int tmp_fd;
char *tmp_name; char *tmp_name;
const char *spawnhelper;
TRACE_BEG1 (DEBUG_SYSIO, "_gpgme_io_spawn", path, TRACE_BEG1 (DEBUG_SYSIO, "_gpgme_io_spawn", path,
"path=%s", path); "path=%s", path);
@ -1603,7 +1604,8 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
if ((flags & IOSPAWN_FLAG_DETACHED)) if ((flags & IOSPAWN_FLAG_DETACHED))
cr_flags |= DETACHED_PROCESS; cr_flags |= DETACHED_PROCESS;
cr_flags |= GetPriorityClass (GetCurrentProcess ()); cr_flags |= GetPriorityClass (GetCurrentProcess ());
if (!CreateProcessA (_gpgme_get_w32spawn_path (), spawnhelper = _gpgme_get_w32spawn_path ();
if (!CreateProcessA (spawnhelper,
arg_string, arg_string,
&sec_attr, /* process security attributes */ &sec_attr, /* process security attributes */
&sec_attr, /* thread security attributes */ &sec_attr, /* thread security attributes */
@ -1614,7 +1616,10 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
&si, /* startup information */ &si, /* startup information */
&pi)) /* returns process information */ &pi)) /* returns process information */
{ {
TRACE_LOG1 ("CreateProcess failed: ec=%d", (int) GetLastError ()); int lasterr = (int)GetLastError ();
TRACE_LOG1 ("CreateProcess failed: ec=%d", lasterr);
if (lasterr == ERROR_INVALID_PARAMETER)
TRACE_LOG1 ("(is '%s' correctly installed?)", spawnhelper);
free (arg_string); free (arg_string);
close (tmp_fd); close (tmp_fd);
DeleteFileA (tmp_name); DeleteFileA (tmp_name);