Fixed bug #645: Filter Frontend_net must set proper Origin value.
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 30 Aug 2006 10:48:52 +0000 (10:48 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 30 Aug 2006 10:48:52 +0000 (10:48 +0000)
Don't use inline for Origin class stuff. Move Origin stuff to separate
source file.

src/Makefile.am
src/filter_frontend_net.cpp
src/origin.cpp [new file with mode: 0644]
src/package.cpp
src/package.hpp

index c0a8584..3a115ac 100644 (file)
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.51 2006-08-29 10:06:31 marc Exp $
+## $Id: Makefile.am,v 1.52 2006-08-30 10:48:52 adam Exp $
 
 MAINTAINERCLEANFILES = Makefile.in config.in config.hpp
 
@@ -27,7 +27,7 @@ libmetaproxy_la_SOURCES = \
        filter_virt_db.cpp filter_virt_db.hpp \
        filter_z3950_client.cpp filter_z3950_client.hpp \
        gduutil.cpp gduutil.hpp \
-       package.cpp package.hpp \
+       origin.cpp package.cpp package.hpp \
        pipe.cpp pipe.hpp \
        plainfile.cpp \
        router.hpp router_chain.hpp router_chain.cpp \
index 28a55a4..385494b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: filter_frontend_net.cpp,v 1.20 2006-08-30 09:56:41 marc Exp $
+/* $Id: filter_frontend_net.cpp,v 1.21 2006-08-30 10:48:52 adam Exp $
    Copyright (c) 2005-2006, Index Data.
 
    See the LICENSE file for details
@@ -154,7 +154,10 @@ mp::ZAssocChild::ZAssocChild(yazpp_1::IPDU_Observable *PDU_Observable,
     m_no_requests = 0;
     m_delete_flag = false;
     m_package = package;
-    // TODO why is m_origin not set here someplace ?? MC ??
+    const char *peername = PDU_Observable->getpeername();
+    if (!peername)
+        peername = "unknown";
+    m_origin.set_tcpip_address(std::string(peername), m_session.id());
 }
 
 
diff --git a/src/origin.cpp b/src/origin.cpp
new file mode 100644 (file)
index 0000000..0def014
--- /dev/null
@@ -0,0 +1,44 @@
+/* $Id: origin.cpp,v 1.1 2006-08-30 10:48:52 adam Exp $
+   Copyright (c) 2005-2006, Index Data.
+
+   See the LICENSE file for details
+ */
+
+
+#include "config.hpp"
+#include "package.hpp"
+
+#include <iostream>
+
+namespace mp = metaproxy_1;
+
+mp::Origin::Origin() : type(API) 
+{ 
+    origin_id = 0; 
+}
+
+void mp::Origin::set_tcpip_address(std::string addr, unsigned long s)
+{
+    address = addr;
+    origin_id = s;
+    type = TCPIP;
+}
+
+std::ostream& std::operator<<(std::ostream& os,  mp::Origin& o)
+{
+    if (o.address != "")
+        os << o.address;
+    else
+        os << "0";
+    os << ":" << o.origin_id;
+    return os;
+}
+                
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * c-file-style: "stroustrup"
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
index d5559d0..541b452 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: package.cpp,v 1.14 2006-08-30 09:56:41 marc Exp $
+/* $Id: package.cpp,v 1.15 2006-08-30 10:48:52 adam Exp $
    Copyright (c) 2005-2006, Index Data.
 
    See the LICENSE file for details
@@ -126,16 +126,6 @@ std::ostream& std::operator<<(std::ostream& os,  mp::Package& p)
     return os;
 }
 
-std::ostream& std::operator<<(std::ostream& os,  mp::Origin& o)
-{
-    if (o.address != "")
-        os << o.address;
-    else
-        os << "0";
-    os << ":" << o.port;
-    return os;
-}
-
                 
 /*
  * Local variables:
index d1cc671..3fb632b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: package.hpp,v 1.21 2006-08-30 09:56:41 marc Exp $
+/* $Id: package.hpp,v 1.22 2006-08-30 10:48:52 adam Exp $
    Copyright (c) 2005-2006, Index Data.
 
    See the LICENSE file for details
@@ -40,10 +40,10 @@ namespace metaproxy_1 {
             TCPIP
         } type;
         std::string address; // UNIX+TCPIP
-        int port;            // TCPIP only
+        unsigned long origin_id;
     public:
-        Origin() : type(API) {};
-
+        Origin();
+        void set_tcpip_address(std::string addr, unsigned long id);
     };
 
     class Package {