aboutsummaryrefslogtreecommitdiffstats
path: root/assuan/assuan-io.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2005-08-09 13:19:24 +0000
committerWerner Koch <[email protected]>2005-08-09 13:19:24 +0000
commitb71096a83217e1c8a9163a955a74a4b88afa4290 (patch)
tree1bd3c3a7864645eee6c628bea03a5dea9659201d /assuan/assuan-io.c
parentdoc/ (diff)
downloadgpgme-b71096a83217e1c8a9163a955a74a4b88afa4290.tar.gz
gpgme-b71096a83217e1c8a9163a955a74a4b88afa4290.zip
Merged changes from upstream libassuan to allow building a W32 DLL.
Diffstat (limited to 'assuan/assuan-io.c')
-rw-r--r--assuan/assuan-io.c52
1 files changed, 32 insertions, 20 deletions
diff --git a/assuan/assuan-io.c b/assuan/assuan-io.c
index 5dca009d..321f2bae 100644
--- a/assuan/assuan-io.c
+++ b/assuan/assuan-io.c
@@ -1,5 +1,5 @@
/* assuan-io.c - Wraps the read and write functions.
- * Copyright (C) 2002 Free Software Foundation, Inc.
+ * Copyright (C) 2002, 2004 Free Software Foundation, Inc.
*
* This file is part of Assuan.
*
@@ -18,41 +18,53 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include "assuan-defs.h"
#include <sys/types.h>
#include <unistd.h>
+#ifdef HAVE_W32_SYSTEM
+#include <windows.h>
+#endif
-#ifdef _ASSUAN_IN_GPGME
-ssize_t
-_assuan_simple_read (ASSUAN_CONTEXT ctx, void *buffer, size_t size)
-{
- return read (ctx->inbound.fd, buffer, size);
-}
-
-ssize_t
-_assuan_simple_write (ASSUAN_CONTEXT ctx, const void *buffer, size_t size)
-{
- return write (ctx->outbound.fd, buffer, size);
-}
-
-#else
-
+#ifndef _ASSUAN_NO_PTH
extern ssize_t pth_read (int fd, void *buffer, size_t size);
extern ssize_t pth_write (int fd, const void *buffer, size_t size);
+#ifndef HAVE_W32_SYSTEM
#pragma weak pth_read
#pragma weak pth_write
+#endif
+#endif /*!_ASSUAN_NO_PTH*/
ssize_t
-_assuan_simple_read (ASSUAN_CONTEXT ctx, void *buffer, size_t size)
+_assuan_simple_read (assuan_context_t ctx, void *buffer, size_t size)
{
+#ifdef _ASSUAN_NO_PTH
+ return read (ctx->inbound.fd, buffer, size);
+#else
+# ifndef HAVE_W32_SYSTEM
return (pth_read ? pth_read : read) (ctx->inbound.fd, buffer, size);
+# else
+ return pth_read ? pth_read (ctx->inbound.fd, buffer, size)
+ : recv (ctx->inbound.fd, buffer, size, 0);
+# endif
+# endif
}
ssize_t
-_assuan_simple_write (ASSUAN_CONTEXT ctx, const void *buffer, size_t size)
+_assuan_simple_write (assuan_context_t ctx, const void *buffer, size_t size)
{
+#ifdef _ASSUAN_NO_PTH
+ return write (ctx->outbound.fd, buffer, size);
+#else
+# ifndef HAVE_W32_SYSTEM
return (pth_write ? pth_write : write) (ctx->outbound.fd, buffer, size);
-}
-
+# else
+ return pth_write ? pth_write (ctx->outbound.fd, buffer, size)
+ : send (ctx->outbound.fd, buffer, size, 0);
+# endif
#endif
+}