Changeset 880aa58 for lib/format_pcap.c


Ignore:
Timestamp:
02/16/06 15:44:06 (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:
f03fc17
Parents:
1fbd938
Message:

Added libtrace_set_err() to everything (except format_rt, that's shane's job)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_pcap.c

    r1fbd938 r880aa58  
    4848#include <stdlib.h>
    4949#include <string.h>
     50#include <errno.h>
    5051
    5152#if HAVE_PCAP_BPF_H
     
    9899};
    99100
    100 static int linktype_to_dlt(libtrace_linktype_t t) {
    101         static int table[] = {
    102                 -1, /* LEGACY */
    103                 -1, /* HDLC over POS */
    104                 DLT_EN10MB, /* Ethernet */
    105                 -1, /* ATM */
    106                 DLT_IEEE802_11, /* 802.11 */
    107                 -1 /* END OF TABLE */
    108         };
    109         if (t>sizeof(table)/sizeof(*table)) {
    110                 return -1;
    111         }
    112         return table[t];
    113 }
    114 
    115101static int pcap_init_input(struct libtrace_t *libtrace) {
    116102        char errbuf[PCAP_ERRBUF_SIZE];
     
    125111                        pcap_open_offline(CONNINFO.path,
    126112                                                errbuf)) == NULL) {
    127                         fprintf(stderr,"%s\n",errbuf);
     113                        trace_set_err(TRACE_ERR_INIT_FAILED,"%s",errbuf);
    128114                        return 0;
    129115                }               
    130116        } else {
    131117                if (stat(CONNINFO.path,&buf) == -1) {
    132                         perror("stat");
     118                        trace_set_err(errno,"stat(%s)",CONNINFO.path);
    133119                        return 0;
    134120                }
     
    140126                                        1,
    141127                                        errbuf)) == NULL) {
    142                                 fprintf(stderr,"%s\n",errbuf);
     128                                trace_set_err(TRACE_ERR_INIT_FAILED,"%s",
     129                                                errbuf);
    143130                                return 0;
    144131                        }
     
    147134                                pcap_open_offline(CONNINFO.path,
    148135                                        errbuf)) == NULL) {
    149                                 fprintf(stderr,"%s\n",errbuf);
     136                                trace_set_err(TRACE_ERR_INIT_FAILED,"%s",
     137                                                errbuf);
    150138                                return 0;
    151139                        }
     
    177165                        1,
    178166                        errbuf)) == NULL) {
    179                 fprintf(stderr,"%s\n",errbuf);
     167                trace_set_err(TRACE_ERR_INIT_FAILED,"%s",errbuf);
    180168                return 0;
    181169        }
     
    184172
    185173static int pcapint_init_output(struct libtrace_out_t *libtrace __attribute__((unused))) {
     174        trace_set_err(TRACE_ERR_NO_INIT_OUT,"Writing to a pcap interface not implemented yet");
    186175        return -1;
    187176}
     
    265254static int pcapint_write_packet(struct libtrace_out_t *libtrace __attribute__((unused)), const struct libtrace_packet_t *packet __attribute__((unused))) {
    266255
     256        assert(0);
    267257        return 0;
    268258}
     
    273263        pcapptr = (struct pcap_pkthdr *)packet->header;
    274264        linktype = pcap_datalink(packet->trace->format_data->input.pcap);
    275         switch(linktype) {
    276                 case DLT_NULL:
    277                         return TRACE_TYPE_NONE;
    278                 case DLT_EN10MB:
    279                         return TRACE_TYPE_ETH;
    280                 case DLT_ATM_RFC1483:
    281                         return TRACE_TYPE_ATM;
    282                 case DLT_IEEE802_11:
    283                         return TRACE_TYPE_80211;
    284 #ifdef DLT_LINUX_SLL
    285                 case DLT_LINUX_SLL:
    286                         return TRACE_TYPE_LINUX_SLL;
    287 #endif
    288 #ifdef DLT_PFLOG
    289                 case DLT_PFLOG:
    290                         return TRACE_TYPE_PFLOG;
    291 #endif
    292         }
    293         return -1;
     265        return pcap_dlt_to_libtrace(linktype);
    294266}
    295267
     
    302274                        sll = trace_get_link(packet);
    303275                        if (!sll) {
     276                                trace_set_err(TRACE_ERR_BAD_PACKET,
     277                                                "Bad or missing packet");
    304278                                return -1;
    305279                        }
     
    328302                        pflog = trace_get_link(packet);
    329303                        if (!pflog) {
     304                                trace_set_err(TRACE_ERR_BAD_PACKET,
     305                                                "Bad or missing packet");
    330306                                return -1;
    331307                        }
Note: See TracChangeset for help on using the changeset viewer.