X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2FnetworkAddress.h;h=1d4c602aa009cfd138f1d66cee529cfa742ed6bd;hp=dc4c7ac5c57dfd312a1024b11f1e1ea7b3e19dac;hb=ef0cacf2508418915d3f64b04003be3c13fed3cc;hpb=ece844834d2cecc028ce81ca283f5d441088580e diff --git a/src/networkAddress.h b/src/networkAddress.h index dc4c7ac..1d4c602 100644 --- a/src/networkAddress.h +++ b/src/networkAddress.h @@ -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. @@ -48,65 +48,62 @@ typedef boost::array ethernet_bytes_type; typedef boost::asio::ip::address_v4::bytes_type ipv4_bytes_type; typedef boost::asio::ip::address_v6::bytes_type ipv6_bytes_type; -enum network_address_type_t -{ - ipv4=0, - ipv6=1, - ethernet=2 +enum network_address_type_t { + ipv4=0, + ipv6=1, + ethernet=2 }; class NetworkAddress { public: - NetworkAddress(); - NetworkAddress(const NetworkAddress &); - NetworkAddress(const std::string &); - NetworkAddress(boost::asio::ip::address_v6); - NetworkAddress(boost::asio::ip::address_v4); - NetworkAddress(u_int64_t); - NetworkAddress(const network_address_type_t type, const std::string & address ); - ~NetworkAddress(); - void setNetworkAddress(const network_address_type_t type, const std::string & address ); - void setNetworkAddress(boost::asio::ip::address_v4); - void setNetworkAddress(boost::asio::ip::address_v6); - void setNetworkAddress(u_int64_t); - network_address_type_t getNetworkAddressType() const; + NetworkAddress(); + NetworkAddress(const NetworkAddress&); + NetworkAddress(const std::string&); + NetworkAddress(boost::asio::ip::address_v6); + NetworkAddress(boost::asio::ip::address_v4); + NetworkAddress(uint64_t); + NetworkAddress(const network_address_type_t type, const std::string& address); + ~NetworkAddress(); + void setNetworkAddress(const network_address_type_t type, const std::string& address); + void setNetworkAddress(boost::asio::ip::address_v4); + void setNetworkAddress(boost::asio::ip::address_v6); + void setNetworkAddress(uint64_t); + network_address_type_t getNetworkAddressType() const; std::string toString() const; - bool operator<(const NetworkAddress &s) const; - ipv4_bytes_type to_bytes_v4() const; - ipv6_bytes_type to_bytes_v6() const; - ethernet_bytes_type to_bytes_ethernet() const; + bool operator<(const NetworkAddress& s) const; + ipv4_bytes_type to_bytes_v4() const; + ipv6_bytes_type to_bytes_v6() const; + ethernet_bytes_type to_bytes_ethernet() const; const boost::asio::ip::address_v4& getNetworkAddressV4() const; const boost::asio::ip::address_v6& getNetworkAddressV6() const; - const u_int64_t getNetworkAdrressEther() const; + const uint64_t getNetworkAdrressEther() const; protected: Mutex mutex_; - boost::asio::ip::address_v4 ipv4_address_; - boost::asio::ip::address_v6 ipv6_address_; - u_int64_t ethernet_address_; - network_address_type_t network_address_type_; + boost::asio::ip::address_v4 ipv4_address_; + boost::asio::ip::address_v6 ipv6_address_; + uint64_t ethernet_address_; + network_address_type_t network_address_type_; private: - NetworkAddress operator=(const NetworkAddress &s); + NetworkAddress operator=(const NetworkAddress& s); friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & network_address_type_; - if (network_address_type_==ipv4) - { - std::string ip(ipv4_address_.to_string()); - ar & ip; - ipv4_address_=boost::asio::ip::address_v4::from_string(ip); - } - if (network_address_type_==ipv6) - { - std::string ip(ipv6_address_.to_string()); - ar & ip; - ipv6_address_=boost::asio::ip::address_v6::from_string(ip); - } - if (network_address_type_==ethernet) - ar & ethernet_address_; - } + void serialize(Archive& ar, const unsigned int version) { + ar& network_address_type_; + if(network_address_type_==ipv4) { + std::string ip(ipv4_address_.to_string()); + ar& ip; + ipv4_address_=boost::asio::ip::address_v4::from_string(ip); + } + if(network_address_type_==ipv6) { + std::string ip(ipv6_address_.to_string()); + ar& ip; + ipv6_address_=boost::asio::ip::address_v6::from_string(ip); + } + if(network_address_type_==ethernet) { + ar& ethernet_address_; + } + } }; // for(int i=0;i<4;i++)