Changeset 32ee9b2 for lib/format_erf.c


Ignore:
Timestamp:
06/26/18 18:05:08 (3 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
cachetimestamps, develop, master, rc-4.0.4, ringdecrementfix, ringperformance
Children:
95ca714
Parents:
528a27c
Message:

Add new trace_flush_output() to public API

Can be used to force a libtrace output to dump any buffered output
to disk immediately.

Note that if the file is compressed or the output trace format
requires a trailer, the flushed file will still not be properly
readable afterwards as this will not result in any trailers
being written. You'll still have to close the file for that.

Mainly this is useful for ensuring that output file sizes grow
over time in situations where the amount of output is relatively
small, rather than staying stuck at 0 bytes until we either reach
1MB of output or the file is closed. For instance, you could have
a timer that calls trace_flush_output() every 30 seconds so that
the output file size will grow if any packets were written in the
last 30 seconds.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r207e288 r32ee9b2  
    597597        }
    598598        return numbytes + framinglen;
     599}
     600
     601static int erf_flush_output(libtrace_out_t *libtrace) {
     602        return wandio_wflush(OUTPUT->file);
    599603}
    600604
     
    868872        NULL,                           /* fin_packet */
    869873        erf_write_packet,               /* write_packet */
     874        erf_flush_output,               /* flush_output */
    870875        erf_get_link_type,              /* get_link_type */
    871876        erf_get_direction,              /* get_direction */
     
    912917        NULL,                           /* fin_packet */
    913918        erf_write_packet,               /* write_packet */
     919        erf_flush_output,               /* flush_output */
    914920        erf_get_link_type,              /* get_link_type */
    915921        erf_get_direction,              /* get_direction */
Note: See TracChangeset for help on using the changeset viewer.