pcap-parser 0.14.1

Parser for the PCAP/PCAPNG format
Documentation
# Change Log

## [Unreleased][unreleased]

### Added

### Changed/Fixed

## 0.14.1

### Changed/Fixed

- Fix serialization of some options (#23, #25, #26)
- Fix broken internal links (#19)
- Fix returned value for Incomplete to be number of missing bytes, not total (#22)
- NG Reader: fix documentation and example to correctly refill buffer (#18, #20)

### Thanks

- vrbhartiya, Clint White, Jade Lovelace

## 0.14.0

### Changed/Fixed

- Properly handle errors when decoding timestamp resolution (#16)
- Remove deprecated pcapng parsing functions

## 0.13.3

### Changed/Fixed

- Fix computation of resolution for pcapng, when using power of two (#16)

## 0.13.2

### Changed/Fixed

- Add explicit configuration flags for rustdoc (#17)

## 0.13.1

### Changed/Fixed

- PcapReaderIterator: add method to test if reader is exhausted
  This also fix a case where reader returned Incomplete because it could
  not distinguish EOF and a request of 0 bytes.

## 0.13.0

### Changed/Fixed

- Upgrade to nom 7
- Set MSRV to 1.46

## 0.12.0

### Added

- Add method to get total number of consumed bytes for PcapReaderIterator

### Changed/Fixed

- Report error instead of EOF when a block is incomplete and no more data is available
- Add input to error type (helps diagnosing errors)
  `PcapError` now usually has a lifetime

## 0.11.1

### Changed/Fixed

- Fix potential integer overflows when aligning data in EPB and BSD
  Overflow was harmless, length arguments is tested after aligning anyway
- pcapng: use streaming parsers, return incomplete instead of eof (#13)

## 0.11.0

### Added

- Add trait PcapNGPacketBlock

### Changed/Fixed

- Rewrite Pcap and PcapNG block parsing functions
  - the 'block_type' field is always read as little-endian
    This is used to get the endianness for the encoding of the block.
  - new parsing functions are faster
- Use consistent names for big-endian/little-endian versions:
  - 'parse_block' is deprecated and replaced by 'parse_block_le'
  - 'parse_enhancedpacketblock' is deprecated and replaced by 'parse_enhancedpacketblock_le'
  - same for all parsing functions with '_le'
  - 'parse_sectionheader' is replaced by 'parse_sectionheaderblock'
- Functions that parse a specific block type (for ex. EPB) return the matching type
  (EnhancedPacketBlock) with encapsulating it in a Block
- Improve documentation and examples

## 0.10.1

### Changed/Fixed

- Re-export nom so crate users do not need to import it
- Convert doc links to short form when possible

## 0.10.0

### Changed/Fixed

- Upgrade to nom 6

## 0.9.4

### Added

- Add trait PartialEq to PcapError

### Changed/Fixed

- Improve error handling in create_reader (if input is empty or incomplete)
- Set MSRV to 1.44
- Update consume() documentation, it does not refill buffer (Closes #9)

## 0.9.3

### Added

- Add support for nanosecond-resolution legacy PCAP files

## 0.9.2

### Added

- Add Error trait to PcapError
- Edition 2018: remove all "extern crate" statements
- QA: warn if using unstable features, forbid unsafe code

## 0.9.1

### Added

- Check magic constants when reading DSB and SJE blocks
- Add `ToVec` implementation for SJE, DCB and Block

## 0.9.0

### Added

- Add `Default` trait to `Linktype`
- Add `NameRecordType` constants
- pcap-ng: add method to get the (normalized) magic of blocks
- Add support for Decryption Secrets Block (DSB)
- Add support for Systemd Journal Export Block (SJE)

### Changed/Fixed

- Improve documentation (remove relative links, broken outside docs.rs)

## 0.8.4

- Add method to access data of the PcapReaderIterator buffer
- Fix all clippy warnings

## 0.8.3

- Avoid integer overflow in `parse_name_record` edge case

## 0.8.2

- Remove byteorder crate, use functions from std
- Return Eof if refill failed (avoid infinite loop)

## 0.8.1

- Upgrade to cookie-factory 0.3.0

## 0.8.0

- Add basic support for serialization (little-endian only)
- Add basic support for Wireshark exported PDUs
- Add traits Clone and Debug to PacketData
- Move data parsing functions to a subdirectory

## 0.7.1

- Fix wrong EOF detection
- Fix handling of incomplete reads (in example)

## 0.7.0

- Upgrade to nom 5
  - Breaking API changes, mainly for error types

## 0.6.1

- Make LegacyPcapBlock a regular structure with parser, and add serialization

## 0.6.0

- Complete rewrite of the crate (breaks API)
- Add streaming parser iterators
- Replace Packet with Blocks
  - Allows handling of non-data blocks
  - Handles correctly timestamps and resolution
  - Remove incorrect or deprecated code
- Better parsing of all variants (BE/LE, block types, etc.)
- Better (and panic-free) functions to extract block contents
- Set edition to 2018
- Better documentation

## 0.5.1

- Fix computation of timestamp for high-resolution pcap-ng