From ddfc1b38d7bb5cc607afc7fadc6374911f5a9e60 Mon Sep 17 00:00:00 2001 From: Markus Grüneis Date: Wed, 17 Feb 2010 21:40:54 +0000 Subject: whitespace only change: unified formatting with "astyle --style=k/r --indent=spaces=2 --unpad-paren --add-brackets --align-pointer=type --keep-one-line-blocks --indent-col1-comments --lineend=linux --suffix=none --recursive" --- src/plainPacket.cpp | 101 +++++++++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 48 deletions(-) (limited to 'src/plainPacket.cpp') diff --git a/src/plainPacket.cpp b/src/plainPacket.cpp index 79a72de..0fa21e6 100644 --- a/src/plainPacket.cpp +++ b/src/plainPacket.cpp @@ -11,7 +11,7 @@ * tunneling and relaying of packets of any protocol. * * - * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, + * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, * Christian Pointner * * This file is part of Anytun. @@ -51,48 +51,52 @@ u_int32_t PlainPacket::getHeaderLength() payload_type_t PlainPacket::getPayloadType() const { - if(payload_type_) + if(payload_type_) { return PAYLOAD_TYPE_T_NTOH(*payload_type_); + } return 0; } void PlainPacket::setPayloadType(payload_type_t payload_type) { - if(!payload_type_) + if(!payload_type_) { return; - + } + if(payload_type == PAYLOAD_TYPE_TUN) { if(!payload_) { *payload_type_ = PAYLOAD_TYPE_T_HTON(PAYLOAD_TYPE_TUN); return; } - char * ip_version_ptr = reinterpret_cast(payload_); - char ip_version = ip_version_ptr[0]; - ip_version >>=4; - if(ip_version == 4) + char* ip_version_ptr = reinterpret_cast(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 == 6) + } else if(ip_version == 6) { *payload_type_ = PAYLOAD_TYPE_T_HTON(PAYLOAD_TYPE_TUN6); - } - else + } + } else { *payload_type_ = PAYLOAD_TYPE_T_HTON(payload_type); + } } u_int32_t PlainPacket::getPayloadLength() const { - if(!payload_) + if(!payload_) { return 0; + } return (length_ > sizeof(payload_type_t)) ? (length_ - sizeof(payload_type_t)) : 0; } - + void PlainPacket::setPayloadLength(u_int32_t payload_length) { Buffer::setLength(payload_length + sizeof(payload_type_t)); - // depending on allow_realloc buf_ may point to another address - // therefore in this case reinit() gets called by Buffer::setLength() + // depending on allow_realloc buf_ may point to another address + // therefore in this case reinit() gets called by Buffer::setLength() } void PlainPacket::reinit() @@ -100,12 +104,13 @@ void PlainPacket::reinit() payload_type_ = reinterpret_cast(buf_); payload_ = buf_ + sizeof(payload_type_t); - if(length_ <= (sizeof(payload_type_t))) + if(length_ <= (sizeof(payload_type_t))) { payload_ = NULL; + } if(length_ < (sizeof(payload_type_t))) { payload_type_ = NULL; - AnytunError::throwErr() << "plain packet can't be initialized, buffer is too small"; + AnytunError::throwErr() << "plain packet can't be initialized, buffer is too small"; } } @@ -147,35 +152,35 @@ NetworkAddress PlainPacket::getSrcAddr() const NetworkAddress PlainPacket::getDstAddr() const { - if(!payload_type_ || !payload_) - return NetworkAddress(); - - payload_type_t type = PAYLOAD_TYPE_T_NTOH(*payload_type_); - - if(type == PAYLOAD_TYPE_TAP) // Ehternet - { - // TODO - return NetworkAddress(); - } - else if(type == PAYLOAD_TYPE_TUN4) // IPv4 - { - if(length_ < (sizeof(payload_type_t)+5*4)) - return NetworkAddress(); - char * hdr = reinterpret_cast(payload_); - boost::asio::ip::address_v4::bytes_type ip_octets; - for (int i=0; i<4;i++) - ip_octets[i]=hdr[4*4+i]; - return NetworkAddress(boost::asio::ip::address_v4(ip_octets)); - } - else if(type == PAYLOAD_TYPE_TUN6) // IPv6 - { - if(length_ < (sizeof(payload_type_t)+2*16+2*4)) - return NetworkAddress(); - char * hdr = reinterpret_cast(payload_); - boost::asio::ip::address_v6::bytes_type ip_octets; - for (int i=0; i<16;i++) - ip_octets[i]=hdr[2*4+16+i]; - return NetworkAddress(boost::asio::ip::address_v6(ip_octets)); - } - return NetworkAddress(); + if(!payload_type_ || !payload_) { + return NetworkAddress(); + } + + payload_type_t type = PAYLOAD_TYPE_T_NTOH(*payload_type_); + + if(type == PAYLOAD_TYPE_TAP) { // Ehternet + // TODO + return NetworkAddress(); + } else if(type == PAYLOAD_TYPE_TUN4) { // IPv4 + if(length_ < (sizeof(payload_type_t)+5*4)) { + return NetworkAddress(); + } + char* hdr = reinterpret_cast(payload_); + boost::asio::ip::address_v4::bytes_type ip_octets; + for(int i=0; i<4; i++) { + ip_octets[i]=hdr[4*4+i]; + } + return NetworkAddress(boost::asio::ip::address_v4(ip_octets)); + } else if(type == PAYLOAD_TYPE_TUN6) { // IPv6 + if(length_ < (sizeof(payload_type_t)+2*16+2*4)) { + return NetworkAddress(); + } + char* hdr = reinterpret_cast(payload_); + boost::asio::ip::address_v6::bytes_type ip_octets; + for(int i=0; i<16; i++) { + ip_octets[i]=hdr[2*4+16+i]; + } + return NetworkAddress(boost::asio::ip::address_v6(ip_octets)); + } + return NetworkAddress(); } -- cgit v1.2.3