summaryrefslogtreecommitdiff
path: root/src/plainPacket.cpp
diff options
context:
space:
mode:
authorOthmar Gsenger <otti@anytun.org>2008-12-11 13:53:46 +0000
committerOthmar Gsenger <otti@anytun.org>2008-12-11 13:53:46 +0000
commitdf76b26737a354612688f1fd098ef9378b6f75bd (patch)
tree306fa450cc51c1a9db6ab8748769bba09dc68b02 /src/plainPacket.cpp
parentremoved unused includes (diff)
fixed ip version detection
Diffstat (limited to 'src/plainPacket.cpp')
-rw-r--r--src/plainPacket.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/plainPacket.cpp b/src/plainPacket.cpp
index 2b5c755..5ada650 100644
--- a/src/plainPacket.cpp
+++ b/src/plainPacket.cpp
@@ -70,10 +70,12 @@ void PlainPacket::setPayloadType(payload_type_t payload_type)
return;
}
- char * ip_version = reinterpret_cast<char *>(payload_);
- if(ip_version[0] == 4)
+ char * ip_version_ptr = reinterpret_cast<char *>(payload_);
+ char ip_version = ip_version_ptr[0];
+ ip_version >>=4;
+ if(ip_version == 4)
*payload_type_ = PAYLOAD_TYPE_T_HTON(PAYLOAD_TYPE_TUN4);
- else if(ip_version[0] == 6)
+ else if(ip_version == 6)
*payload_type_ = PAYLOAD_TYPE_T_HTON(PAYLOAD_TYPE_TUN6);
}
else