Changeset aca3ff4 for examples


Ignore:
Timestamp:
02/25/05 11:11:37 (16 years ago)
Author:
Perry Lorier <perry@…>
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:
00c1935
Parents:
b06e535
Message:

Add the ability to concatenate traces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • examples/munge/munge.c

    rb06e535 raca3ff4  
    278278        trace_enc_init(enc_type,key);
    279279
    280         fprintf(stderr,"From %f to %f\n",start_time,end_time);
    281        
    282         /* Do the actual processing */
    283         trace = trace_create(argv[optind]);
    284         if (!trace) {
    285                 fprintf(stderr,"Cannot open %s\n",argv[optind]);
    286                 return 1;
    287         }
    288280        p = NULL;
    289         for(;;) {
    290                 struct libtrace_ip *ipptr;
    291                 int psize;
    292                 double ts;
    293                 if ((psize = trace_read_packet(trace, &packet)) <= 0) {
    294                         break;
     281
     282        while(optind<argc) {
     283                /* Do the actual processing */
     284                trace = trace_create(argv[optind]);
     285                if (!trace) {
     286                        fprintf(stderr,"Cannot open %s\n",argv[optind]);
     287                        return 1;
    295288                }
    296                 if (!p) {
    297                         p=pcap_open_dead(
    298                                 trace_link_type_to_dlt(
    299                                         trace_get_link_type(&packet)),
    300                                 65536);
    301                         writer.pcap = pcap_dump_open(p,"-");
    302                         fflush((FILE *)writer.pcap);
     289                for(;;) {
     290                        struct libtrace_ip *ipptr;
     291                        int psize;
     292                        double ts;
     293                        if ((psize = trace_read_packet(trace, &packet)) <= 0) {
     294                                break;
     295                        }
     296                        if (!p) {
     297                                p=pcap_open_dead(
     298                                        trace_link_type_to_dlt(
     299                                                trace_get_link_type(&packet)),
     300                                        65536);
     301                                writer.pcap = pcap_dump_open(p,"-");
     302                                fflush((FILE *)writer.pcap);
     303                        }
     304
     305                        /* Skip packets that don't match the filter */
     306                        if (filter && !trace_bpf_filter(filter,&packet)) {
     307                                continue;
     308                        }
     309
     310                        ts = trace_get_seconds(&packet);
     311
     312                        /* skip packets before/after the time */
     313                        if (ts < start_time || ts > end_time) {
     314                                continue;
     315                        }
     316
     317                        ipptr = trace_get_ip(&packet);
     318
     319                        if (ipptr && (enc_source || enc_dest))
     320                                encrypt_ips(ipptr,enc_source,enc_dest);
     321
     322                        /* TODO: Encrypt IP's in ARP packets */
     323
     324                        trace_write(&writer,&packet);
    303325                }
    304 
    305                 /* Skip packets that don't match the filter */
    306                 if (filter && !trace_bpf_filter(filter,&packet)) {
    307                         continue;
    308                 }
    309 
    310                 ts = trace_get_seconds(&packet);
    311 
    312                 /* skip packets before/after the time */
    313                 if (ts < start_time || ts > end_time) {
    314                         continue;
    315                 }
    316 
    317                 ipptr = trace_get_ip(&packet);
    318 
    319                 if (ipptr && (enc_source || enc_dest))
    320                         encrypt_ips(ipptr,enc_source,enc_dest);
    321 
    322                 /* TODO: Encrypt IP's in ARP packets */
    323 
    324                 trace_write(&writer,&packet);
     326                optind++;
    325327        }
    326328        return 0;
Note: See TracChangeset for help on using the changeset viewer.