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;