This is an automated email from the ASF dual-hosted git repository.

wkaras pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 32fe5470f8 Require options parameter for NetProcessor::connect_re(). 
(#10034)
32fe5470f8 is described below

commit 32fe5470f8c6294e3e2a59f3b9bafc542545a60b
Author: Walt Karas <[email protected]>
AuthorDate: Mon Jul 17 19:05:56 2023 -0400

    Require options parameter for NetProcessor::connect_re(). (#10034)
---
 iocore/net/I_NetProcessor.h            |  2 +-
 iocore/net/I_UDPNet.h                  |  2 +-
 iocore/net/P_QUICNetProcessor_native.h |  2 +-
 iocore/net/P_QUICNetProcessor_quiche.h |  2 +-
 iocore/net/P_UnixNetProcessor.h        |  2 +-
 iocore/net/QUICNetProcessor.cc         | 20 ++++++++------------
 iocore/net/QUICNetProcessor_quiche.cc  | 20 ++++++++------------
 iocore/net/Socks.cc                    |  2 +-
 iocore/net/UnixNetProcessor.cc         | 16 ++++++----------
 iocore/net/UnixUDPNet.cc               |  2 +-
 proxy/http/HttpSM.cc                   |  4 ++--
 proxy/http/PreWarmManager.cc           |  4 ++--
 src/traffic_quic/quic_client.cc        |  2 +-
 src/traffic_server/InkAPI.cc           |  4 ++--
 src/traffic_server/SocksProxy.cc       |  2 +-
 15 files changed, 37 insertions(+), 49 deletions(-)

diff --git a/iocore/net/I_NetProcessor.h b/iocore/net/I_NetProcessor.h
index 0ac2c0e790..56ad49287a 100644
--- a/iocore/net/I_NetProcessor.h
+++ b/iocore/net/I_NetProcessor.h
@@ -115,7 +115,7 @@ public:
     @param options @see NetVCOptions.
 
   */
-  virtual Action *connect_re(Continuation *cont, sockaddr const *addr, 
NetVCOptions *options = nullptr) = 0;
+  virtual Action *connect_re(Continuation *cont, sockaddr const *addr, 
NetVCOptions const &options) = 0;
 
   /**
     Initializes the net processor. This must be called before the event 
threads are started.
diff --git a/iocore/net/I_UDPNet.h b/iocore/net/I_UDPNet.h
index fd536323a6..932f0fe0a3 100644
--- a/iocore/net/I_UDPNet.h
+++ b/iocore/net/I_UDPNet.h
@@ -50,7 +50,7 @@ public:
 
   // this function was internal initially.. this is required for public and
   // interface probably should change.
-  bool CreateUDPSocket(int *resfd, sockaddr const *remote_addr, Action 
**status, NetVCOptions &opt);
+  bool CreateUDPSocket(int *resfd, sockaddr const *remote_addr, Action 
**status, NetVCOptions const &opt);
 
   /**
      create UDPConnection
diff --git a/iocore/net/P_QUICNetProcessor_native.h 
b/iocore/net/P_QUICNetProcessor_native.h
index b1398d738b..e3667ee37f 100644
--- a/iocore/net/P_QUICNetProcessor_native.h
+++ b/iocore/net/P_QUICNetProcessor_native.h
@@ -59,7 +59,7 @@ public:
   void init() override;
   int start(int, size_t stacksize) override;
 
-  Action *connect_re(Continuation *cont, sockaddr const *addr, NetVCOptions 
*opts) override;
+  Action *connect_re(Continuation *cont, sockaddr const *addr, NetVCOptions 
const &opts) override;
 
   NetVConnection *allocate_vc(EThread *t) override;
 
diff --git a/iocore/net/P_QUICNetProcessor_quiche.h 
b/iocore/net/P_QUICNetProcessor_quiche.h
index ba00a8029b..63705e7817 100644
--- a/iocore/net/P_QUICNetProcessor_quiche.h
+++ b/iocore/net/P_QUICNetProcessor_quiche.h
@@ -59,7 +59,7 @@ public:
   void init() override;
   int start(int, size_t stacksize) override;
 
-  Action *connect_re(Continuation *cont, sockaddr const *addr, NetVCOptions 
*opts) override;
+  Action *connect_re(Continuation *cont, sockaddr const *addr, NetVCOptions 
const &opts) override;
 
   NetVConnection *allocate_vc(EThread *t) override;
 
diff --git a/iocore/net/P_UnixNetProcessor.h b/iocore/net/P_UnixNetProcessor.h
index 974b9a808c..1267aa1edc 100644
--- a/iocore/net/P_UnixNetProcessor.h
+++ b/iocore/net/P_UnixNetProcessor.h
@@ -47,7 +47,7 @@ public:
 
   void stop_accept() override;
 
-  Action *connect_re(Continuation *cont, sockaddr const *target, NetVCOptions 
*options = nullptr) override;
+  Action *connect_re(Continuation *cont, sockaddr const *target, NetVCOptions 
const &options) override;
   NetVConnection *allocate_vc(EThread *t) override;
 
   void init() override;
diff --git a/iocore/net/QUICNetProcessor.cc b/iocore/net/QUICNetProcessor.cc
index deae165c07..ccf67ac1d7 100644
--- a/iocore/net/QUICNetProcessor.cc
+++ b/iocore/net/QUICNetProcessor.cc
@@ -105,22 +105,18 @@ QUICNetProcessor::allocate_vc(EThread *t)
 }
 
 Action *
-QUICNetProcessor::connect_re(Continuation *cont, sockaddr const *remote_addr, 
NetVCOptions *opt)
+QUICNetProcessor::connect_re(Continuation *cont, sockaddr const *remote_addr, 
NetVCOptions const &opt)
 {
   Debug("quic_ps", "connect to server");
   EThread *t = cont->mutex->thread_holding;
   ink_assert(t);
   QUICNetVConnection *vc = static_cast<QUICNetVConnection 
*>(this->allocate_vc(t));
 
-  if (opt) {
-    vc->options = *opt;
-  } else {
-    opt = &vc->options;
-  }
+  vc->options = opt;
 
   int fd;
   Action *status;
-  bool result = udpNet.CreateUDPSocket(&fd, remote_addr, &status, *opt);
+  bool result = udpNet.CreateUDPSocket(&fd, remote_addr, &status, opt);
   if (!result) {
     vc->free(t);
     return status;
@@ -132,8 +128,8 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
 
   this->_rtable                        = new QUICResetTokenTable();
   QUICPacketHandlerOut *packet_handler = new 
QUICPacketHandlerOut(*this->_rtable);
-  if (opt->local_ip.isValid()) {
-    con->setBinding(opt->local_ip, opt->local_port);
+  if (opt.local_ip.isValid()) {
+    con->setBinding(opt.local_ip, opt.local_port);
   }
   con->bindToThread(packet_handler, t);
 
@@ -161,7 +157,7 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   vc->mutex       = cont->mutex;
   vc->action_     = cont;
 
-  if (t->is_event_type(opt->etype)) {
+  if (t->is_event_type(opt.etype)) {
     MUTEX_TRY_LOCK(lock, cont->mutex, t);
     if (lock.is_locked()) {
       MUTEX_TRY_LOCK(lock2, get_NetHandler(t)->mutex, t);
@@ -173,10 +169,10 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   }
 
   // Try to stay on the current thread if it is the right type
-  if (t->is_event_type(opt->etype)) {
+  if (t->is_event_type(opt.etype)) {
     t->schedule_imm(vc);
   } else { // Otherwise, pass along to another thread of the right type
-    eventProcessor.schedule_imm(vc, opt->etype);
+    eventProcessor.schedule_imm(vc, opt.etype);
   }
 
   return ACTION_RESULT_DONE;
diff --git a/iocore/net/QUICNetProcessor_quiche.cc 
b/iocore/net/QUICNetProcessor_quiche.cc
index 3db2975138..741df02eb2 100644
--- a/iocore/net/QUICNetProcessor_quiche.cc
+++ b/iocore/net/QUICNetProcessor_quiche.cc
@@ -138,7 +138,7 @@ QUICNetProcessor::allocate_vc(EThread *t)
 }
 
 Action *
-QUICNetProcessor::connect_re(Continuation *cont, sockaddr const *remote_addr, 
NetVCOptions *opt)
+QUICNetProcessor::connect_re(Continuation *cont, sockaddr const *remote_addr, 
NetVCOptions const &opt)
 {
   Debug("quic_ps", "connect to server");
   EThread *t = cont->mutex->thread_holding;
@@ -146,15 +146,11 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
 
   QUICNetVConnection *vc = static_cast<QUICNetVConnection 
*>(this->allocate_vc(t));
 
-  if (opt) {
-    vc->options = *opt;
-  } else {
-    opt = &vc->options;
-  }
+  vc->options = opt;
 
   int fd;
   Action *status;
-  bool result = udpNet.CreateUDPSocket(&fd, remote_addr, &status, *opt);
+  bool result = udpNet.CreateUDPSocket(&fd, remote_addr, &status, opt);
   if (!result) {
     vc->free(t);
     return status;
@@ -165,8 +161,8 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   Debug("quic_ps", "con=%p fd=%d", con, fd);
 
   QUICPacketHandlerOut *packet_handler = new QUICPacketHandlerOut();
-  if (opt->local_ip.isValid()) {
-    con->setBinding(opt->local_ip, opt->local_port);
+  if (opt.local_ip.isValid()) {
+    con->setBinding(opt.local_ip, opt.local_port);
   }
   con->bindToThread(packet_handler, t);
 
@@ -194,7 +190,7 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   vc->mutex       = cont->mutex;
   vc->action_     = cont;
 
-  if (t->is_event_type(opt->etype)) {
+  if (t->is_event_type(opt.etype)) {
     MUTEX_TRY_LOCK(lock, cont->mutex, t);
     if (lock.is_locked()) {
       MUTEX_TRY_LOCK(lock2, get_NetHandler(t)->mutex, t);
@@ -206,10 +202,10 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   }
 
   // Try to stay on the current thread if it is the right type
-  if (t->is_event_type(opt->etype)) {
+  if (t->is_event_type(opt.etype)) {
     t->schedule_imm(vc);
   } else { // Otherwise, pass along to another thread of the right type
-    eventProcessor.schedule_imm(vc, opt->etype);
+    eventProcessor.schedule_imm(vc, opt.etype);
   }
 
   return ACTION_RESULT_DONE;
diff --git a/iocore/net/Socks.cc b/iocore/net/Socks.cc
index 9b478c6526..b987116e8e 100644
--- a/iocore/net/Socks.cc
+++ b/iocore/net/Socks.cc
@@ -230,7 +230,7 @@ SocksEntry::startEvent(int event, void *data)
 
     NetVCOptions options;
     options.socks_support = NO_SOCKS;
-    netProcessor.connect_re(this, &server_addr.sa, &options);
+    netProcessor.connect_re(this, &server_addr.sa, options);
   }
 
   return EVENT_CONT;
diff --git a/iocore/net/UnixNetProcessor.cc b/iocore/net/UnixNetProcessor.cc
index 511274d8ce..4a8a0531bf 100644
--- a/iocore/net/UnixNetProcessor.cc
+++ b/iocore/net/UnixNetProcessor.cc
@@ -161,25 +161,21 @@ UnixNetProcessor::stop_accept()
 }
 
 Action *
-UnixNetProcessor::connect_re(Continuation *cont, sockaddr const *target, 
NetVCOptions *opt)
+UnixNetProcessor::connect_re(Continuation *cont, sockaddr const *target, 
NetVCOptions const &opt)
 {
   if (TSSystemState::is_event_system_shut_down()) {
     return nullptr;
   }
 
-  EThread *t             = eventProcessor.assign_affinity_by_type(cont, 
opt->etype);
+  EThread *t             = eventProcessor.assign_affinity_by_type(cont, 
opt.etype);
   UnixNetVConnection *vc = (UnixNetVConnection *)this->allocate_vc(t);
 
-  if (opt) {
-    vc->options = *opt;
-  } else {
-    opt = &vc->options;
-  }
+  vc->options = opt;
 
   vc->set_context(NET_VCONNECTION_OUT);
 
-  const bool using_socks = (socks_conf_stuff->socks_needed && 
opt->socks_support != NO_SOCKS &&
-                            (opt->socks_version != SOCKS_DEFAULT_VERSION ||
+  const bool using_socks = (socks_conf_stuff->socks_needed && 
opt.socks_support != NO_SOCKS &&
+                            (opt.socks_version != SOCKS_DEFAULT_VERSION ||
                              /* This implies we are tunnelling.
                               * we need to connect using socks server even
                               * if this ip is in no_socks list.
@@ -202,7 +198,7 @@ UnixNetProcessor::connect_re(Continuation *cont, sockaddr 
const *target, NetVCOp
     socksEntry = socksAllocator.alloc();
     // The socksEntry->init() will get the origin server addr by 
vc->get_remote_addr(),
     //   and save it to socksEntry->req_data.dest_ip.
-    socksEntry->init(cont->mutex, vc, opt->socks_support, opt->socks_version); 
/*XXXX remove last two args */
+    socksEntry->init(cont->mutex, vc, opt.socks_support, opt.socks_version); 
/*XXXX remove last two args */
     socksEntry->action_ = cont;
     cont                = socksEntry;
     if (!ats_is_ip(&socksEntry->server_addr)) {
diff --git a/iocore/net/UnixUDPNet.cc b/iocore/net/UnixUDPNet.cc
index 97031ad81a..6f7ce146d4 100644
--- a/iocore/net/UnixUDPNet.cc
+++ b/iocore/net/UnixUDPNet.cc
@@ -1002,7 +1002,7 @@ UDPNetProcessor::sendto_re(Continuation *cont, void 
*token, int fd, struct socka
 }
 
 bool
-UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr const *remote_addr, 
Action **status, NetVCOptions &opt)
+UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr const *remote_addr, 
Action **status, NetVCOptions const &opt)
 {
   int res = 0, fd = -1;
   int local_addr_len;
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 4c8b291a46..5822473e25 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -5604,12 +5604,12 @@ HttpSM::do_http_server_open(bool raw, bool only_direct)
 
     pending_action = sslNetProcessor.connect_re(cont,                          
       // state machine or ConnectingEntry
                                                 
&t_state.current.server->dst_addr.sa, // addr + port
-                                                &opt);
+                                                opt);
   } else {
     SMDebug("http", "calling netProcessor.connect_re");
     pending_action = netProcessor.connect_re(cont,                             
    // state machine or ConnectingEntry
                                              
&t_state.current.server->dst_addr.sa, // addr + port
-                                             &opt);
+                                             opt);
   }
 
   return;
diff --git a/proxy/http/PreWarmManager.cc b/proxy/http/PreWarmManager.cc
index 124f74f5be..579c970346 100644
--- a/proxy/http/PreWarmManager.cc
+++ b/proxy/http/PreWarmManager.cc
@@ -548,7 +548,7 @@ PreWarmSM::_connect(const IpEndpoint &addr)
   case SNIRoutingType::FORWARD: {
     SCOPED_MUTEX_LOCK(lock, mutex, this_ethread());
     // TODO: constify UnixNetProcessor::connect_re_internal()
-    connect_action_handle = netProcessor.connect_re(this, &addr.sa, &opt);
+    connect_action_handle = netProcessor.connect_re(this, &addr.sa, opt);
     break;
   }
   case SNIRoutingType::PARTIAL_BLIND: {
@@ -568,7 +568,7 @@ PreWarmSM::_connect(const IpEndpoint &addr)
     opt.ssl_client_ca_cert_name     = 
http_conf_params->oride.ssl_client_ca_cert_filename;
 
     SCOPED_MUTEX_LOCK(lock, mutex, this_ethread());
-    connect_action_handle = sslNetProcessor.connect_re(this, &addr.sa, &opt);
+    connect_action_handle = sslNetProcessor.connect_re(this, &addr.sa, opt);
     break;
   }
   default:
diff --git a/src/traffic_quic/quic_client.cc b/src/traffic_quic/quic_client.cc
index cce5d1e194..a4502eda96 100644
--- a/src/traffic_quic/quic_client.cc
+++ b/src/traffic_quic/quic_client.cc
@@ -90,7 +90,7 @@ QUICClient::start(int, void *)
 
     SCOPED_MUTEX_LOCK(lock, this->mutex, this_ethread());
 
-    Action *action = quic_NetProcessor.connect_re(this, info->ai_addr, &opt);
+    Action *action = quic_NetProcessor.connect_re(this, info->ai_addr, opt);
     if (action == ACTION_RESULT_DONE) {
       break;
     }
diff --git a/src/traffic_server/InkAPI.cc b/src/traffic_server/InkAPI.cc
index ea052c77c7..9b29032b29 100644
--- a/src/traffic_server/InkAPI.cc
+++ b/src/traffic_server/InkAPI.cc
@@ -7266,7 +7266,7 @@ TSNetConnect(TSCont contp, sockaddr const *addr)
 
   FORCE_PLUGIN_SCOPED_MUTEX(contp);
 
-  return 
reinterpret_cast<TSAction>(netProcessor.connect_re(reinterpret_cast<INKContInternal
 *>(contp), addr, &opt));
+  return 
reinterpret_cast<TSAction>(netProcessor.connect_re(reinterpret_cast<INKContInternal
 *>(contp), addr, opt));
 }
 
 TSAction
@@ -7283,7 +7283,7 @@ TSNetConnectTransparent(TSCont contp, sockaddr const 
*client_addr, sockaddr cons
 
   FORCE_PLUGIN_SCOPED_MUTEX(contp);
 
-  return 
reinterpret_cast<TSAction>(netProcessor.connect_re(reinterpret_cast<INKContInternal
 *>(contp), server_addr, &opt));
+  return 
reinterpret_cast<TSAction>(netProcessor.connect_re(reinterpret_cast<INKContInternal
 *>(contp), server_addr, opt));
 }
 
 TSCont
diff --git a/src/traffic_server/SocksProxy.cc b/src/traffic_server/SocksProxy.cc
index 67a1a3a3e2..53214e9bf0 100644
--- a/src/traffic_server/SocksProxy.cc
+++ b/src/traffic_server/SocksProxy.cc
@@ -533,7 +533,7 @@ SocksProxy::parse_socks_client_request(unsigned char *p)
       vc_options.socks_support = p[1];
       vc_options.socks_version = version;
 
-      Action *action = netProcessor.connect_re(this, ats_ip_sa_cast(&addr), 
&vc_options);
+      Action *action = netProcessor.connect_re(this, ats_ip_sa_cast(&addr), 
vc_options);
       if (action != ACTION_RESULT_DONE) {
         ink_release_assert(pending_action == nullptr);
         pending_action = action;

Reply via email to