Changeset 411f3c7 for lib/trace.c


Ignore:
Timestamp:
04/23/06 13:48:20 (15 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:
e337363
Parents:
7b2a39b
Message:

Fixed the format module auditing code in trace.c to work with the new linked
list.
Did some more tidyups on format_linux, it now supports get_capture_length()
properly, does snapping and configurable promisc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/trace.c

    r7b2a39b r411f3c7  
    124124        f->next=formats_list;
    125125        formats_list=f;
    126         /* Now, verify things */
     126        /* Now, verify things
     127         * This #if can be changed to a 1 to output warnings about inconsistant
     128         * functions being provided by format modules.  This generally is very
     129         * noisy, as almost all modules don't implement one or more functions
     130         * for various reasons.  This is very useful when checking a new
     131         * format module is sane.
     132         */
    127133#if 0
    128         if (format_list[nformats]->init_input) {
     134        if (f->init_input) {
    129135#define REQUIRE(x) \
    130                 if (!format_list[nformats]->x) \
    131                         fprintf(stderr,"%s: Input format should provide " #x "\n",format_list[nformats]->name)
     136                if (!f->x) \
     137                        fprintf(stderr,"%s: Input format should provide " #x "\n",f->name)
    132138                REQUIRE(read_packet);
    133139                REQUIRE(start_input);
    134                 REQUIRE(config_input);
    135                 REQUIRE(pause_input);
    136140                REQUIRE(fin_input);
    137141                REQUIRE(get_link_type);
     
    140144                REQUIRE(get_framing_length);
    141145                REQUIRE(trace_event);
    142                 if (!format_list[nformats]->get_erf_timestamp
    143                         && !format_list[nformats]->get_seconds
    144                         && !format_list[nformats]->get_timeval) {
     146                if (!f->get_erf_timestamp
     147                        && !f->get_seconds
     148                        && !f->get_timeval) {
    145149                        fprintf(stderr,"%s: A trace format capable of input, should provide at least one of\n"
    146 "get_erf_timestamp, get_seconds or trace_timeval\n",format_list[nformats]->name);
    147                 }
    148                 if (format_list[nformats]->trace_event==trace_event_device) {
     150"get_erf_timestamp, get_seconds or trace_timeval\n",f->name);
     151                }
     152                if (f->trace_event!=trace_event_trace) {
     153                        /* Theres nothing that a trace file could optimise with
     154                         * config_input
     155                         */
     156                        REQUIRE(pause_input);
     157                        REQUIRE(config_input);
    149158                        REQUIRE(get_fd);
    150159                }
    151160                else {
    152                         if (format_list[nformats]->get_fd) {
     161                        if (f->get_fd) {
    153162                                fprintf(stderr,"%s: Unnecessary get_fd\n",
    154                                                 format_list[nformats]->name);
     163                                                f->name);
    155164                        }
    156165                }
     
    159168        else {
    160169#define REQUIRE(x) \
    161                 if (format_list[nformats]->x) \
    162                         fprintf(stderr,"%s: Non Input format shouldn't need " #x "\n",format_list[nformats]->name)
     170                if (f->x) \
     171                        fprintf(stderr,"%s: Non Input format shouldn't need " #x "\n",f->name)
    163172                REQUIRE(read_packet);
    164173                REQUIRE(start_input);
     
    175184#undef REQUIRE
    176185        }
    177         if (format_list[nformats]->init_output) {
     186        if (f->init_output) {
    178187#define REQUIRE(x) \
    179                 if (!format_list[nformats]->x) \
    180                         fprintf(stderr,"%s: Output format should provide " #x "\n",format_list[nformats]->name)
     188                if (!f->x) \
     189                        fprintf(stderr,"%s: Output format should provide " #x "\n",f->name)
    181190                REQUIRE(write_packet);
    182191                REQUIRE(start_output);
     
    187196        else {
    188197#define REQUIRE(x) \
    189                 if (format_list[nformats]->x) \
    190                         fprintf(stderr,"%s: Non Output format shouldn't need " #x "\n",format_list[nformats]->name)
     198                if (f->x) \
     199                        fprintf(stderr,"%s: Non Output format shouldn't need " #x "\n",f->name)
    191200                REQUIRE(write_packet);
    192201                REQUIRE(start_output);
     
    13501359{
    13511360        char *buf2 = buf;
    1352         static char staticbuf[18]={0,};
     1361        char staticbuf[18]={0,};
    13531362        if (!buf2)
    13541363                buf2=staticbuf;
Note: See TracChangeset for help on using the changeset viewer.