- close on socket handle now calls v_close() -> protocol()->close()
[senf.git] / Socket / SocketHandle.cc
index 74803af..3878a36 100644 (file)
@@ -30,7 +30,7 @@
 // Custom includes
 #include <sstream>
 #include <sys/socket.h>
-#include "Utils/TypeInfo.hh"
+#include "../Utils/TypeInfo.hh"
 
 //#include "SocketHandle.mpp"
 #define prefix_
 
 prefix_ void senf::SocketBody::v_close()
 {
-    if (::shutdown(fd(),SHUT_RDWR) < 0)
-        throw SystemException(errno);
-    if (::close(fd()) < 0)
-        throw SystemException(errno);
+    protocol().close();
 }
 
 prefix_ void senf::SocketBody::v_terminate()
 {
-    struct linger ling;
-    ling.l_onoff = 0;
-    ling.l_linger = 0;
-
-    // We purposely IGNORE any errors: this method is used to try and
-    // terminate the connection ignoring any possible problems
-
-    ::setsockopt(fd(),SOL_SOCKET,SO_LINGER,&ling,sizeof(ling));
-    ::shutdown(fd(),SHUT_RDWR);
-    ::close(fd());
+    protocol().terminate();
 }
 
 prefix_ bool senf::SocketBody::v_eof()
@@ -115,4 +103,6 @@ prefix_ std::ostream & senf::operator<<(std::ostream & os, SocketHandle<Policy>
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: