Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master c99b3fa49 -> 8e153bed7


MINIFICPP-405: RPG bind to local interface

This closes #272.

Signed-off-by: Bin Qiu <benqiu2...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/8e153bed
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/8e153bed
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/8e153bed

Branch: refs/heads/master
Commit: 8e153bed7fc782e1de1e782543016ebda3579d66
Parents: c99b3fa
Author: Bin Qiu <benqiu2...@gmail.com>
Authored: Mon Feb 26 07:21:24 2018 -0800
Committer: Bin Qiu <benqiu2...@gmail.com>
Committed: Mon Mar 5 20:17:08 2018 -0800

----------------------------------------------------------------------
 extensions/http-curl/client/HTTPClient.h        |  4 +++
 extensions/http-curl/sitetosite/HTTPProtocol.h  |  4 +++
 libminifi/include/RemoteProcessorGroupPort.h    |  9 +++++
 libminifi/include/core/ProcessGroup.h           |  9 +++++
 libminifi/include/io/ClientSocket.h             |  5 +++
 libminifi/include/io/DataStream.h               |  4 +++
 libminifi/include/sitetosite/Peer.h             | 20 +++++++++--
 libminifi/include/sitetosite/SiteToSite.h       | 13 +++++++-
 .../include/sitetosite/SiteToSiteFactory.h      |  6 ++--
 libminifi/src/RemoteProcessorGroupPort.cpp      |  9 ++---
 libminifi/src/core/yaml/YamlConfiguration.cpp   |  8 +++++
 libminifi/src/io/ClientSocket.cpp               | 35 ++++++++++++++++++++
 libminifi/src/sitetosite/Peer.cpp               |  3 ++
 libminifi/test/unit/Site2SiteTests.cpp          |  8 ++---
 14 files changed, 123 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/extensions/http-curl/client/HTTPClient.h
----------------------------------------------------------------------
diff --git a/extensions/http-curl/client/HTTPClient.h 
b/extensions/http-curl/client/HTTPClient.h
index e5545c3..eabd7c2 100644
--- a/extensions/http-curl/client/HTTPClient.h
+++ b/extensions/http-curl/client/HTTPClient.h
@@ -131,6 +131,10 @@ class HTTPClient : public BaseHTTPClient, public 
core::Connectable {
     return url_;
   }
 
+  void setInterface(const std::string &interface) {
+    curl_easy_setopt(http_session_, CURLOPT_INTERFACE, interface.c_str());
+  }
+
   const std::vector<std::string> &getHeaders() override {
     return header_response_.header_tokens_;
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/extensions/http-curl/sitetosite/HTTPProtocol.h
----------------------------------------------------------------------
diff --git a/extensions/http-curl/sitetosite/HTTPProtocol.h 
b/extensions/http-curl/sitetosite/HTTPProtocol.h
index 32074f0..7ac4893 100644
--- a/extensions/http-curl/sitetosite/HTTPProtocol.h
+++ b/extensions/http-curl/sitetosite/HTTPProtocol.h
@@ -182,6 +182,10 @@ class HttpSiteToSiteClient : public 
sitetosite::SiteToSiteClient {
         // batch count, size, and duratin don't appear to be set through the 
interfaces.
       }
     }
+    if (!this->peer_->getInterface().empty()) {
+      logger_->log_info("HTTP Site2Site bind local network interface", 
this->peer_->getInterface());
+      http_client_->setInterface(this->peer_->getInterface());
+    }
     return http_client_;
   }
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/RemoteProcessorGroupPort.h
----------------------------------------------------------------------
diff --git a/libminifi/include/RemoteProcessorGroupPort.h 
b/libminifi/include/RemoteProcessorGroupPort.h
index c1dfea1..14200ee 100644
--- a/libminifi/include/RemoteProcessorGroupPort.h
+++ b/libminifi/include/RemoteProcessorGroupPort.h
@@ -129,6 +129,13 @@ class RemoteProcessorGroupPort : public core::Processor {
   void setTransmitting(bool val) {
     transmitting_ = val;
   }
+  // setInterface
+  void setInterface(const std::string &interface) {
+    local_network_interface_ = interface;
+  }
+  std::string getInterface() {
+    return local_network_interface_;
+  }
   // setURL
   void setURL(std::string val) {
     url_ = val;
@@ -165,6 +172,8 @@ class RemoteProcessorGroupPort : public core::Processor {
   std::atomic<bool> transmitting_;
   // timeout
   uint64_t timeout_;
+  // local network interface
+  std::string local_network_interface_;
 
   uuid_t protocol_uuid_;
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/core/ProcessGroup.h
----------------------------------------------------------------------
diff --git a/libminifi/include/core/ProcessGroup.h 
b/libminifi/include/core/ProcessGroup.h
index 93caab9..d6b7510 100644
--- a/libminifi/include/core/ProcessGroup.h
+++ b/libminifi/include/core/ProcessGroup.h
@@ -90,6 +90,13 @@ class ProcessGroup {
   uint64_t getTimeOut() {
     return timeOut_;
   }
+  // setInterface
+  void setInterface(std::string &interface) {
+    local_network_interface_ = interface;
+  }
+  std::string getInterface() {
+    return local_network_interface_;
+  }
   // Set Processor yield period in MilliSecond
   void setYieldPeriodMsec(uint64_t period) {
     yield_period_msec_ = period;
@@ -190,6 +197,8 @@ class ProcessGroup {
   std::atomic<uint64_t> timeOut_;
   // URL
   std::string url_;
+  // local network interface
+  std::string local_network_interface_;
   // Transmitting
   std::atomic<bool> transmitting_;
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/io/ClientSocket.h
----------------------------------------------------------------------
diff --git a/libminifi/include/io/ClientSocket.h 
b/libminifi/include/io/ClientSocket.h
index 263865c..32f04a5 100644
--- a/libminifi/include/io/ClientSocket.h
+++ b/libminifi/include/io/ClientSocket.h
@@ -91,6 +91,10 @@ class Socket : public BaseStream {
    */
   virtual int16_t initialize();
 
+  virtual void setInterface(std::string &interface) {
+    local_network_interface_ = interface;
+  }
+
   /**
    * Sets the non blocking flag on the file descriptor.
    */
@@ -256,6 +260,7 @@ class Socket : public BaseStream {
   uint16_t port_;
 
   bool is_loopback_only_;
+  std::string local_network_interface_;
 
   // connection information
   int32_t socket_file_descriptor_;

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/io/DataStream.h
----------------------------------------------------------------------
diff --git a/libminifi/include/io/DataStream.h 
b/libminifi/include/io/DataStream.h
index 78874f4..a61ff5a 100644
--- a/libminifi/include/io/DataStream.h
+++ b/libminifi/include/io/DataStream.h
@@ -68,6 +68,10 @@ class DataStream {
   virtual void closeStream() {
 
   }
+
+  virtual void setInterface(std::string &interface) {
+  }
+
   /**
    * Reads data and places it into buf
    * @param buf buffer in which we extract data

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/sitetosite/Peer.h
----------------------------------------------------------------------
diff --git a/libminifi/include/sitetosite/Peer.h 
b/libminifi/include/sitetosite/Peer.h
index e33b9c6..cc097b6 100644
--- a/libminifi/include/sitetosite/Peer.h
+++ b/libminifi/include/sitetosite/Peer.h
@@ -95,6 +95,7 @@ class Peer {
   uint16_t port_;
 
   uuid_t port_id_;
+
   // secore comms
 
   bool secure_;
@@ -141,21 +142,23 @@ class SiteToSitePeer : public 
org::apache::nifi::minifi::io::BaseStream {
       : stream_(nullptr),
         host_(""),
         port_(-1),
+        local_network_interface_(""),
         logger_(logging::LoggerFactory<SiteToSitePeer>::getLogger()) {
 
   }
   /*
    * Create a new site2site peer
    */
-  explicit 
SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream> 
injected_socket, const std::string host, uint16_t port)
-      : SiteToSitePeer(host, port) {
+  explicit 
SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream> 
injected_socket, const std::string host, uint16_t port, const std::string 
&interface)
+      : SiteToSitePeer(host, port, interface) {
     stream_ = std::move(injected_socket);
   }
 
-  explicit SiteToSitePeer(const std::string &host, uint16_t port)
+  explicit SiteToSitePeer(const std::string &host, uint16_t port, const 
std::string &interface)
       : stream_(nullptr),
         host_(host),
         port_(port),
+        local_network_interface_(interface),
         timeout_(30000),
         yield_expiration_(0),
         logger_(logging::LoggerFactory<SiteToSitePeer>::getLogger()) {
@@ -168,6 +171,7 @@ class SiteToSitePeer : public 
org::apache::nifi::minifi::io::BaseStream {
       : stream_(ss.stream_.release()),
         host_(std::move(ss.host_)),
         port_(std::move(ss.port_)),
+        local_network_interface_(std::move(ss.local_network_interface_)),
         logger_(std::move(ss.logger_)) {
     yield_expiration_.store(ss.yield_expiration_);
     timeout_.store(ss.timeout_);
@@ -185,6 +189,13 @@ class SiteToSitePeer : public 
org::apache::nifi::minifi::io::BaseStream {
   std::string getURL() {
     return url_;
   }
+  // setInterface
+  void setInterface(std::string &interface) {
+    local_network_interface_ = interface;
+  }
+  std::string getInterface() {
+    return local_network_interface_;
+  }
   // Get Processor yield period in MilliSecond
   uint64_t getYieldPeriodMsec(void) {
     return (yield_period_msec_);
@@ -334,6 +345,7 @@ class SiteToSitePeer : public 
org::apache::nifi::minifi::io::BaseStream {
     stream_ = 
std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(other.stream_.release());
     host_ = std::move(other.host_);
     port_ = std::move(other.port_);
+    local_network_interface_ = std::move(other.local_network_interface_);
     yield_expiration_ = 0;
     timeout_ = 30000;  // 30 seconds
     url_ = "nifi://" + host_ + ":" + std::to_string(port_);
@@ -354,6 +366,8 @@ class SiteToSitePeer : public 
org::apache::nifi::minifi::io::BaseStream {
 
   uint16_t port_;
 
+  std::string local_network_interface_;
+
   // Mutex for protection
   std::mutex mutex_;
   // URL

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/sitetosite/SiteToSite.h
----------------------------------------------------------------------
diff --git a/libminifi/include/sitetosite/SiteToSite.h 
b/libminifi/include/sitetosite/SiteToSite.h
index b7e5ce0..ec4cf44 100644
--- a/libminifi/include/sitetosite/SiteToSite.h
+++ b/libminifi/include/sitetosite/SiteToSite.h
@@ -331,9 +331,10 @@ class Transaction {
 
 class SiteToSiteClientConfiguration {
  public:
-  SiteToSiteClientConfiguration(std::shared_ptr<io::StreamFactory> 
stream_factory, const std::shared_ptr<Peer> &peer, CLIENT_TYPE type = RAW)
+  SiteToSiteClientConfiguration(std::shared_ptr<io::StreamFactory> 
stream_factory, const std::shared_ptr<Peer> &peer, const std::string 
&interface, CLIENT_TYPE type = RAW)
       : stream_factory_(stream_factory),
         peer_(peer),
+        local_network_interface_(interface),
         ssl_service_(nullptr) {
     client_type_ = type;
   }
@@ -360,6 +361,14 @@ class SiteToSiteClientConfiguration {
     return stream_factory_;
   }
 
+  // setInterface
+  void setInterface(std::string &interface) {
+    local_network_interface_ = interface;
+  }
+  std::string getInterface() const {
+    return local_network_interface_;
+  }
+
  protected:
 
   std::shared_ptr<io::StreamFactory> stream_factory_;
@@ -368,6 +377,8 @@ class SiteToSiteClientConfiguration {
 
   CLIENT_TYPE client_type_;
 
+  std::string local_network_interface_;
+
   // secore comms
 
   std::shared_ptr<controllers::SSLContextService> ssl_service_;

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/include/sitetosite/SiteToSiteFactory.h
----------------------------------------------------------------------
diff --git a/libminifi/include/sitetosite/SiteToSiteFactory.h 
b/libminifi/include/sitetosite/SiteToSiteFactory.h
index 9a48b93..73959bb 100644
--- a/libminifi/include/sitetosite/SiteToSiteFactory.h
+++ b/libminifi/include/sitetosite/SiteToSiteFactory.h
@@ -44,7 +44,8 @@ static std::unique_ptr<SiteToSitePeer> 
createStreamingPeer(const SiteToSiteClien
     str = std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(
         
client_configuration.getStreamFactory()->createSocket(client_configuration.getPeer()->getHost(),
 client_configuration.getPeer()->getPort()));
   }
-  auto peer = std::unique_ptr<SiteToSitePeer>(new 
SiteToSitePeer(std::move(str), client_configuration.getPeer()->getHost(), 
client_configuration.getPeer()->getPort()));
+  auto peer = std::unique_ptr<SiteToSitePeer>(new 
SiteToSitePeer(std::move(str), client_configuration.getPeer()->getHost(), 
client_configuration.getPeer()->getPort(),
+      client_configuration.getInterface()));
   return peer;
 
 }
@@ -79,7 +80,8 @@ static std::unique_ptr<SiteToSiteClient> createClient(const 
SiteToSiteClientConf
       if (nullptr != http_protocol) {
         auto ptr = 
std::unique_ptr<SiteToSiteClient>(static_cast<SiteToSiteClient*>(http_protocol));
         ptr->setSSLContextService(client_configuration.getSecurityContext());
-        auto peer = std::unique_ptr<SiteToSitePeer>(new 
SiteToSitePeer(client_configuration.getPeer()->getHost(), 
client_configuration.getPeer()->getPort()));
+        auto peer = std::unique_ptr<SiteToSitePeer>(new 
SiteToSitePeer(client_configuration.getPeer()->getHost(), 
client_configuration.getPeer()->getPort(),
+            client_configuration.getInterface()));
         char idStr[37];
         uuid_unparse_lower(uuid, idStr);
         ptr->setPortId(uuid);

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/src/RemoteProcessorGroupPort.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/RemoteProcessorGroupPort.cpp 
b/libminifi/src/RemoteProcessorGroupPort.cpp
index c7cc191..bbf697f 100644
--- a/libminifi/src/RemoteProcessorGroupPort.cpp
+++ b/libminifi/src/RemoteProcessorGroupPort.cpp
@@ -67,12 +67,12 @@ std::unique_ptr<sitetosite::SiteToSiteClient> 
RemoteProcessorGroupPort::getNextP
     if (create) {
       // create
       if (url_.empty()) {
-        sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
std::make_shared<sitetosite::Peer>(protocol_uuid_, host_, port_, ssl_service != 
nullptr), client_type_);
+        sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
std::make_shared<sitetosite::Peer>(protocol_uuid_, host_, port_, ssl_service != 
nullptr), this->getInterface(), client_type_);
         nextProtocol = sitetosite::createClient(config);
       } else if (peer_index_ >= 0) {
         std::lock_guard<std::mutex> lock(peer_mutex_);
         logger_->log_debug("Creating client from peer %ll", 
peer_index_.load());
-        sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
peers_[this->peer_index_].getPeer(), client_type_);
+        sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
peers_[this->peer_index_].getPeer(), local_network_interface_, client_type_);
         config.setSecurityContext(ssl_service);
         peer_index_++;
         if (peer_index_ >= static_cast<int>(peers_.size())) {
@@ -170,7 +170,7 @@ void RemoteProcessorGroupPort::onSchedule(const 
std::shared_ptr<core::ProcessCon
       count = max_concurrent_tasks_;
     for (uint32_t i = 0; i < count; i++) {
       std::unique_ptr<sitetosite::SiteToSiteClient> nextProtocol = nullptr;
-      sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
peers_[this->peer_index_].getPeer(), client_type_);
+      sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
peers_[this->peer_index_].getPeer(), this->getInterface(), client_type_);
       config.setSecurityContext(ssl_service);
       peer_index_++;
       if (peer_index_ >= static_cast<int>(peers_.size())) {
@@ -349,7 +349,8 @@ void RemoteProcessorGroupPort::refreshPeerList() {
   this->peers_.clear();
 
   std::unique_ptr<sitetosite::SiteToSiteClient> protocol;
-  sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
std::make_shared<sitetosite::Peer>(protocol_uuid_, host_, site2site_port_, 
ssl_service != nullptr), client_type_);
+  sitetosite::SiteToSiteClientConfiguration config(stream_factory_, 
std::make_shared<sitetosite::Peer>(protocol_uuid_, host_,
+    site2site_port_, ssl_service != nullptr), this->getInterface(), 
client_type_);
   config.setSecurityContext(ssl_service);
   protocol = sitetosite::createClient(config);
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/src/core/yaml/YamlConfiguration.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/core/yaml/YamlConfiguration.cpp 
b/libminifi/src/core/yaml/YamlConfiguration.cpp
index 0526643..8f4820f 100644
--- a/libminifi/src/core/yaml/YamlConfiguration.cpp
+++ b/libminifi/src/core/yaml/YamlConfiguration.cpp
@@ -299,6 +299,12 @@ void 
YamlConfiguration::parseRemoteProcessGroupYaml(YAML::Node *rpgNode, core::P
           }
         }
 
+        if (currRpgNode["local network interface"]) {
+          std::string interface = currRpgNode["local network 
interface"].as<std::string>();
+          logger_->log_debug("parseRemoteProcessGroupYaml: local network 
interface => [%s]", interface);
+          group->setInterface(interface);
+        }
+
         group->setTransmitting(true);
         group->setURL(url);
 
@@ -649,6 +655,8 @@ void YamlConfiguration::parsePortYaml(YAML::Node *portNode,
   port->setTransmitting(true);
   processor->setYieldPeriodMsec(parent->getYieldPeriodMsec());
   processor->initialize();
+  if (!parent->getInterface().empty())
+    port->setInterface(parent->getInterface());
 
   // handle port properties
   YAML::Node nodeVal = portNode->as<YAML::Node>();

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/src/io/ClientSocket.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/io/ClientSocket.cpp 
b/libminifi/src/io/ClientSocket.cpp
index a382cda..12dfd98 100644
--- a/libminifi/src/io/ClientSocket.cpp
+++ b/libminifi/src/io/ClientSocket.cpp
@@ -22,6 +22,9 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <ifaddrs.h>
 #include <unistd.h>
 #include <cstdio>
 #include <memory>
@@ -46,6 +49,7 @@ Socket::Socket(const std::shared_ptr<SocketContext> &context, 
const std::string
       socket_file_descriptor_(-1),
       socket_max_(0),
       is_loopback_only_(false),
+      local_network_interface_(""),
       listeners_(listeners),
       canonical_hostname_(""),
       nonBlocking_(false),
@@ -62,6 +66,7 @@ Socket::Socket(const Socket &&other)
     : requested_hostname_(std::move(other.requested_hostname_)),
       port_(std::move(other.port_)),
       is_loopback_only_(false),
+      local_network_interface_(""),
       addr_info_(std::move(other.addr_info_)),
       socket_file_descriptor_(other.socket_file_descriptor_),
       socket_max_(other.socket_max_.load()),
@@ -103,6 +108,36 @@ int8_t Socket::createConnection(const addrinfo *p, 
in_addr_t &addr) {
 
   setSocketOptions(socket_file_descriptor_);
 
+  if (listeners_ <= 0 && !local_network_interface_.empty()) {
+    // bind to local network interface
+    ifaddrs* list = NULL;
+    ifaddrs* item = NULL;
+    ifaddrs* itemFound = NULL;
+    int result = getifaddrs(&list);
+    if (result == 0) {
+      item = list;
+      while (item) {
+        if ((item->ifa_addr != NULL) && (item->ifa_name != NULL) && (AF_INET 
== item->ifa_addr->sa_family)) {
+          if (strcmp(item->ifa_name, local_network_interface_.c_str()) == 0) {
+            itemFound = item;
+            break;
+          }
+        }
+        item = item->ifa_next;
+      }
+
+      if (itemFound != NULL) {
+        result = bind(socket_file_descriptor_, itemFound->ifa_addr, 
sizeof(struct sockaddr_in));
+        if (result < 0)
+          logger_->log_info("Bind to interface %s failed %s", 
local_network_interface_, strerror(errno));
+        else
+          logger_->log_info("Bind to interface %s", local_network_interface_);
+      }
+
+      freeifaddrs(list);
+    }
+  }
+
   if (listeners_ > 0) {
     struct sockaddr_in *sa_loc = (struct sockaddr_in*) p->ai_addr;
     sa_loc->sin_family = AF_INET;

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/src/sitetosite/Peer.cpp
----------------------------------------------------------------------
diff --git a/libminifi/src/sitetosite/Peer.cpp 
b/libminifi/src/sitetosite/Peer.cpp
index e8678d7..b0bfca2 100644
--- a/libminifi/src/sitetosite/Peer.cpp
+++ b/libminifi/src/sitetosite/Peer.cpp
@@ -41,6 +41,9 @@ bool SiteToSitePeer::Open() {
   if (IsNullOrEmpty(host_))
     return false;
 
+  if (!this->local_network_interface_.empty())
+      stream_->setInterface(local_network_interface_);
+
   if (stream_->initialize() < 0)
     return false;
 

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/8e153bed/libminifi/test/unit/Site2SiteTests.cpp
----------------------------------------------------------------------
diff --git a/libminifi/test/unit/Site2SiteTests.cpp 
b/libminifi/test/unit/Site2SiteTests.cpp
index d1844ee..ff2b44a 100644
--- a/libminifi/test/unit/Site2SiteTests.cpp
+++ b/libminifi/test/unit/Site2SiteTests.cpp
@@ -32,7 +32,7 @@
 
 TEST_CASE("TestSetPortId", "[S2S1]") {
   std::unique_ptr<minifi::sitetosite::SiteToSitePeer> peer = 
std::unique_ptr<minifi::sitetosite::SiteToSitePeer>(
-      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(new
 org::apache::nifi::minifi::io::DataStream()), "fake_host", 65433));
+      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(new
 org::apache::nifi::minifi::io::DataStream()), "fake_host", 65433, ""));
 
   minifi::sitetosite::RawSiteToSiteClient protocol(std::move(peer));
 
@@ -49,7 +49,7 @@ TEST_CASE("TestSetPortId", "[S2S1]") {
 
 TEST_CASE("TestSetPortIdUppercase", "[S2S2]") {
   std::unique_ptr<minifi::sitetosite::SiteToSitePeer> peer = 
std::unique_ptr<minifi::sitetosite::SiteToSitePeer>(
-      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(new
 org::apache::nifi::minifi::io::DataStream()), "fake_host", 65433));
+      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<org::apache::nifi::minifi::io::DataStream>(new
 org::apache::nifi::minifi::io::DataStream()), "fake_host", 65433, ""));
 
   minifi::sitetosite::RawSiteToSiteClient protocol(std::move(peer));
 
@@ -94,7 +94,7 @@ TEST_CASE("TestSiteToSiteVerifySend", "[S2S3]") {
   sunny_path_bootstrap(collector);
 
   std::unique_ptr<minifi::sitetosite::SiteToSitePeer> peer = 
std::unique_ptr<minifi::sitetosite::SiteToSitePeer>(
-      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<minifi::io::DataStream>(new 
org::apache::nifi::minifi::io::BaseStream(collector)), "fake_host", 65433));
+      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<minifi::io::DataStream>(new 
org::apache::nifi::minifi::io::BaseStream(collector)), "fake_host", 65433, ""));
 
   minifi::sitetosite::RawSiteToSiteClient protocol(std::move(peer));
 
@@ -163,7 +163,7 @@ TEST_CASE("TestSiteToSiteVerifyNegotiationFail", "[S2S4]") {
   collector->push_response(resp_code);
 
   std::unique_ptr<minifi::sitetosite::SiteToSitePeer> peer = 
std::unique_ptr<minifi::sitetosite::SiteToSitePeer>(
-      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<minifi::io::DataStream>(new 
org::apache::nifi::minifi::io::BaseStream(collector)), "fake_host", 65433));
+      new 
minifi::sitetosite::SiteToSitePeer(std::unique_ptr<minifi::io::DataStream>(new 
org::apache::nifi::minifi::io::BaseStream(collector)), "fake_host", 65433, ""));
 
   minifi::sitetosite::RawSiteToSiteClient protocol(std::move(peer));
 

Reply via email to