Changeset 65a5900 for lib/trace.c


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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.