- Address(const struct sockaddr_in& address) : addr(address) {}
- uint32_t ipv4 () const { return ntohl(addr.sin_addr.s_addr); }
- uint16_t port () const { return ntohs(addr.sin_port); }
- operator sockaddr_in () const {return addr;}
+ Address(const struct sockaddr_in& address) {
+ clear();
+ addr->dests[0].addr = address.sin_addr.s_addr;
+ addr->dests[0].port = address.sin_port;
+ }
+ ~Address(){
+ free(addr);
+ }
+ uint32_t ipv4 () const { return ntohl(addr->dests[0].addr); }
+ uint16_t port () const { return ntohs(addr->dests[0].port); }
+ Address& operator = (const Address& b) {
+ if (this != &b) {
+ free(addr);
+ clear();
+ addr->dests[0].addr = b.addr->dests[0].addr;
+ addr->dests[0].port = b.addr->dests[0].port;
+ }
+ return *this;
+ }