Changeset 6dbc47a for lib/format_erf.c


Ignore:
Timestamp:
02/21/06 15:48:53 (16 years ago)
Author:
Shane Alcock <salcock@…>
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:
9ff68ff
Parents:
1b4901a
Message:

Updated all formats to use TRACE_FORMAT_* instead of nasty strings
format_rt is in a state where it provides basic client services
Added trace_get_format() function
libtrace_packet_t has a type field for storing format now

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r0a6638f r6dbc47a  
    3030#define _GNU_SOURCE
    3131
    32 #define RT_MSG 2
    33 #define RT_DATA 1
    34 
    3532#include "config.h"
    3633#include "common.h"
     
    153150static int dag_start_input(struct libtrace_t *libtrace) {
    154151        struct stat buf;
    155         if (stat(packet->trace->uridata) == -1) {
     152        if (stat(libtrace->uridata, &buf) == -1) {
    156153                trace_set_err(errno,"stat(%s)",libtrace->uridata);
    157154                return 0;
     
    159156        if (S_ISCHR(buf.st_mode)) {
    160157                /* DEVICE */
    161                 if((INPUT.fd = dag_open(packet->trace->uridata)) < 0) {
     158                if((INPUT.fd = dag_open(libtrace->uridata)) < 0) {
    162159                        trace_set_err(errno,"Cannot open DAG %s",
    163                                         packet->trace->uridata);
     160                                        libtrace->uridata);
    164161                        return 0;
    165162                }
    166163                if((DAG.buf = (void *)dag_mmap(INPUT.fd)) == MAP_FAILED) {
    167164                        trace_set_err(errno,"Cannot mmap DAG %s",
    168                                         packet->trace->uridata);
     165                                        libtrace->uridata);
    169166                        return 0;
    170167                }
    171168                if(dag_start(INPUT.fd) < 0) {
    172169                        trace_set_err(errno,"Cannot start DAG %s",
    173                                         packet->trace->uridata);
     170                                        libtrace->uridata);
    174171                        return 0;
    175172                }
    176173        } else {
    177174                trace_set_err(errno,"Not a valid dag device: %s",
    178                                 packet->trace->uridata);
     175                                libtrace->uridata);
    179176                return 0;
    180177        }
     
    305302#endif
    306303
     304static int rtclient_fin_input(struct libtrace_t *libtrace) {
     305        close(INPUT.fd);
     306        return 0;
     307}
     308
    307309static int erf_fin_input(struct libtrace_t *libtrace) {
    308310        LIBTRACE_CLOSE(INPUT.file);
    309311        free(libtrace->format_data);
    310         return 0;
    311 }
    312 
    313 static int rtclient_fin_input(struct libtrace_t *libtrace) {
    314         close(INPUT.fd);
    315312        return 0;
    316313}
     
    376373        packet->buffer = erfptr;
    377374        packet->header = erfptr;
    378         if (((dag_record_t *)buffer)->flags.rxerror == 1) {
     375        if (((dag_record_t *)packet->buffer)->flags.rxerror == 1) {
    379376                packet->payload = NULL;
    380377        } else {
     
    470467}
    471468
     469#define RT_DATA 1
     470#define RT_MSG 2
     471
    472472static int rtclient_read_packet(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) {
    473473        int numbytes = 0;
     
    594594        }
    595595       
    596         if (packet->trace->format == &erf ||
     596        if (packet->trace->format == &erf
    597597#if HAVE_DAG
    598                         packet->trace->format == &dag ||
    599 #endif
    600                         packet->trace->format == &rtclient ) {
     598                        || packet->trace->format == &dag
     599#endif
     600                        ) {
    601601                numbytes = erf_dump_packet(libtrace,
    602602                                (dag_record_t *)packet->buffer,
     
    751751
    752752static void rtclient_help() {
    753         printf("rtclient format module\n");
     753        printf("rtclient format module: $Revision$\n");
     754        printf("DEPRECATED - use rt module instead\n");
    754755        printf("Supported input URIs:\n");
    755         printf("\trtclient:hostname:port\n");
    756         printf("\trtclient:hostname (connects on default port)\n");
    757         printf("\n");
    758         printf("\te.g.: rtclient:localhost\n");
    759         printf("\te.g.: rtclient:localhost:32500\n");
    760         printf("\n");
    761         printf("Supported output URIs:\n");
    762         printf("\trtclient: \t(will output on default port on all available IP addresses) \n");
    763         printf("\trtclient:hostname:port\n");
    764         printf("\trtclient:port\n");
    765         printf("\n");
    766         printf("\te.g.: rtclient:32500\n");
    767         printf("\te.g.: rtclient:\n");
    768         printf("\n");
    769 
    770 }
     756        printf("\trtclient:host:port\n");
     757        printf("\n");
     758        printf("\te.g.:rtclient:localhost:3435\n");
     759        printf("\n");
     760        printf("Supported output URIs:\n");
     761        printf("\tnone\n");
     762        printf("\n");
     763}       
    771764
    772765static struct libtrace_format_t erf = {
    773766        "erf",
    774767        "$Id$",
    775         "erf",
     768        TRACE_FORMAT_ERF,
    776769        erf_init_input,                 /* init_input */       
    777770        NULL,                           /* config_input */
     
    807800        "dag",
    808801        "$Id$",
    809         "erf",
     802        TRACE_FORMAT_ERF,
    810803        dag_init_input,                 /* init_input */       
    811804        NULL,                           /* config_input */
    812805        dag_start_input,                /* start_input */
     806        NULL,                           /* pause_input */
    813807        NULL,                           /* init_output */
    814808        NULL,                           /* config_output */
     
    824818        NULL,                           /* get_timeval */
    825819        NULL,                           /* get_seconds */
     820        NULL,                           /* seek_erf */
     821        NULL,                           /* seek_timeval */
     822        NULL,                           /* seek_seconds */
    826823        erf_get_capture_length,         /* get_capture_length */
    827824        erf_get_wire_length,            /* get_wire_length */
     
    837834        "rtclient",
    838835        "$Id$",
    839         "erf",
     836        TRACE_FORMAT_ERF,
    840837        rtclient_init_input,            /* init_input */       
    841838        NULL,                           /* config_input */
     
    868865
    869866void __attribute__((constructor)) erf_constructor() {
     867        register_format(&rtclient);
    870868        register_format(&erf);
    871869#ifdef HAVE_DAG
Note: See TracChangeset for help on using the changeset viewer.