* data.c (_gpgme_data_outbound_handler): Close the file descriptor
if we get an EPIPE.
2004-09-23 Marcus Brinkmann <marcus@g10code.de>
+ * data.c (_gpgme_data_outbound_handler): Close the file descriptor
+ if we get an EPIPE.
+
* data-stream.c (stream_seek): Call ftello and return the current
offset.
* data.h (struct gpgme_data): Change type of data.mem.offset to
callback. If SEEK_CUR, adjust the offset by the pending buffer
size. Clear pending buffer on success.
+
2004-09-14 Marcus Brinkmann <marcus@g10code.de>
* gpgme.m4: Add copyright notice.
}
nwritten = _gpgme_io_write (fd, dh->pending, dh->pending_len);
- if (nwritten == -1 && errno == EAGAIN )
+ if (nwritten == -1 && errno == EAGAIN)
return 0;
+ if (nwritten == -1 && errno == EPIPE)
+ {
+ /* Not much we can do. The other end closed the pipe, but we
+ still have data. This should only ever happen if the other
+ end is going to tell us what happened on some other channel.
+ Silently close our end. */
+ _gpgme_io_close (fd);
+ return 0;
+ }
+
if (nwritten <= 0)
return gpg_error_from_errno (errno);