--- a/src/Network/Socket.cc Sat Jan 31 15:21:57 2009 +0200
+++ b/src/Network/Socket.cc Fri Sep 11 15:34:48 2009 +0300
@@ -19,15 +19,21 @@
}
NetworkSocket::NetworkSocket (int family, int socktype, int protocol, NetworkReactor *reactor) :
- sock_type(family, socktype, protocol), fd(-1), type(family, socktype, protocol), registered(0), reactor(reactor ? reactor : NetworkReactor::current)
+ sock_type(family, socktype, protocol), fd(-1), type(family, socktype, protocol),
+ bound(false),
+ registered(false), reactor(reactor ? reactor : NetworkReactor::current),
+ want_read(false), want_write(false)
{
- reset();
+
}
NetworkSocket::NetworkSocket (int fd, socket_type type, NetworkReactor *reactor) :
- sock_type(type), fd(fd), type(type), registered(0), reactor(reactor ? reactor : NetworkReactor::current)
+ sock_type(type), fd(fd), type(type),
+ bound(false),
+ registered(false), reactor(reactor ? reactor : NetworkReactor::current),
+ want_read(false), want_write(false)
{
- reset();
+
}
NetworkSocket::~NetworkSocket (void) {
@@ -41,9 +47,8 @@
}
void NetworkSocket::reset (void) {
+ fd = -1;
bound = false;
- want_read = false;
- want_write = false;
}
void NetworkSocket::lazy_socket (int family, int socktype, int protocol) {
@@ -75,8 +80,7 @@
if (::closesocket(fd))
Engine::log(WARN, "socket.force_close") << "error closing socket: " << dump_errno();
- // reset state
- fd = -1;
+ // forget fd
reset();
}
@@ -134,10 +138,9 @@
if (::getsockname(fd, addr.get_sockaddr(), addr.get_socklen_ptr()))
throw NetworkSocketErrno(*this, "getsockname");
- // update
+ // updated sockaddr
addr.update();
- // return addr
return addr;
}
@@ -148,10 +151,9 @@
if (::getpeername(fd, addr.get_sockaddr(), addr.get_socklen_ptr()))
throw NetworkSocketErrno(*this, "getpeername");
- // update
+ // updated sockaddr
addr.update();
- // return addr
return addr;
}
@@ -180,7 +182,6 @@
if (src)
src->update();
- // done
return socket;
}
@@ -296,8 +297,7 @@
if (::closesocket(fd))
throw NetworkSocketErrno(*this, "close");
- // reset
- fd = -1;
+ // forget fd
reset();
}