Changeset 6c248a9 for lib/format_pcap.c


Ignore:
Timestamp:
03/01/06 11:52:01 (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:
30c0246
Parents:
4aa4615
Message:

Add support for the other seek formats.
Fix bugs in other formats to do with _start()/_pause()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_pcap.c

    rd8f02df r6c248a9  
    116116static int pcap_start_input(struct libtrace_t *libtrace) {
    117117        char errbuf[PCAP_ERRBUF_SIZE];
     118
     119        /* if the file is already open */
     120        if (INPUT.pcap)
     121                return 0; /* success */
     122
    118123        if ((INPUT.pcap =
    119124                pcap_open_offline(libtrace->uridata,
     
    158163}
    159164
    160 static int pcap_pause_input(libtrace_t *libtrace) {
    161         pcap_close(INPUT.pcap);
    162         INPUT.pcap=NULL;
    163 
    164         return 0;
    165 }
    166 
    167165static int pcap_init_output(struct libtrace_out_t *libtrace) {
    168166        libtrace->format_data = malloc(sizeof(struct pcap_format_data_out_t));
     
    177175        DATA(libtrace)->snaplen = LIBTRACE_PACKET_BUFSIZE;
    178176        DATA(libtrace)->promisc = 0;
    179         return 1;
     177        return 0; /* success */
    180178}
    181179
     
    211209                        errbuf)) == NULL) {
    212210                trace_set_err(libtrace,TRACE_ERR_INIT_FAILED,"%s",errbuf);
    213                 return -1;
     211                return -1; /* failure */
    214212        }
    215213        /* Set a filter if one is defined */
     
    219217                        trace_set_err(libtrace,TRACE_ERR_INIT_FAILED,"%s",
    220218                                        pcap_geterr(INPUT.pcap));
    221                         return -1;
     219                        return -1; /* failure */
    222220                }
    223                 return 0;
    224         }
    225         return 1;
    226 }
    227 
    228 static int pcap_fin_input(struct libtrace_t *libtrace) {
    229         /* we don't need to close the pcap object since libtrace will have
    230          * paused the trace for us.
    231          */
     221        }
     222        return 0; /* success */
     223}
     224
     225static int pcapint_pause_input(libtrace_t *libtrace)
     226{
     227        pcap_close(INPUT.pcap);
     228        INPUT.pcap=NULL;
     229        return 0; /* success */
     230}
     231
     232static int pcap_fin_input(libtrace_t *libtrace)
     233{
    232234        free(libtrace->format_data);
    233         return 0;
    234 }
    235 
    236 static int pcap_fin_output(libtrace_out_t *libtrace) {
     235        return 0; /* success */
     236}
     237
     238static int pcap_fin_output(libtrace_out_t *libtrace)
     239{
    237240        pcap_dump_flush(OUTPUT.trace.dump);
    238241        pcap_dump_close(OUTPUT.trace.dump);
     
    452455        pcap_config_input,              /* config_input */
    453456        pcap_start_input,               /* start_input */
    454         pcap_pause_input,               /* pause_input */
     457        NULL,                           /* pause_input */
    455458        pcap_init_output,               /* init_output */
    456459        NULL,                           /* config_output */
     
    485488        pcapint_config_input,           /* config_input */
    486489        pcapint_start_input,            /* start_input */
    487         pcap_pause_input,               /* pause_input */
     490        pcapint_pause_input,            /* pause_input */
    488491        NULL,                           /* init_output */
    489492        NULL,                           /* config_output */
Note: See TracChangeset for help on using the changeset viewer.