diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/Makefile.in | 2 | ||||
-rw-r--r-- | util/iobuf.c | 22 |
2 files changed, 22 insertions, 2 deletions
diff --git a/util/Makefile.in b/util/Makefile.in index 99ac0a5ab..a6385a6bf 100644 --- a/util/Makefile.in +++ b/util/Makefile.in @@ -109,7 +109,7 @@ AR = ar CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -DIST_COMMON = Makefile.am Makefile.in +DIST_COMMON = ChangeLog Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) diff --git a/util/iobuf.c b/util/iobuf.c index d429d4c1e..65efc0ef5 100644 --- a/util/iobuf.c +++ b/util/iobuf.c @@ -313,7 +313,7 @@ iobuf_close( IOBUF a ) size_t dummy_len; int rc=0; - for( ; a; a = a2 ) { + for( ; a && !rc ; a = a2 ) { a2 = a->chain; if( a->usage == 2 && (rc=iobuf_flush(a)) ) log_error("iobuf_flush failed on close: %s\n", g10_errstr(rc)); @@ -724,6 +724,26 @@ iobuf_readbyte(IOBUF a) int +iobuf_read(IOBUF a, byte *buf, unsigned buflen ) +{ + int c, n; + + for(n=0 ; n < buflen; n++, buf++ ) { + if( (c = iobuf_readbyte(a)) == -1 ) { + if( !n ) + return -1; /* eof */ + break; + } + else + *buf = c; + } + return n; +} + + + + +int iobuf_writebyte(IOBUF a, unsigned c) { if( a->d.len == a->d.size ) |