aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2010-06-10 23:17:33 +0000
committerMarcus Brinkmann <[email protected]>2010-06-10 23:17:33 +0000
commit13dab2af8b121e270743e89eab21aff19cc6e89a (patch)
tree693efab3d74ae0914ee9e9d83800371c484a0ce3
parent2010-06-10 Marcus Brinkmann <[email protected]> (diff)
downloadgnupg-13dab2af8b121e270743e89eab21aff19cc6e89a.tar.gz
gnupg-13dab2af8b121e270743e89eab21aff19cc6e89a.zip
common/
2010-06-11 Marcus Brinkmann <[email protected]> * sysutils.c (translate_sys2libc_fd): Revert last change. (translate_sys2libc_fd_int): Revert last change. sm/ 2010-06-11 Marcus Brinkmann <[email protected]> * server.c (cmd_message) [HAVE_W32CE_SYSTEM]: Finish pipe.
-rw-r--r--common/ChangeLog5
-rw-r--r--common/sysutils.c6
-rw-r--r--sm/ChangeLog4
-rw-r--r--sm/server.c9
4 files changed, 22 insertions, 2 deletions
diff --git a/common/ChangeLog b/common/ChangeLog
index 0a4f57385..5aa39914c 100644
--- a/common/ChangeLog
+++ b/common/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-11 Marcus Brinkmann <[email protected]>
+
+ * sysutils.c (translate_sys2libc_fd): Revert last change.
+ (translate_sys2libc_fd_int): Revert last change.
+
2010-06-10 Marcus Brinkmann <[email protected]>
* sysutils.c (translate_sys2libc_fd) [HAVE_W32CE_SYSTEM]:
diff --git a/common/sysutils.c b/common/sysutils.c
index ef180220a..82d9959d8 100644
--- a/common/sysutils.c
+++ b/common/sysutils.c
@@ -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. */
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 1b836b797..ebcd30589 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-11 Marcus Brinkmann <[email protected]>
+
+ * server.c (cmd_message) [HAVE_W32CE_SYSTEM]: Finish pipe.
+
2010-06-10 Marcus Brinkmann <[email protected]>
* server.c (SERVER_STDIN, SERVER_STDOUT): New macros.
diff --git a/sm/server.c b/sm/server.c
index d8a30acf3..22ddb5f18 100644
--- a/sm/server.c
+++ b/sm/server.c
@@ -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);