pcap: Add an offset argument in pcap_iov()
The offset is passed directly to pcap_frame() and allows any headers that are not part of the frame to capture to be skipped. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
72e7d3024b
commit
fd8334b25d
2 changed files with 4 additions and 3 deletions
5
pcap.c
5
pcap.c
|
@ -138,9 +138,10 @@ void pcap_multiple(const struct iovec *iov, size_t frame_parts, unsigned int n,
|
|||
* @iov: Pointer to the array of struct iovec describing the I/O vector
|
||||
* containing packet data to write, including L2 header
|
||||
* @iovcnt: Number of buffers (@iov entries)
|
||||
* @offset: Offset of the L2 frame within the full data length
|
||||
*/
|
||||
/* cppcheck-suppress unusedFunction */
|
||||
void pcap_iov(const struct iovec *iov, size_t iovcnt)
|
||||
void pcap_iov(const struct iovec *iov, size_t iovcnt, size_t offset)
|
||||
{
|
||||
struct timespec now;
|
||||
|
||||
|
@ -148,7 +149,7 @@ void pcap_iov(const struct iovec *iov, size_t iovcnt)
|
|||
return;
|
||||
|
||||
clock_gettime(CLOCK_REALTIME, &now);
|
||||
pcap_frame(iov, iovcnt, 0, &now);
|
||||
pcap_frame(iov, iovcnt, offset, &now);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
2
pcap.h
2
pcap.h
|
@ -9,7 +9,7 @@
|
|||
void pcap(const char *pkt, size_t l2len);
|
||||
void pcap_multiple(const struct iovec *iov, size_t frame_parts, unsigned int n,
|
||||
size_t offset);
|
||||
void pcap_iov(const struct iovec *iov, size_t iovcnt);
|
||||
void pcap_iov(const struct iovec *iov, size_t iovcnt, size_t offset);
|
||||
void pcap_init(struct ctx *c);
|
||||
|
||||
#endif /* PCAP_H */
|
||||
|
|
Loading…
Reference in a new issue