Changeset eb6f2ea for tools/traceanon


Ignore:
Timestamp:
10/13/05 15:05:03 (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:
b297e50
Parents:
49f147b
Message:

Rip out the functionality that's provided by tracesplit, we don't need to
duplicate it here.

Location:
tools/traceanon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tools/traceanon/traceanon.1

    r49f147b reb6f2ea  
    5656traceanon \-\^\-cryptopan="fish go moo, oh yes they do" \\
    5757        \-\^\-encrypt-source \\
     58        \-\^\-encrypt-dest \\
    5859        erf:/traces/unenc.gz \\
    5960        erf:/traces/enc.gz \\
     
    6364This software should support encrypting based on the direction/interface flag.
    6465
     66IP addresses inside ARP's are not encrypted.
     67
    6568.SH SEE ALSO
    6669libtrace(3), tracemerge(1), tracefilter(1), traceconvert(1), tracestats(1),
  • tools/traceanon/traceanon.c

    r49f147b reb6f2ea  
    9696}
    9797
    98 double parse_date(const char *date)
    99 {
    100         struct tm *parsed_time;
    101 
    102         parsed_time=getdate(date);
    103 
    104         if (parsed_time) {
    105                 return (double)mktime(parsed_time);
    106         }
    107 
    108         switch(getdate_err) {
    109                 case 1:
    110                         fprintf(stderr,"Cannot parse date: The DATEMSK environmental variable is null or undefined\n");
    111                         break;
    112                 case 2:
    113                         fprintf(stderr,"The date template file '%s' cannot be opened for reading\n",getenv("DATEMSK"));
    114                         break;
    115                 case 3:
    116                         fprintf(stderr,"Failed to get file status information for '%s'\n",getenv("DATEMSK"));
    117                         break;
    118                 case 4:
    119                         fprintf(stderr,"%s: Not a regular file\n",getenv("DATEMSK"));
    120                         break;
    121                 case 5:
    122                         fprintf(stderr,"An error occured reading '%s'\n",getenv("DATEMSK"));
    123                         break;
    124                 case 6:
    125                         fprintf(stderr,"Out of memory reading '%s'\n",getenv("DATEMSK"));
    126                         break;
    127                 case 7:
    128                         fprintf(stderr,"Could not parse '%s'\n",date);
    129                         break;
    130                 case 8:
    131                         fprintf(stderr,"Invalid specification in '%s'\n",getenv("DATEMSK"));
    132                         break;
    133                 default:
    134                         fprintf(stderr,"Unable to parse date '%s': Unknown error\n",date);
    135         }
    136         exit(1);
    137 }
    138 
    13998int main(int argc, char *argv[])
    14099{
    141100        enum enc_type_t enc_type = ENC_NONE;
    142101        char *key = NULL;
    143         struct libtrace_filter_t *filter = NULL;
    144102        struct libtrace_t *trace = 0;
    145103        struct libtrace_packet_t packet;
     
    147105        bool enc_source = false;
    148106        bool enc_dest   = false;
    149         double start_time = 0;
    150         double end_time = 1e100;
    151107        char *output = 0;
    152108
     
    161117                        { "cryptopan",          1, 0, 'c' },
    162118                        { "prefix",             1, 0, 'p' },
    163                         { "filter",             1, 0, 'f' },
    164                         { "start-time",         1, 0, 'b' },
    165                         { "end-time",           1, 0, 'e' },
    166119                        { NULL,                 0, 0, 0 },
    167120                };
    168121
    169                 int c=getopt_long(argc, argv, "sb:c:de:p:f:",
     122                int c=getopt_long(argc, argv, "sc:dp:",
    170123                                long_options, &option_index);
    171124
     
    191144                                  key=strdup(optarg);
    192145                                  enc_type = ENC_PREFIX_SUBSTITUTION;
    193                                   break;
    194                         case 'f':
    195                                   if (filter!=NULL) {
    196                                           fprintf(stderr,"You can only have one filter (use and!)\n");
    197                                           usage(argv[0]);
    198                                   }
    199                                   filter=trace_bpf_setfilter(optarg);
    200                                   break;
    201                         case 'b': /* "begin" time */
    202                                   start_time = parse_date(optarg);
    203                                   break;
    204                         case 'e': /* "end" time */
    205                                   start_time = parse_date(optarg);
    206146                                  break;
    207147                        default:
     
    239179                struct libtrace_ip *ipptr;
    240180                int psize;
    241                 double ts;
    242181                if ((psize = trace_read_packet(trace, &packet)) <= 0) {
    243182                        break;
    244                 }
    245 
    246                 /* Skip packets that don't match the filter */
    247                 if (filter && !trace_bpf_filter(filter,&packet)) {
    248                         continue;
    249                 }
    250 
    251                 ts = trace_get_seconds(&packet);
    252 
    253                 /* skip packets before/after the time */
    254                 if (ts < start_time || ts > end_time) {
    255                         continue;
    256183                }
    257184
Note: See TracChangeset for help on using the changeset viewer.