Changeset 65a5900


Ignore:
Timestamp:
02/17/06 15:06:59 (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:
548a9c2
Parents:
3d4d52d
Message:

Split erf up into init/start functions
Add "errno" outputs to trace_set_err
Add support for SNAPLEN/FILTER config options

Location:
lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r3d4d52d r65a5900  
    147147#ifdef HAVE_DAG
    148148static int dag_init_input(struct libtrace_t *libtrace) {
    149         struct stat buf;
    150149        libtrace->format_data = (struct libtrace_format_data_t *)
    151150                malloc(sizeof(struct libtrace_format_data_t));
    152 
     151}
     152
     153static int dag_start_input(struct libtrace_t *libtrace) {
     154        struct stat buf;
    153155        if (stat(packet->trace->uridata) == -1) {
    154156                trace_set_err(errno,"stat(%s)",libtrace->uridata);
     
    203205                malloc(sizeof(struct libtrace_format_data_t));
    204206
     207}
     208
     209static int erf_start_input(struct libtrace_t *libtrace)
     210{
    205211        libtrace->format_data->input.file = trace_open_file(libtrace);
    206212
     
    800806        erf_init_input,                 /* init_input */       
    801807        NULL,                           /* config_input */
    802         NULL,                           /* start_input */
     808        erf_start_input,                /* start_input */
    803809        NULL,                           /* pause_input */
    804810        erf_init_output,                /* init_output */
     
    834840        dag_init_input,                 /* init_input */       
    835841        NULL,                           /* config_input */
    836         NULL,                           /* start_output */
     842        dag_start_input,                /* start_input */
    837843        NULL,                           /* init_output */
    838844        NULL,                           /* config_output */
  • lib/trace.c

    r3d4d52d r65a5900  
    423423                libtrace->format->pause_input(libtrace);
    424424        libtrace->started=false;
     425        return 0;
     426}
     427
     428int trace_config(libtrace_t *libtrace,
     429                trace_option_t option,
     430                void *value)
     431{
     432        int ret;
     433        if (libtrace->format->config_input) {
     434                ret=libtrace->format->config_input(libtrace,option,value);
     435                if (ret==0)
     436                        return 0;
     437        }
     438        switch(option) {
     439                case TRACE_OPTION_SNAPLEN:
     440                        libtrace->snaplen=*(int*)value;
     441                        break;
     442                case TRACE_OPTION_FILTER:
     443                        libtrace->filter=value;
     444                        break;
     445                case TRACE_OPTION_PROMISC:
     446                        trace_set_err(TRACE_ERR_OPTION_UNAVAIL,
     447                                "Promisc mode is not supported by this format module");
     448                        return -1;
     449                default:
     450                        trace_set_err(TRACE_ERR_UNKNOWN_OPTION,
     451                                "Unknown option %i", option);
     452                        return -1;
     453        }
    425454        return 0;
    426455}
     
    15141543void trace_set_err(int errcode,const char *msg,...)
    15151544{
     1545        char buf[256];
    15161546        va_list va;
    15171547        va_start(va,msg);
    15181548        trace_err.err_num=errcode;
    1519         vsnprintf(trace_err.problem,sizeof(trace_err.problem),msg,va);
     1549        if (errcode>0) {
     1550                vsnprintf(buf,sizeof(buf),msg,va);
     1551                snprintf(trace_err.problem,sizeof(trace_err.problem),
     1552                                "%s: %s",buf,strerror(errno));
     1553        } else {
     1554                vsnprintf(trace_err.problem,sizeof(trace_err.problem),msg,va);
     1555        }
    15201556        va_end(va);
    15211557}
Note: See TracChangeset for help on using the changeset viewer.