Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2:Ports
libpcap
libpcap-use-tpid-2.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libpcap-use-tpid-2.patch of Package libpcap
From: Atzm Watanabe <atzm@atzm.org> Date: Wed, 9 Apr 2014 22:57:44 +0900 Subject: pcap-linux: Fix the VLAN TPID handling for the readability Patch-mainline: libpcap-1.7.2 Git-commit: 84c1a335728a8db73267efc822334d0c9d8e4806 References: bsc#874131 Unify the VLAN TPID selection logic into a helper macro VLAN_TPID(). --- pcap-linux.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/pcap-linux.c b/pcap-linux.c index 434cda0eb992..2e4e47a19d30 100644 --- a/pcap-linux.c +++ b/pcap-linux.c @@ -371,6 +371,12 @@ static void pcap_oneshot_mmap(u_char *user, const struct pcap_pkthdr *h, const u_char *bytes); #endif +#ifdef TP_STATUS_VLAN_TPID_VALID +# define VLAN_TPID(hdr, hv) (((hv)->tp_vlan_tpid || ((hdr)->tp_status & TP_STATUS_VLAN_TPID_VALID)) ? (hv)->tp_vlan_tpid : ETH_P_8021Q) +#else +# define VLAN_TPID(hdr, hv) ETH_P_8021Q +#endif + /* * Wrap some ioctl calls */ @@ -1658,12 +1664,7 @@ pcap_read_packet(pcap_t *handle, pcap_handler callback, u_char *userdata) memmove(bp, bp + VLAN_TAG_LEN, handlep->vlan_offset); tag = (struct vlan_tag *)(bp + handlep->vlan_offset); -#if defined(TP_STATUS_VLAN_TPID_VALID) - if (aux->tp_vlan_tpid || (aux->tp_status & TP_STATUS_VLAN_TPID_VALID)) - tag->vlan_tpid = htons(aux->tp_vlan_tpid); - else -#endif - tag->vlan_tpid = htons(ETH_P_8021Q); + tag->vlan_tpid = htons(VLAN_TPID(aux, aux)); tag->vlan_tci = htons(aux->tp_vlan_tci); packet_len += VLAN_TAG_LEN; @@ -4425,11 +4426,7 @@ pcap_read_linux_mmap_v2(pcap_t *handle, int max_packets, pcap_handler callback, h.h2->tp_vlan_tci != 0, #endif h.h2->tp_vlan_tci, -#if defined(TP_STATUS_VLAN_TPID_VALID) - (h.h2->tp_vlan_tpid || (h.h2->tp_status & TP_STATUS_VLAN_TPID_VALID)) ? h.h2->tp_vlan_tpid : ETH_P_8021Q); -#else - ETH_P_8021Q); -#endif + VLAN_TPID(h.h2, h.h2)); if (ret == 1) { pkts++; handlep->packets_read++; @@ -4525,11 +4522,7 @@ pcap_read_linux_mmap_v3(pcap_t *handle, int max_packets, pcap_handler callback, tp3_hdr->hv1.tp_vlan_tci != 0, #endif tp3_hdr->hv1.tp_vlan_tci, -#if defined(TP_STATUS_VLAN_TPID_VALID) - (tp3_hdr->hv1.tp_vlan_tpid || (tp3_hdr->tp_status & TP_STATUS_VLAN_TPID_VALID)) ? tp3_hdr->hv1.tp_vlan_tpid : ETH_P_8021Q); -#else - ETH_P_8021Q); -#endif + VLAN_TPID(tp3_hdr, &tp3_hdr->hv1)); if (ret == 1) { pkts++; handlep->packets_read++; -- 2.5.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor