From: guy Date: Sun, 22 Dec 2002 23:05:52 +0000 (+0000) Subject: Make "pcap_dump_flush()" return a success-vs-failure indication; X-Git-Tag: libpcap-0.8-bp~106 X-Git-Url: https://git.tcpdump.org/libpcap/commitdiff_plain/dc9d85f8191290bdec20263bd345eb51c6b5101c?ds=sidebyside Make "pcap_dump_flush()" return a success-vs-failure indication; unfortunately, we can't fix "pcap_dump()" and "pcap_dump_close()" to do that, as any application that tests the return value would fail to work correctly if linked at runtime with an older libpcap, but we should perhaps introduce "pcap_dump_ex()" and "pcap_dump_close_ex()" routines that do return a success-vs-vailure indication. --- diff --git a/pcap.3 b/pcap.3 index 6cac2395..7236c637 100644 --- a/pcap.3 +++ b/pcap.3 @@ -1,4 +1,4 @@ -.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.43 2002-12-22 02:36:51 guy Exp $ +.\" @(#) $Header: /tcpdump/master/libpcap/Attic/pcap.3,v 1.44 2002-12-22 23:05:52 guy Exp $ .\" .\" Copyright (c) 1994, 1996, 1997 .\" The Regents of the University of California. All rights reserved. @@ -100,7 +100,7 @@ char *pcap_strerror(int error) .LP .ft B void pcap_close(pcap_t *p) -void pcap_dump_flush(pcap_dumper_t *p) +int pcap_dump_flush(pcap_dumper_t *p) void pcap_dump_close(pcap_dumper_t *p) .ft .fi @@ -883,6 +883,8 @@ flushes the output buffer to the ``savefile,'' so that any packets written with .B pcap_dump() but not yet written to the ``savefile'' will be written. +.B \-1 +is returned on error, 0 on success. .PP .B pcap_dump_close() closes the ``savefile.'' diff --git a/pcap.h b/pcap.h index b8e7df97..7d4e0ad1 100644 --- a/pcap.h +++ b/pcap.h @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.40 2002-12-22 02:36:51 guy Exp $ (LBL) + * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.41 2002-12-22 23:05:53 guy Exp $ (LBL) */ #ifndef lib_pcap_h @@ -202,7 +202,7 @@ FILE *pcap_file(pcap_t *); int pcap_fileno(pcap_t *); pcap_dumper_t *pcap_dump_open(pcap_t *, const char *); -void pcap_dump_flush(pcap_dumper_t *); +int pcap_dump_flush(pcap_dumper_t *); void pcap_dump_close(pcap_dumper_t *); void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *); diff --git a/savefile.c b/savefile.c index 61a17ee8..7e8fdf7a 100644 --- a/savefile.c +++ b/savefile.c @@ -30,7 +30,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.71 2002-12-21 23:38:52 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.72 2002-12-22 23:05:53 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -691,11 +691,14 @@ pcap_dump_open(pcap_t *p, const char *fname) return ((pcap_dumper_t *)f); } -void +int pcap_dump_flush(pcap_dumper_t *p) { - (void)fflush((FILE *)p); + if (fflush((FILE *)p) == EOF) + return (-1); + else + return (0); } void