Changeset 67a14d4 for lib


Ignore:
Timestamp:
04/08/06 13:39:32 (16 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:
aa67e26
Parents:
68155f1
Message:

Move more types to the libtrace standard (typedef'd libtrace_*_t)
Add casts where appropriate
Remove default:'s from enum'd switch()'s

Location:
lib
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • lib/format_pcap.c

    red636fb4 r67a14d4  
    348348                case TRACE_TYPE_LINUX_SLL:
    349349                {
    350                         struct trace_sll_header_t *sll;
     350                        libtrace_sll_header_t *sll;
    351351                        sll = trace_get_link(packet);
    352352                        if (!sll) {
     
    377377                case TRACE_TYPE_PFLOG:
    378378                {
    379                         struct trace_pflog_header_t *pflog;
     379                        libtrace_pflog_header_t *pflog;
    380380                        pflog = trace_get_link(packet);
    381381                        if (!pflog) {
  • lib/libtrace.h

    r9231fe5 r67a14d4  
    301301  unsigned int clp:1;
    302302  unsigned int hec;
    303 } __attribute__ ((packed)) libtrace_atm_cell;
     303} __attribute__ ((packed)) libtrace_atm_cell_t;
    304304
    305305/** POS header */
     
    308308 u_int16_t header;
    309309 u_int16_t ether_type;          /**< ether type */
    310 } __attribute__ ((packed)) libtrace_pos;
     310} __attribute__ ((packed)) libtrace_pos_t;
    311311
    312312/** 802.11 header */
     
    992992       TRACE_TYPE_ETH,                  /**< 802.3 style Ethernet */
    993993       TRACE_TYPE_ATM,
     994       TRACE_TYPE_AAL5,
    994995       TRACE_TYPE_80211,                /**< 802.11 frames */
    995996       TRACE_TYPE_NONE,
    996997       TRACE_TYPE_LINUX_SLL,            /**< Linux "null" framing */
    997998       TRACE_TYPE_PFLOG,                /**< FreeBSD's PFlug */
    998        TRACE_TYPE_LEGACY_DEFAULT,
    999999       TRACE_TYPE_LEGACY_POS,
    10001000       TRACE_TYPE_LEGACY_ATM,
  • lib/libtrace_int.h

    r4af54d1 r67a14d4  
    7979#define RP_BUFSIZE 65536
    8080
    81 struct libtrace_event_t {
     81struct libtrace_event_status_t {
    8282        libtrace_packet_t *packet;
    8383        int psize;
     
    9494        bool started;                   /**< if this trace has started */
    9595        libtrace_err_t err;             /**< error information */
    96         struct libtrace_event_t event;  /**< the next event */
     96        struct libtrace_event_status_t event;   /**< the next event */
    9797        char *uridata;                  /**< the uri of this trace */
    9898        struct tracefifo_t *fifo;       /**< fifo used in this trace */
     
    119119void trace_set_err_out(libtrace_out_t *trace, int errcode, const char *msg,...);
    120120
    121 typedef struct trace_sll_header_t {
     121typedef struct libtrace_sll_header_t {
    122122        uint16_t pkttype;               /* packet type */
    123123        uint16_t hatype;                /* link-layer address type */
     
    125125        char addr[8];                   /* link-layer address */
    126126        uint16_t protocol;              /* protocol */
    127 } trace_sll_header_t;
     127} libtrace_sll_header_t;
    128128
    129129#ifndef PF_RULESET_NAME_SIZE
     
    135135#endif
    136136
    137 struct trace_pflog_header_t {
     137typedef struct libtrace_pflog_header_t {
    138138        uint8_t    length;
    139139        sa_family_t   af;
     
    146146        uint8_t    dir;
    147147        uint8_t    pad[3];
    148 };
     148} libtrace_pflog_header_t;
    149149
    150150
  • lib/linktypes.c

    r0220eb1 r67a14d4  
    2929#endif
    3030#endif
    31                 default:
    32                         return -1;
    3331        }
     32        return -1;
    3433}
    3534
     
    4948#endif
    5049#endif
    51                 default:
    52                         return -1;
    5350        }
     51        return -1;
    5452}
    5553
     
    7068        switch (erf) {
    7169                case TYPE_LEGACY:       return TRACE_TYPE_LEGACY;
     70                case TYPE_HDLC_POS:     return TRACE_TYPE_HDLC_POS;
    7271                case TYPE_ETH:          return TRACE_TYPE_ETH;
    7372                case TYPE_ATM:          return TRACE_TYPE_ATM;
    74                 default:
    75                         return -1;
     73                case TYPE_AAL5:         return TRACE_TYPE_AAL5;
    7674        }
     75        return -1;
    7776}
    7877
     
    8382                case TRACE_TYPE_ETH:    return TYPE_ETH;
    8483                case TRACE_TYPE_ATM:    return TYPE_ATM;
    85                 default:
    86                                         return -1;
    8784        }
     85        return -1;
    8886}
  • lib/protocols.c

    r64b6517 r67a14d4  
    1717                uint32_t *remaining)
    1818{
    19         libtrace_ether_t *eth = ethernet;
     19        libtrace_ether_t *eth = (libtrace_ether_t*)ethernet;
    2020
    2121        if (remaining) {
     
    5959static void *trace_get_payload_from_80211(void *link, uint16_t *type, uint32_t *remaining)
    6060{
    61         libtrace_80211_t *wifi = link;
    62         struct ieee_802_11_payload *eth;
     61        libtrace_80211_t *wifi;
     62        libtrace_802_11_payload_t *eth;
    6363
    6464        if (remaining && *remaining < sizeof(libtrace_80211_t))
    6565                return NULL;
     66
     67        wifi=(libtrace_80211_t*)link;
    6668
    6769        /* Data packet? */
     
    7375                return NULL;
    7476
    75         eth=(void*)((char*)wifi+sizeof(*eth));
     77        eth=(libtrace_802_11_payload_t *)((char*)wifi+sizeof(*eth));
    7678
    7779        if (*type) *type=eth->type;
     
    8385                uint16_t *type, uint32_t *remaining)
    8486{
    85         struct trace_sll_header_t *sll;
    86 
    87         sll = link;
     87        libtrace_sll_header_t *sll;
     88
     89        sll = (libtrace_sll_header_t*) link;
    8890
    8991        if (remaining) {
     
    102104{
    103105        /* 64 byte capture. */
    104         struct libtrace_llcsnap *llc = link;
    105 
    106         if (remaining) {
    107                 if (*remaining < sizeof(struct libtrace_llcsnap)+4)
    108                         return NULL;
    109                 *remaining-=(sizeof(struct libtrace_llcsnap)+4);
     106        libtrace_llcsnap_t *llc = (libtrace_llcsnap_t*)link;
     107
     108        if (remaining) {
     109                if (*remaining < sizeof(libtrace_llcsnap_t)+4)
     110                        return NULL;
     111                *remaining-=(sizeof(libtrace_llcsnap_t)+4);
    110112        }
    111113
     
    114116         * don't have time!
    115117         */
    116         llc = (void*)((char *)llc + 4);
     118        llc = (libtrace_llcsnap_t*)((char *)llc + 4);
    117119
    118120        if (*type) *type = ntohs(llc->type);
     
    125127{
    126128        /* 64 byte capture. */
    127         struct libtrace_pos *pos = link;
    128 
    129         if (remaining) {
    130                 if (*remaining < sizeof(struct libtrace_pos))
    131                         return NULL;
    132                 *remaining-=sizeof(struct libtrace_pos);
     129        libtrace_pos_t *pos = (libtrace_pos_t*)link;
     130
     131        if (remaining) {
     132                if (*remaining < sizeof(libtrace_pos_t))
     133                        return NULL;
     134                *remaining-=sizeof(libtrace_pos_t);
    133135        }
    134136
     
    141143                uint16_t *type, uint32_t *remaining)
    142144{
    143         struct trace_pflog_header_t *pflog = link;
     145        libtrace_pflog_header_t *pflog = (libtrace_pflog_header_t*)link;
    144146        if (remaining) {
    145147                if (*remaining<sizeof(*pflog))
     
    150152                switch(pflog->af) {
    151153                        case AF_INET6: *type=0x86DD; break;
    152                         case AF_INET: *type=0x0800; break;
     154                        case AF_INET:  *type=0x0800; break;
    153155                        default:
    154156                                      /* Unknown */
     
    204206                return NULL;
    205207
    206         return ret;
     208        return (libtrace_ip_t*)ret;
    207209}
    208210
     
    223225                return NULL;
    224226
    225         return ret;
     227        return (libtrace_ip6_t*)ret;
    226228}
    227229
     
    325327        switch (*proto) {
    326328                case 0x0800: /* IPv4 */
    327                         transport=trace_get_payload_from_ip(transport, proto, remaining);
     329                        transport=trace_get_payload_from_ip(
     330                                (libtrace_ip_t*)transport, proto, remaining);
    328331                        /* IPv6 */
    329332                        if (transport && *proto == 41) {
    330                                 transport=trace_get_payload_from_ip6(transport,
    331                                                 proto,remaining);
     333                                transport=trace_get_payload_from_ip6(
     334                                 (libtrace_ip6_t*)transport, proto,remaining);
    332335                        }
    333336                        return transport;
    334337                case 0x86DD: /* IPv6 */
    335                         return trace_get_payload_from_ip6(transport, proto, remaining);
     338                        return trace_get_payload_from_ip6(
     339                                (libtrace_ip6_t*)transport, proto, remaining);
    336340                       
    337341                default:
     
    345349        libtrace_tcp_t *tcp;
    346350
    347         tcp=trace_get_transport(packet,&proto,NULL);
     351        tcp=(libtrace_tcp_t*)trace_get_transport(packet,&proto,NULL);
    348352
    349353        if (proto != 6)
    350354                return NULL;
    351355
    352         return tcp;
     356        return (libtrace_tcp_t*)tcp;
    353357}
    354358
     
    369373        libtrace_udp_t *udp;
    370374
    371         udp=trace_get_transport(packet,&proto,NULL);
     375        udp=(libtrace_udp_t*)trace_get_transport(packet,&proto,NULL);
    372376
    373377        if (proto != 17)
     
    393397        libtrace_icmp_t *icmp;
    394398
    395         icmp=trace_get_transport(packet,&proto,NULL);
     399        icmp=(libtrace_icmp_t*)trace_get_transport(packet,&proto,NULL);
    396400
    397401        if (proto != 1)
     
    453457uint16_t trace_get_source_port(const libtrace_packet_t *packet)
    454458{
    455         struct ports_t *port = trace_get_transport((libtrace_packet_t*)packet,
     459        struct ports_t *port =
     460                (struct ports_t*)trace_get_transport((libtrace_packet_t*)packet,
    456461                        NULL, NULL);
    457462
     
    462467uint16_t trace_get_destination_port(const libtrace_packet_t *packet)
    463468{
    464         struct ports_t *port = trace_get_transport((libtrace_packet_t*)packet,
     469        struct ports_t *port =
     470                (struct ports_t*)trace_get_transport((libtrace_packet_t*)packet,
    465471                        NULL, NULL);
    466472
     
    471477uint8_t *trace_get_source_mac(libtrace_packet_t *packet) {
    472478        void *link = trace_get_link(packet);
    473         libtrace_80211_t *wifi = link;
    474         libtrace_ether_t *ethptr = link;
     479        libtrace_80211_t *wifi;
     480        libtrace_ether_t *ethptr = (libtrace_ether_t*)link;
    475481        if (!link)
    476482                return NULL;
    477483        switch (trace_get_link_type(packet)) {
    478484                case TRACE_TYPE_80211:
     485                        wifi=(libtrace_80211_t*)link;
    479486                        return (uint8_t*)&wifi->mac2;
     487                case TRACE_TYPE_80211_PRISM:
     488                        wifi=(libtrace_80211_t*)((char*)link+144);
     489                        return (uint8_t*)&wifi->mac2;
     490                case TRACE_TYPE_LEGACY_ETH:
    480491                case TRACE_TYPE_ETH:
    481492                        return (uint8_t*)&ethptr->ether_shost;
    482                 default:
    483                         fprintf(stderr,"Not implemented\n");
    484                         assert(0);
    485         }
     493                case TRACE_TYPE_LEGACY:
     494                case TRACE_TYPE_LEGACY_POS:
     495                case TRACE_TYPE_NONE:
     496                case TRACE_TYPE_ATM:
     497                case TRACE_TYPE_HDLC_POS:
     498                case TRACE_TYPE_LINUX_SLL:
     499                case TRACE_TYPE_PFLOG:
     500                case TRACE_TYPE_LEGACY_ATM:
     501                        return NULL;
     502        }
     503        fprintf(stderr,"Not implemented\n");
     504        assert(0);
     505        return NULL;
    486506}
    487507
    488508uint8_t *trace_get_destination_mac(libtrace_packet_t *packet) {
    489509        void *link = trace_get_link(packet);
    490         libtrace_80211_t *wifi = link;
    491         libtrace_ether_t *ethptr = link;
     510        libtrace_80211_t *wifi;
     511        libtrace_ether_t *ethptr = (libtrace_ether_t*)link;
    492512        if (!link)
    493513                return NULL;
    494514        switch (trace_get_link_type(packet)) {
    495515                case TRACE_TYPE_80211:
     516                        wifi=(libtrace_80211_t*)link;
     517                        return (uint8_t*)&wifi->mac1;
     518                case TRACE_TYPE_80211_PRISM:
     519                        wifi=(libtrace_80211_t*)((char*)link+144);
    496520                        return (uint8_t*)&wifi->mac1;
    497521                case TRACE_TYPE_ETH:
     522                case TRACE_TYPE_LEGACY_ETH:
    498523                        return (uint8_t*)&ethptr->ether_dhost;
    499                 default:
    500                         fprintf(stderr,"Not implemented\n");
    501                         assert(0);
    502         }
     524                case TRACE_TYPE_LEGACY_ATM:
     525                case TRACE_TYPE_LEGACY:
     526                case TRACE_TYPE_LEGACY_POS:
     527                case TRACE_TYPE_NONE:
     528                case TRACE_TYPE_ATM:
     529                case TRACE_TYPE_HDLC_POS:
     530                case TRACE_TYPE_LINUX_SLL:
     531                case TRACE_TYPE_PFLOG:
     532                        /* No MAC address */
     533                        return NULL;
     534        }
     535        fprintf(stderr,"Not implemented\n");
     536        assert(0);
     537        return NULL;
    503538}
    504539
     
    536571                {
    537572                        struct sockaddr_in *addr4=(struct sockaddr_in*)addr;
    538                         libtrace_ip_t *ip = transport;
     573                        libtrace_ip_t *ip = (libtrace_ip_t*)transport;
    539574                        addr4->sin_family=AF_INET;
    540575                        addr4->sin_port=0;
     
    545580                {
    546581                        struct sockaddr_in6 *addr6=(struct sockaddr_in6*)addr;
    547                         libtrace_ip6_t *ip6 = transport;
     582                        libtrace_ip6_t *ip6 = (libtrace_ip6_t*)transport;
    548583                        addr6->sin6_family=AF_INET6;
    549584                        addr6->sin6_port=0;
     
    590625                {
    591626                        struct sockaddr_in *addr4=(struct sockaddr_in*)addr;
    592                         libtrace_ip_t *ip = transport;
     627                        libtrace_ip_t *ip = (libtrace_ip_t*)transport;
    593628                        addr4->sin_family=AF_INET;
    594629                        addr4->sin_port=0;
     
    599634                {
    600635                        struct sockaddr_in6 *addr6=(struct sockaddr_in6*)addr;
    601                         libtrace_ip6_t *ip6 = transport;
     636                        libtrace_ip6_t *ip6 = (libtrace_ip6_t*)transport;
    602637                        addr6->sin6_family=AF_INET6;
    603638                        addr6->sin6_port=0;
  • lib/trace.c

    r7b4b5ab r67a14d4  
    134134static char *xstrndup(const char *src,size_t n)
    135135{       
    136         char *ret=malloc(n+1);
     136        char *ret=(char*)malloc(n+1);
    137137        xstrncpy(ret,src,n);
    138138        return ret;
     
    272272 */
    273273struct libtrace_t *trace_create(const char *uri) {
    274         struct libtrace_t *libtrace = malloc(sizeof(struct libtrace_t));
     274        struct libtrace_t *libtrace =
     275                        (struct libtrace_t *)malloc(sizeof(struct libtrace_t));
    275276        char *scan = 0;
    276277        const char *uridata = 0;                 
     
    347348 */
    348349struct libtrace_t * trace_create_dead (const char *uri) {
    349         struct libtrace_t *libtrace = malloc(sizeof(struct libtrace_t));
    350         char *scan = calloc(sizeof(char),URI_PROTO_LINE);
     350        struct libtrace_t *libtrace = (struct libtrace_t *)
     351                                        malloc(sizeof(struct libtrace_t));
     352        char *scan = (char *)calloc(sizeof(char),URI_PROTO_LINE);
    351353        char *uridata;
    352354        struct libtrace_format_t *tmp;
     
    393395       
    394396libtrace_out_t *trace_create_output(const char *uri) {
    395         libtrace_out_t *libtrace = malloc(sizeof(struct libtrace_out_t));
     397        libtrace_out_t *libtrace =
     398                        (libtrace_out_t*)malloc(sizeof(struct libtrace_out_t));
    396399       
    397400        char *scan = 0;
     
    513516                case TRACE_OPTION_SNAPLEN:
    514517                        libtrace->snaplen=*(int*)value;
    515                         break;
     518                        return 0;
    516519                case TRACE_OPTION_FILTER:
    517                         libtrace->filter=value;
    518                         break;
     520                        libtrace->filter=(struct libtrace_filter_t *)value;
     521                        return 0;
    519522                case TRACE_OPTION_PROMISC:
    520523                        trace_set_err(libtrace,TRACE_ERR_OPTION_UNAVAIL,
    521524                                "Promisc mode is not supported by this format module");
    522525                        return -1;
    523                 default:
    524                         trace_set_err(libtrace,TRACE_ERR_UNKNOWN_OPTION,
    525                                 "Unknown option %i", option);
    526                         return -1;
    527         }
    528         return 0;
     526        }
     527        trace_set_err(libtrace,TRACE_ERR_UNKNOWN_OPTION,
     528                "Unknown option %i", option);
     529        return -1;
    529530}
    530531
     
    579580
    580581libtrace_packet_t *trace_create_packet() {
    581         libtrace_packet_t *packet = calloc(1,sizeof(libtrace_packet_t));
     582        libtrace_packet_t *packet =
     583                (libtrace_packet_t*)calloc(1,sizeof(libtrace_packet_t));
    582584        packet->buf_control=TRACE_CTRL_PACKET;
    583585        return packet;
     
    585587
    586588libtrace_packet_t *trace_copy_packet(const libtrace_packet_t *packet) {
    587         libtrace_packet_t *dest = malloc(sizeof(libtrace_packet_t));
     589        libtrace_packet_t *dest =
     590                (libtrace_packet_t *)malloc(sizeof(libtrace_packet_t));
    588591        dest->trace=packet->trace;
    589592        dest->buffer=malloc(
     
    773776                seconds = packet->trace->format->get_seconds(packet);
    774777                timestamp = ((uint64_t)((uint32_t)seconds) << 32) + \
    775                             (( seconds - (uint32_t)seconds   ) * UINT_MAX);
     778                      (uint64_t)(( seconds - (uint32_t)seconds   ) * UINT_MAX);
    776779        }
    777780        return timestamp;
     
    902905                return packet->trace->format->get_link_type(packet);
    903906        }
    904         return -1;
     907        return (libtrace_linktype_t)-1;
    905908}
    906909
     
    919922struct libtrace_eventobj_t trace_event(struct libtrace_t *trace,
    920923                struct libtrace_packet_t *packet) {
    921         struct libtrace_eventobj_t event = {0,0,0.0,0};
     924        struct libtrace_eventobj_t event = {TRACE_EVENT_IOWAIT,0,0.0,0};
    922925
    923926        if (!trace) {
     
    946949struct libtrace_filter_t *trace_bpf_setfilter(const char *filterstring) {
    947950#if HAVE_BPF
    948         struct libtrace_filter_t *filter = malloc(sizeof(struct libtrace_filter_t));
     951        struct libtrace_filter_t *filter = (struct libtrace_filter_t*)
     952                                malloc(sizeof(struct libtrace_filter_t));
    949953        filter->filterstring = strdup(filterstring);
    950954        filter->flag = 0;
     
    13431347                        uint64_t timestamp =
    13441348                                ((uint64_t)((uint32_t)seconds) << 32) + \
    1345                             (( seconds - (uint32_t)seconds   ) * UINT_MAX);
     1349                            (uint64_t)(( seconds - (uint32_t)seconds   ) * UINT_MAX);
    13461350                        return trace->format->seek_erf(trace,timestamp);
    13471351                }
  • lib/wag.h

    r4af54d1 r67a14d4  
    108108
    109109/** 802.11 payload */
    110 struct ieee_802_11_payload {
     110typedef struct ieee_802_11_payload {
    111111        uint16_t     type; /**< ether type of this packet */
    112 };
     112} libtrace_802_11_payload_t;
    113113
    114114
Note: See TracChangeset for help on using the changeset viewer.