You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2009/10/09 05:38:23 UTC

svn commit: r823392 - in /qpid/trunk/qpid/cpp/src/qpid: client/RdmaConnector.cpp sys/RdmaIOPlugin.cpp sys/rdma/RdmaClient.cpp sys/rdma/RdmaIO.cpp sys/rdma/RdmaIO.h sys/rdma/RdmaServer.cpp sys/rdma/rdma_wrap.h

Author: astitcher
Date: Fri Oct  9 03:38:22 2009
New Revision: 823392

URL: http://svn.apache.org/viewvc?rev=823392&view=rev
Log:
Used new SocketAddress class in rdma code

Modified:
    qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h

Modified: qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp Fri Oct  9 03:38:22 2009
@@ -167,20 +167,9 @@
     assert(joined);
     poller = Poller::shared_ptr(new Poller);
 
-    // This stuff needs to abstracted out of here to a platform specific file
-    ::addrinfo *res;
-    ::addrinfo hints;
-    hints.ai_flags = 0;
-    hints.ai_family = AF_INET;
-    hints.ai_socktype = SOCK_STREAM;
-    hints.ai_protocol = 0;
-    int n = ::getaddrinfo(host.c_str(), boost::lexical_cast<std::string>(port).c_str(), &hints, &res);
-    if (n<0) {
-        throw Exception(QPID_MSG("Cannot resolve " << host << ": " << ::gai_strerror(n)));
-    }
-
+    SocketAddress sa(host, boost::lexical_cast<std::string>(port));
     Rdma::Connector* c = new Rdma::Connector(
-        *res->ai_addr,
+        sa,
         Rdma::ConnectionParams(maxFrameSize, Rdma::DEFAULT_WR_ENTRIES),
         boost::bind(&RdmaConnector::connected, this, poller, _1, _2),
         boost::bind(&RdmaConnector::connectionError, this, poller, _1, _2),

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/RdmaIOPlugin.cpp Fri Oct  9 03:38:22 2009
@@ -29,6 +29,7 @@
 #include "qpid/sys/OutputControl.h"
 
 #include <boost/bind.hpp>
+#include <boost/lexical_cast.hpp>
 #include <memory>
 
 #include <netdb.h>
@@ -304,8 +305,9 @@
     sin.sin_port = htons(listeningPort);
     sin.sin_addr.s_addr = INADDR_ANY;
 
+    SocketAddress sa("",boost::lexical_cast<std::string>(listeningPort));
     listener.reset(
-        new Rdma::Listener((const sockaddr&)(sin),
+        new Rdma::Listener(sa,
             Rdma::ConnectionParams(65536, Rdma::DEFAULT_WR_ENTRIES),
             boost::bind(&RdmaIOProtocolFactory::established, this, poller, _1),
             boost::bind(&RdmaIOProtocolFactory::connectionError, this, _1, _2),
@@ -331,24 +333,14 @@
 
 void RdmaIOProtocolFactory::connect(
     Poller::shared_ptr poller,
-    const std::string& host, int16_t p,
+    const std::string& host, int16_t port,
     ConnectionCodec::Factory* f,
     ConnectFailedCallback failed)
 {
-    ::addrinfo *res;
-    ::addrinfo hints = {};
-    hints.ai_family = AF_INET;
-    hints.ai_socktype = SOCK_STREAM;
-    stringstream ss; ss << p;
-    string port = ss.str();
-    int n = ::getaddrinfo(host.c_str(), port.c_str(), &hints, &res);
-    if (n<0) {
-        throw Exception(QPID_MSG("Rdma: Cannot resolve " << host << ": " << ::gai_strerror(n)));
-    }
-
+    SocketAddress sa(host, boost::lexical_cast<std::string>(port));
     Rdma::Connector* c =
         new Rdma::Connector(
-            *res->ai_addr,
+            sa,
             Rdma::ConnectionParams(8000, Rdma::DEFAULT_WR_ENTRIES),
             boost::bind(&RdmaIOProtocolFactory::connected, this, poller, _1, _2, f),
             boost::bind(&RdmaIOProtocolFactory::connectionError, this, _1, _2),

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaClient.cpp Fri Oct  9 03:38:22 2009
@@ -40,6 +40,7 @@
 
 using qpid::sys::Poller;
 using qpid::sys::Dispatcher;
+using qpid::sys::SocketAddress;
 using qpid::sys::AbsTime;
 using qpid::sys::Duration;
 using qpid::sys::TIME_SEC;
@@ -154,18 +155,8 @@
 int main(int argc, char* argv[]) {
     vector<string> args(&argv[0], &argv[argc]);
 
-    ::addrinfo *res;
-    ::addrinfo hints = {};
-    hints.ai_family = AF_INET;
-    hints.ai_socktype = SOCK_STREAM;
+    string host = args[1];
     string port = (args.size() < 3) ? "20079" : args[2];
-    int n = ::getaddrinfo(args[1].c_str(), port.c_str(), &hints, &res);
-    if (n<0) {
-        cerr << "Can't find information for: " << args[1] << "\n";
-        return 1;
-    } else {
-        cout << "Connecting to: " << args[1] << ":" << port <<"\n";
-    }
 
     if (args.size() > 3)
         msgsize = atoi(args[3].c_str());
@@ -181,8 +172,10 @@
         boost::shared_ptr<Poller> p(new Poller());
         Dispatcher d(p);
 
+        SocketAddress sa(host, port);
+        cout << "Connecting to: " << sa.asString() <<"\n";
         Rdma::Connector c(
-            *res->ai_addr,
+            sa,
             Rdma::ConnectionParams(msgsize, Rdma::DEFAULT_WR_ENTRIES),
             boost::bind(&connected, p, _1, _2),
             boost::bind(&connectionError, p, _1, _2),

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp Fri Oct  9 03:38:22 2009
@@ -26,6 +26,7 @@
 #include <iostream>
 #include <boost/bind.hpp>
 
+using qpid::sys::SocketAddress;
 using qpid::sys::DispatchHandle;
 using qpid::sys::Poller;
 
@@ -461,7 +462,7 @@
     }
 
     Listener::Listener(
-        const sockaddr& src,
+        const SocketAddress& src,
         const ConnectionParams& cp,
         EstablishedCallback ec,
         ErrorCallback errc,
@@ -541,7 +542,7 @@
     }
 
     Connector::Connector(
-        const sockaddr& dst,
+        const SocketAddress& dst,
         const ConnectionParams& cp,
         ConnectedCallback cc,
         ErrorCallback errc,

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h Fri Oct  9 03:38:22 2009
@@ -27,6 +27,7 @@
 #include "qpid/sys/Dispatcher.h"
 #include "qpid/sys/DispatchHandle.h"
 #include "qpid/sys/Mutex.h"
+#include "qpid/sys/SocketAddress.h"
 
 #include <netinet/in.h>
 
@@ -173,14 +174,14 @@
 
     class Listener : public ConnectionManager
     {
-        sockaddr src_addr;
+        qpid::sys::SocketAddress src_addr;
         ConnectionParams checkConnectionParams;
         ConnectionRequestCallback connectionRequestCallback;
         EstablishedCallback establishedCallback;
 
     public:
         Listener(
-            const sockaddr& src,
+            const qpid::sys::SocketAddress& src,
             const ConnectionParams& cp,
             EstablishedCallback ec,
             ErrorCallback errc,
@@ -198,14 +199,14 @@
 
     class Connector : public ConnectionManager
     {
-        sockaddr dst_addr;
+        qpid::sys::SocketAddress dst_addr;
         ConnectionParams connectionParams;
         RejectedCallback rejectedCallback;
         ConnectedCallback connectedCallback;
 
     public:
         Connector(
-            const sockaddr& dst,
+            const qpid::sys::SocketAddress& dst,
             const ConnectionParams& cp,
             ConnectedCallback cc,
             ErrorCallback errc,

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaServer.cpp Fri Oct  9 03:38:22 2009
@@ -35,6 +35,7 @@
 using std::cout;
 using std::cerr;
 
+using qpid::sys::SocketAddress;
 using qpid::sys::Poller;
 using qpid::sys::Dispatcher;
 
@@ -144,20 +145,15 @@
 int main(int argc, char* argv[]) {
     vector<string> args(&argv[0], &argv[argc]);
 
-    ::sockaddr_in sin;
-
-    int port = (args.size() < 2) ? 20079 : atoi(args[1].c_str());
+    std::string port = (args.size() < 2) ? "20079" : args[1];
     cout << "Listening on port: " << port << "\n";
 
-    sin.sin_family      = AF_INET;
-    sin.sin_port        = htons(port);
-    sin.sin_addr.s_addr = INADDR_ANY;
-
     try {
         boost::shared_ptr<Poller> p(new Poller());
         Dispatcher d(p);
 
-        Rdma::Listener a((const sockaddr&)(sin),
+        SocketAddress sa("", port);
+        Rdma::Listener a(sa,
             Rdma::ConnectionParams(16384, Rdma::DEFAULT_WR_ENTRIES),
             boost::bind(connected, p, _1),
             connectionError,

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h?rev=823392&r1=823391&r2=823392&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/rdma_wrap.h Fri Oct  9 03:38:22 2009
@@ -350,9 +350,9 @@
             return ConnectionEvent(e);
         }
 
-        void bind(sockaddr& src_addr) const {
+        void bind(qpid::sys::SocketAddress& src_addr) const {
             assert(id.get());
-            CHECK(::rdma_bind_addr(id.get(), &src_addr));
+            CHECK(::rdma_bind_addr(id.get(), getAddrInfo(src_addr).ai_addr));
         }
 
         void listen(int backlog = DEFAULT_BACKLOG) const {
@@ -361,12 +361,11 @@
         }
 
         void resolve_addr(
-            sockaddr& dst_addr,
-            sockaddr* src_addr = 0,
+            qpid::sys::SocketAddress& dst_addr,
             int timeout_ms = DEFAULT_TIMEOUT) const
         {
             assert(id.get());
-            CHECK(::rdma_resolve_addr(id.get(), src_addr, &dst_addr, timeout_ms));
+            CHECK(::rdma_resolve_addr(id.get(), 0, getAddrInfo(dst_addr).ai_addr, timeout_ms));
         }
 
         void resolve_route(int timeout_ms = DEFAULT_TIMEOUT) const {



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org