2004-09-23 Marcus Brinkmann <marcus@g10code.de>

* data.c (_gpgme_data_outbound_handler): Close the file descriptor
	if we get an EPIPE.
This commit is contained in:
Marcus Brinkmann 2004-09-23 19:23:33 +00:00
parent 4b8e1217fc
commit 7bfcd45c9f
2 changed files with 15 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2004-09-23 Marcus Brinkmann <marcus@g10code.de> 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 * data-stream.c (stream_seek): Call ftello and return the current
offset. offset.
* data.h (struct gpgme_data): Change type of data.mem.offset to * data.h (struct gpgme_data): Change type of data.mem.offset to
@ -8,6 +11,7 @@
callback. If SEEK_CUR, adjust the offset by the pending buffer callback. If SEEK_CUR, adjust the offset by the pending buffer
size. Clear pending buffer on success. size. Clear pending buffer on success.
2004-09-14 Marcus Brinkmann <marcus@g10code.de> 2004-09-14 Marcus Brinkmann <marcus@g10code.de>
* gpgme.m4: Add copyright notice. * gpgme.m4: Add copyright notice.

View File

@ -222,6 +222,16 @@ _gpgme_data_outbound_handler (void *opaque, int fd)
if (nwritten == -1 && errno == EAGAIN) if (nwritten == -1 && errno == EAGAIN)
return 0; 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) if (nwritten <= 0)
return gpg_error_from_errno (errno); return gpg_error_from_errno (errno);