00001 #ifdef nonce
00002
00003
00004 #include <iostream>
00005 #include <cstdlib>
00006
00007 #include <netdb.h>
00008 #include <linux/socket.h>
00009
00010 #include "tcpconn.h"
00011
00015 namespace n2nc {
00016
00017 namespace net {
00018 using namespace std;
00019
00029 class Address {
00030 #define ADDRESS_IP_CHARSIZE (16 +7 +1)
00031
00034 private:
00035
00036 std::string m_ipaddress ;
00040 struct sockaddr_in6 m_ssaddr ;
00041 inline int retrieve_sockaddr_by_ip(std::string &, struct sockaddr_in6 * );
00042 inline int retrieve_ip_by_sockaddr(const struct sockaddr_in6 *, std::string &);
00043 public:
00044 Address();
00045
00050 Address( std::string address );
00051
00058 Address( const struct sockaddr_storage *addr_storage );
00059
00061 ~Address();
00062
00065 int setAddress( std::string addr );
00066
00069 int setAddress( const struct sockaddr_storage *addr_storage );
00070
00072 u_char type() ;
00073
00075 void dump_sockaddr(std::ostream &os) ;
00076
00081 struct sockaddr_storage *tonet();
00082
00084 std::string tostring();
00085
00086 };
00087
00088
00089 }
00090
00091 }
00092
00093 #endif