Fixed bug #1130: Problem with SRU server closing connection.
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 21 Jan 2008 16:15:00 +0000 (16:15 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 21 Jan 2008 16:15:00 +0000 (16:15 +0000)
This problem is fixed by using Z_Assoc::close when the session
closes rather than just deleting and close(shutdown) the socket.
The Z_Assoc::close as of yazpp 1.1.0 should do things correctly.

configure.ac
src/filter_frontend_net.cpp

index 844b31b..9869bc3 100644 (file)
@@ -36,7 +36,7 @@ AC_CHECK_LIB(dl,dlopen)
 AC_CHECK_LIB(m,main)
 
 ## YAZPP checks
-YAZPP_INIT([threads],[1.0.3])
+YAZPP_INIT([threads],[1.1.0])
 if test -z "$YAZPPLIB"; then
     AC_MSG_ERROR([YAZ++ development libraries missing])
 fi
index 38ed62b..1b87267 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: filter_frontend_net.cpp,v 1.24 2007-05-09 21:23:09 adam Exp $
+/* $Id: filter_frontend_net.cpp,v 1.25 2008-01-21 16:15:00 adam Exp $
    Copyright (c) 2005-2007, Index Data.
 
 This file is part of Metaproxy.
@@ -152,7 +152,9 @@ void mp::ThreadPoolPackage::result()
     }
 
     if (m_session->m_no_requests == 0 && m_package->session().is_closed())
-       delete m_session;
+    {
+        m_session->close();
+    }
     delete this;
 }
 
@@ -205,7 +207,10 @@ void mp::ZAssocChild::failNotify()
 {
     // TODO: send Package to signal "close"
     if (m_session.is_closed())
+    {
+        delete this;
        return;
+    }
     m_no_requests++;
 
     m_session.close();