2010-06-11  Marcus Brinkmann  <marcus@g10code.de>

	* sysutils.c (translate_sys2libc_fd): Revert last change.
	(translate_sys2libc_fd_int): Revert last change.

sm/
2010-06-11  Marcus Brinkmann  <marcus@g10code.de>

	* server.c (cmd_message) [HAVE_W32CE_SYSTEM]: Finish pipe.
This commit is contained in:
Marcus Brinkmann 2010-06-10 23:17:33 +00:00
parent 82aaa6ab76
commit 13dab2af8b
4 changed files with 22 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2010-06-11 Marcus Brinkmann <marcus@g10code.de>
* sysutils.c (translate_sys2libc_fd): Revert last change.
(translate_sys2libc_fd_int): Revert last change.
2010-06-10 Marcus Brinkmann <marcus@g10code.de>
* sysutils.c (translate_sys2libc_fd) [HAVE_W32CE_SYSTEM]:

View File

@ -280,7 +280,8 @@ int
translate_sys2libc_fd (gnupg_fd_t fd, int for_write)
{
#if defined(HAVE_W32CE_SYSTEM)
return (int) _assuan_w32ce_finish_pipe ((int)fd, for_write);
(void)for_write;
return (int) fd;
#elif defined(HAVE_W32_SYSTEM)
int x;
@ -307,7 +308,8 @@ int
translate_sys2libc_fd_int (int fd, int for_write)
{
#if HAVE_W32CE_SYSTEM
return (int) _assuan_w32ce_finish_pipe (fd, for_write);
fd = (int) _assuan_w32ce_finish_pipe (fd, for_write);
return translate_sys2libc_fd ((void*)fd, for_write);
#elif HAVE_W32_SYSTEM
if (fd <= 2)
return fd; /* Do not do this for error, stdin, stdout, stderr. */

View File

@ -1,3 +1,7 @@
2010-06-11 Marcus Brinkmann <marcus@g10code.de>
* server.c (cmd_message) [HAVE_W32CE_SYSTEM]: Finish pipe.
2010-06-10 Marcus Brinkmann <marcus@g10code.de>
* server.c (SERVER_STDIN, SERVER_STDOUT): New macros.

View File

@ -163,6 +163,7 @@ close_message_fd (ctrl_t ctrl)
{
if (ctrl->server_local->message_fd != -1)
{
#warning Is this correct for W32/W32CE?
close (ctrl->server_local->message_fd);
ctrl->server_local->message_fd = -1;
}
@ -839,6 +840,14 @@ cmd_message (assuan_context_t ctx, char *line)
rc = assuan_command_parse_fd (ctx, line, &sysfd);
if (rc)
return rc;
#ifdef HAVE_W32CE_SYSTEM
sysfd = _assuan_w32ce_finish_pipe ((int)sysfd, 0);
if (sysfd == INVALID_HANDLE_VALUE)
return set_error (gpg_err_code_from_syserror (),
"rvid conversion failed");
#endif
fd = translate_sys2libc_fd (sysfd, 0);
if (fd == -1)
return set_error (GPG_ERR_ASS_NO_INPUT, NULL);