Changes in / [24fe0f5:c2fe7b6]


Ignore:
Location:
lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lib/format_ndag.c

    r54ef438 r54ef438  
    125125        pthread_t controlthread;
    126126        libtrace_message_queue_t controlqueue;
    127         int consterfframing;
    128127} ndag_format_data_t;
    129128
     
    297296        FORMAT_DATA->nextthreadid = 0;
    298297        FORMAT_DATA->receivers = NULL;
    299         FORMAT_DATA->consterfframing = -1;
    300298
    301299        scan = strchr(libtrace->uridata, ',');
     
    318316                FORMAT_DATA->portstr = strdup(scan + 1);
    319317        }
    320         return 0;
    321 }
    322 
    323 static int ndag_config_input(libtrace_t *libtrace, trace_option_t option,
    324                 void *value) {
    325 
    326         switch(option) {
    327                 case TRACE_OPTION_CONSTANT_ERF_FRAMING:
    328                         FORMAT_DATA->consterfframing = *(int *)value;
    329                         break;
    330                 case TRACE_OPTION_EVENT_REALTIME:
    331                 case TRACE_OPTION_SNAPLEN:
    332                 case TRACE_OPTION_PROMISC:
    333                 case TRACE_OPTION_FILTER:
    334                 case TRACE_OPTION_META_FREQ:
    335                 default:
    336                         trace_set_err(libtrace, TRACE_ERR_OPTION_UNAVAIL,
    337                                         "Unsupported option");
    338                         return -1;
    339         }
    340 
    341318        return 0;
    342319}
     
    620597}
    621598
    622 static int ndag_get_framing_length(const libtrace_packet_t *packet) {
    623 
    624         libtrace_t *libtrace = packet->trace;
    625 
    626         if (FORMAT_DATA->consterfframing >= 0) {
    627                 return FORMAT_DATA->consterfframing;
    628         }
    629         return erf_get_framing_length(packet);
    630 }
    631 
    632 static int ndag_prepare_packet_stream(libtrace_t *restrict libtrace,
    633                 recvstream_t *restrict rt,
    634                 streamsock_t *restrict ssock,
    635                 libtrace_packet_t *restrict packet,
    636                 uint32_t flags UNUSED) {
    637 
    638         /* XXX flags is constant, so we can tell the compiler to not
    639          * bother copying over the parameter
    640          */
     599static int ndag_prepare_packet_stream(libtrace_t *libtrace,
     600                recvstream_t *rt,
     601                streamsock_t *ssock, libtrace_packet_t *packet,
     602                uint32_t flags) {
    641603
    642604        dag_record_t *erfptr;
     
    646608        uint16_t rlen;
    647609
    648         /*
    649610        if ((flags & TRACE_PREP_OWN_BUFFER) == TRACE_PREP_OWN_BUFFER) {
    650611                packet->buf_control = TRACE_CTRL_PACKET;
     
    652613                packet->buf_control = TRACE_CTRL_EXTERNAL;
    653614        }
    654         */
    655         packet->buf_control = TRACE_CTRL_EXTERNAL;
    656615
    657616        packet->trace = libtrace;
     
    664623        if (erfptr->flags.rxerror == 1) {
    665624                packet->payload = NULL;
    666                 if (FORMAT_DATA->consterfframing >= 0) {
    667                         erfptr->rlen = htons(FORMAT_DATA->consterfframing & 0xffff);
    668                 } else {
    669                         erfptr->rlen = htons(erf_get_framing_length(packet));
    670                 }
     625                erfptr->rlen = htons(erf_get_framing_length(packet));
    671626        } else {
    672                 if (FORMAT_DATA->consterfframing >= 0) {
    673                         packet->payload = (char *)packet->buffer +
    674                                 FORMAT_DATA->consterfframing;
    675                 } else {
    676                         packet->payload = (char *)packet->buffer +
     627                packet->payload = (char *)packet->buffer +
    677628                                erf_get_framing_length(packet);
    678                 }
    679629        }
    680630
     
    15031453        NULL,                   /* probe magic */
    15041454        ndag_init_input,        /* init_input */
    1505         ndag_config_input,      /* config_input */
     1455        NULL,                   /* config_input */
    15061456        ndag_start_input,       /* start_input */
    15071457        ndag_pause_input,       /* pause_input */
     
    15281478        erf_get_capture_length, /* get_capture_length */
    15291479        erf_get_wire_length,    /* get_wire_length */
    1530         ndag_get_framing_length, /* get_framing_length */
     1480        erf_get_framing_length, /* get_framing_length */
    15311481        erf_set_capture_length, /* set_capture_length */
    15321482        NULL,                   /* get_received_packets */
  • lib/trace.c

    r9c86dee r9c86dee  
    674674                        /* Dealt with earlier */
    675675                        return -1;
    676                 case TRACE_OPTION_CONSTANT_ERF_FRAMING:
    677                         if (!trace_is_err(libtrace)) {
    678                                 trace_set_err(libtrace,
    679                                                 TRACE_ERR_OPTION_UNAVAIL,
    680                                                 "This format does not feature an ERF header or does not support bypassing the framing length calculation");
    681                         }
    682                         return -1;
    683 
    684676
    685677        }
Note: See TracChangeset for help on using the changeset viewer.