Changeset 1331

Show
Ignore:
Timestamp:
18/03/08 14:12:36 (10 months ago)
Author:
spa1
Message:
  • <format>_set_capture_length now resets the cached capture length for the packet, so that subsequent calls to trace_get_capture_length will no longer return the "old" capture length
  • erf_read_packet should no longer complain about packets with newer ERF types, i.e. ERF type values > 10
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/format_erf.c

    r1330 r1331  
    386386 
    387387        /* Unknown/corrupt */ 
    388         if (((dag_record_t *)packet->buffer)->type >= 10) { 
     388        if (((dag_record_t *)packet->buffer)->type >= TYPE_AAL2) { 
    389389                trace_set_err(libtrace, TRACE_ERR_BAD_PACKET, "Corrupt or Unknown ERF type"); 
    390390                return -1; 
     
    609609                return trace_get_capture_length(packet); 
    610610        } 
     611        /* Reset cached capture length - otherwise we will both return the 
     612         * wrong value here and subsequent get_capture_length() calls will 
     613         * return the wrong value. */ 
     614        packet->capture_length = -1; 
    611615        erfptr = (dag_record_t *)packet->header; 
    612616        erfptr->rlen = htons(size + erf_get_framing_length(packet)); 
  • trunk/lib/format_pcap.c

    r1319 r1331  
    559559                return trace_get_capture_length(packet); 
    560560        } 
     561        /* Reset the cached capture length */ 
     562        packet->capture_length = -1; 
    561563        pcapptr = (struct pcap_pkthdr *)packet->header; 
    562564        pcapptr->caplen = size; 
  • trunk/lib/format_pcapfile.c

    r1319 r1331  
    497497                return trace_get_capture_length(packet); 
    498498        } 
     499        /* Reset the cached capture length */ 
     500        packet->capture_length = -1; 
    499501        pcapptr = (libtrace_pcapfile_pkt_hdr_t *)packet->header; 
    500502        pcapptr->caplen = swapl(packet->trace,(uint32_t)size);