diff --git a/socket.cxx b/socket.cxx index e676f0a..8ecb52b 100644 --- a/socket.cxx +++ b/socket.cxx @@ -38,6 +38,10 @@ namespace xerxes { throw ConnCreateErr(); } + if(be_debug) + { + std::cout << "socket with fd " << fd << " created" << std::endl; + } } Socket::~Socket() diff --git a/socket.hxx b/socket.hxx index 015e698..8584684 100644 --- a/socket.hxx +++ b/socket.hxx @@ -27,7 +27,7 @@ namespace xerxes { struct Socket : boost::noncopyable { - Socket(int fd); + explicit Socket(int fd); Socket(int domain, int type, int protocol); diff --git a/xerxes.cxx b/xerxes.cxx index 3beb04f..cd06357 100644 --- a/xerxes.cxx +++ b/xerxes.cxx @@ -6,10 +6,6 @@ * Maximilian Marx */ -/** - * TODO : Closing of dockets does not work korrect - */ - #include #include #include @@ -181,10 +177,10 @@ main(int argc, char* argv[]) { if (e.type != EPOLL_ADD_ERR_SOURCE) { - epoll.del(target->fd); + epoll.del(*target); } - epoll.del(target->fd); - epoll.del(source->fd); + epoll.del(*target); + epoll.del(*source); sockets.erase(target->fd); sockets.erase(source->fd); continue; @@ -227,8 +223,8 @@ main(int argc, char* argv[]) { cout << "Socket Error, closing socket" << target->fd << " and " << source->fd << endl; } - epoll.del(target->fd); - epoll.del(source->fd); + epoll.del(*target); + epoll.del(*source); sockets.erase(target->fd); sockets.erase(source->fd); continue; @@ -241,8 +237,8 @@ main(int argc, char* argv[]) { cout << "EPOLLERR or EPOLLHUP event from fd " << source->fd << " target is fd " << target->fd << " close both" << endl; } - epoll.del(target->fd); - epoll.del(source->fd); + epoll.del(*target); + epoll.del(*source); sockets.erase(target->fd); sockets.erase(source->fd); continue;