Changeset 8d504c1


Ignore:
Timestamp:
01/11/07 15:09:52 (14 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
6ed6c4a
Parents:
4746c71
Message:

Added a maximum file creation limit to tracesplit, so if you only want a file containing the first n packets/bytes/seconds you can easily get one without getting a multitude of other split traces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/tracesplit/tracesplit.c

    r41816bf r8d504c1  
    3636        "-s --starttime=time    Start at time\n"
    3737        "-e --endtime=time      End at time\n"
     38        "-m --maxfiles=n        Create a maximum of n trace files\n"
    3839        "-H --libtrace-help     Print libtrace runtime documentation\n"
    3940        ,argv0);
     
    6364        uint64_t totbytes=0;
    6465        uint64_t totbyteslast=0;
    65 
     66        uint64_t maxfiles = UINT64_MAX;
     67        uint64_t filescreated = 0;
     68       
    6669        if (argc<2) {
    6770                usage(argv[0]);
     
    8083                        { "interval",      1, 0, 'i' },
    8184                        { "libtrace-help", 0, 0, 'H' },
     85                        { "maxfiles",      1, 0, 'm' },
    8286                        { NULL,            0, 0, 0   },
    8387                };
    8488
    85                 int c=getopt_long(argc, argv, "f:c:b:s:e:i:H",
     89                int c=getopt_long(argc, argv, "f:c:b:s:e:i:m:H",
    8690                                long_options, &option_index);
    8791
     
    101105                                  break;
    102106                        case 'i': interval=atoi(optarg);
     107                                  break;
     108                        case 'm': maxfiles=atoi(optarg);
    103109                                  break;
    104110                        case 'H':
     
    174180                if (!output) {
    175181                        char *buffer;
     182                        if (maxfiles <= filescreated) {
     183                                break;
     184                        }
    176185                        buffer=strdup(argv[optind+1]);
    177186                        if (interval!=UINT64_MAX) {
     
    191200                        trace_start_output(output);
    192201                        free(buffer);
     202                        filescreated ++;
    193203                }
    194204
     
    214224       
    215225        trace_destroy(input);
    216         trace_destroy_output(output);
     226        if (output)
     227                trace_destroy_output(output);
    217228
    218229        trace_destroy_packet(packet);
Note: See TracChangeset for help on using the changeset viewer.