diff options
Diffstat (limited to 'sm')
-rw-r--r-- | sm/ChangeLog | 4 | ||||
-rw-r--r-- | sm/server.c | 9 |
2 files changed, 13 insertions, 0 deletions
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); |