Changeset 496864e
- Timestamp:
- 06/27/06 14:04:09 (15 years ago)
- 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:
- 306f91c
- Parents:
- e5c2bc4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/protocols.c
r38ff7c9 r496864e 602 602 uint16_t proto; 603 603 uint32_t remaining; 604 void *transport; 604 void *l3; 605 struct ports_t *ports; 605 606 static struct sockaddr_storage dummy; 606 607 … … 610 611 remaining = trace_get_capture_length(packet); 611 612 612 transport= trace_get_payload_from_link(613 l3 = trace_get_payload_from_link( 613 614 trace_get_link(packet), 614 615 trace_get_link_type(packet), … … 616 617 &remaining); 617 618 618 if (! transport)619 if (!l3) 619 620 return false; 620 621 621 transport = trace_get_vlan_payload_from_ethernet_payload(transport,622 l3 = trace_get_vlan_payload_from_ethernet_payload(l3, 622 623 &proto, 623 624 &remaining); 624 625 625 if (! transport)626 return false;626 if (!l3) 627 return NULL; 627 628 628 629 switch (proto) { … … 630 631 { 631 632 struct sockaddr_in *addr4=(struct sockaddr_in*)addr; 632 libtrace_ip_t *ip = (libtrace_ip_t*)transport; 633 libtrace_ip_t *ip = (libtrace_ip_t*)l3; 634 ports = trace_get_payload_from_ip(ip,NULL,&remaining); 633 635 addr4->sin_family=AF_INET; 634 addr4->sin_port=0; 636 if (ports && remaining>=sizeof(*ports)) 637 addr4->sin_port=ports->src; 638 else 639 addr4->sin_port=0; 635 640 addr4->sin_addr=ip->ip_src; 636 641 return addr; … … 639 644 { 640 645 struct sockaddr_in6 *addr6=(struct sockaddr_in6*)addr; 641 libtrace_ip6_t *ip6 = (libtrace_ip6_t*)transport; 646 libtrace_ip6_t *ip6 = (libtrace_ip6_t*)l3; 647 ports = trace_get_payload_from_ip6(ip6,NULL,&remaining); 642 648 addr6->sin6_family=AF_INET6; 643 addr6->sin6_port=0; 649 if (ports && remaining>=sizeof(*ports)) 650 addr6->sin6_port=ports->dst; 651 else 652 addr6->sin6_port=0; 644 653 addr6->sin6_flowinfo=0; 645 654 addr6->sin6_addr=ip6->ip_src;
Note: See TracChangeset
for help on using the changeset viewer.