summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Brinkmann <mb@g10code.com>2007-09-24 09:50:01 +0000
committerMarcus Brinkmann <mb@g10code.com>2007-09-24 09:50:01 +0000
commit32be0c9ff0ef7e0d47a9135adc6b6234f0b22bdd (patch)
treea8b18fad7c9e9d269ede52db1f30cbbe7e51e1b1
parent5002babafc9ebda04ab0b55aaf7ad1b33282a505 (diff)
downloadlibassuan-32be0c9ff0ef7e0d47a9135adc6b6234f0b22bdd.tar.gz
2007-09-24 Marcus Brinkmann <marcus@g10code.de>
* assuan-uds.c (uds_reader) [HAVE_W32_SYSTEM]: Do not touch the UDS structure in the context. Reported by Frank Osterfeld. (uds_writer): Clarify code.
-rw-r--r--src/ChangeLog6
-rw-r--r--src/assuan-uds.c22
2 files changed, 15 insertions, 13 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 25e0875..3b38307 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-24 Marcus Brinkmann <marcus@g10code.de>
+
+ * assuan-uds.c (uds_reader) [HAVE_W32_SYSTEM]: Do not touch the
+ UDS structure in the context. Reported by Frank Osterfeld.
+ (uds_writer): Clarify code.
+
2007-09-14 Marcus Brinkmann <marcus@g10code.de>
* assuan-pipe-connect.c (do_finish) [HAVE_W32_SYSTEM]: Close
diff --git a/src/assuan-uds.c b/src/assuan-uds.c
index d502ad8..71ab3b1 100644
--- a/src/assuan-uds.c
+++ b/src/assuan-uds.c
@@ -70,9 +70,9 @@
static ssize_t
uds_reader (assuan_context_t ctx, void *buf, size_t buflen)
{
+#ifndef HAVE_W32_SYSTEM
int len = ctx->uds.buffersize;
-#ifndef HAVE_W32_SYSTEM
if (!ctx->uds.bufferallocated)
{
ctx->uds.buffer = xtrymalloc (2048);
@@ -139,12 +139,6 @@ uds_reader (assuan_context_t ctx, void *buf, size_t buflen)
#endif /*USE_DESCRIPTOR_PASSING*/
}
-#else /*HAVE_W32_SYSTEM*/
-
- len = recvfrom (HANDLE2SOCKET(ctx->inbound.fd), buf, buflen, 0, NULL, NULL);
-
-#endif /*HAVE_W32_SYSTEM*/
-
/* Return some data to the user. */
if (len > buflen) /* We have more than the user requested. */
@@ -157,6 +151,9 @@ uds_reader (assuan_context_t ctx, void *buf, size_t buflen)
assert (ctx->uds.bufferoffset <= ctx->uds.bufferallocated);
return len;
+#else /*HAVE_W32_SYSTEM*/
+ return recvfrom (HANDLE2SOCKET(ctx->inbound.fd), buf, buflen, 0, NULL, NULL);
+#endif /*HAVE_W32_SYSTEM*/
}
@@ -179,14 +176,13 @@ uds_writer (assuan_context_t ctx, const void *buf, size_t buflen)
iovec.iov_len = buflen;
len = _assuan_simple_sendmsg (ctx, &msg);
+
+ return len;
#else /*HAVE_W32_SYSTEM*/
- int len;
-
- len = sendto (HANDLE2SOCKET(ctx->outbound.fd), buf, buflen, 0,
- (struct sockaddr *)&ctx->serveraddr,
- sizeof (struct sockaddr_in));
+ return sendto (HANDLE2SOCKET(ctx->outbound.fd), buf, buflen, 0,
+ (struct sockaddr *)&ctx->serveraddr,
+ sizeof (struct sockaddr_in));
#endif /*HAVE_W32_SYSTEM*/
- return len;
}