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:
parent
a82e9b182f
commit
bb2d11c1ee
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user