diff options
author | Christian Pointner <equinox@anytun.org> | 2008-02-28 01:57:42 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2008-02-28 01:57:42 +0000 |
commit | a742bbf8610aae58fc6d6ee2377c83395b3ca535 (patch) | |
tree | a8840f313844dc48225c3219f5e8e7f8aa0fabc6 /plainPacket.cpp | |
parent | added get Src/Dst Address @ plainPacket (diff) |
fixed PlainPacket get Src/Dst Address
added toString to NetworkAddress
Diffstat (limited to 'plainPacket.cpp')
-rw-r--r-- | plainPacket.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/plainPacket.cpp b/plainPacket.cpp index 1789854..f9c43ae 100644 --- a/plainPacket.cpp +++ b/plainPacket.cpp @@ -89,19 +89,21 @@ NetworkAddress PlainPacket::getSrcAddr() const if(!payload_type_ || !payload_) return NetworkAddress(); - if(PAYLOAD_TYPE_TAP) // Ehternet + payload_type_t type = PAYLOAD_TYPE_T_NTOH(*payload_type_); + + if(type == PAYLOAD_TYPE_TAP) // Ehternet { // TODO return NetworkAddress(); } - else if(PAYLOAD_TYPE_TUN) // IPv4 + else if(type == PAYLOAD_TYPE_TUN) // IPv4 { if(length_ < (sizeof(payload_type_t)+sizeof(struct ip))) return NetworkAddress(); struct ip* hdr = reinterpret_cast<struct ip*>(payload_); return NetworkAddress(hdr->ip_src); } - else if(PAYLOAD_TYPE_TUN6) // IPv6 + else if(type == PAYLOAD_TYPE_TUN6) // IPv6 { if(length_ < (sizeof(payload_type_t)+sizeof(struct ip6_hdr))) return NetworkAddress(); @@ -117,19 +119,21 @@ NetworkAddress PlainPacket::getDstAddr() const if(!payload_type_ || !payload_) return NetworkAddress(); - if(PAYLOAD_TYPE_TAP) // Ehternet + payload_type_t type = PAYLOAD_TYPE_T_NTOH(*payload_type_); + + if(type == PAYLOAD_TYPE_TAP) // Ehternet { // TODO return NetworkAddress(); } - else if(PAYLOAD_TYPE_TUN) // IPv4 + else if(type == PAYLOAD_TYPE_TUN) // IPv4 { if(length_ < (sizeof(payload_type_t)+sizeof(struct ip))) return NetworkAddress(); struct ip* hdr = reinterpret_cast<struct ip*>(payload_); return NetworkAddress(hdr->ip_dst); } - else if(PAYLOAD_TYPE_TUN6) // IPv6 + else if(type == PAYLOAD_TYPE_TUN6) // IPv6 { if(length_ < (sizeof(payload_type_t)+sizeof(struct ip6_hdr))) return NetworkAddress(); |