You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2021/03/29 19:53:59 UTC
[trafficserver] 01/03: Remove ProxyTransaction::set_proxy_ssn
(#7567)
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 2c471ad0929f6fd76a3e7a13a6da4a42c4b6a139
Author: Masakazu Kitajo <ma...@apache.org>
AuthorDate: Fri Mar 5 09:35:26 2021 +0900
Remove ProxyTransaction::set_proxy_ssn (#7567)
* Remove ProxyTransaction::set_proxy_ssn
* Call ProxySession's constructor
* Call Http1ServerSession's constructor
(cherry picked from commit f4f4f59237018b91824f9130d57539e46c1def30)
---
proxy/ProxyTransaction.cc | 2 +-
proxy/ProxyTransaction.h | 11 ++---------
proxy/http/Http1ClientSession.cc | 3 +--
proxy/http/Http1Transaction.h | 2 +-
proxy/http/HttpSM.cc | 1 +
proxy/http/HttpSessionAccept.cc | 1 +
proxy/http2/Http2ClientSession.cc | 2 +-
proxy/http2/Http2ConnectionState.cc | 3 +--
proxy/http2/Http2SessionAccept.cc | 5 +++--
proxy/http2/Http2Stream.cc | 7 ++-----
proxy/http2/Http2Stream.h | 5 ++---
proxy/http3/Http3Transaction.cc | 4 +---
12 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/proxy/ProxyTransaction.cc b/proxy/ProxyTransaction.cc
index 15601f4..eedfa31 100644
--- a/proxy/ProxyTransaction.cc
+++ b/proxy/ProxyTransaction.cc
@@ -26,7 +26,7 @@
#define HttpTxnDebug(fmt, ...) SsnDebug(this, "http_txn", fmt, __VA_ARGS__)
-ProxyTransaction::ProxyTransaction() : VConnection(nullptr) {}
+ProxyTransaction::ProxyTransaction(ProxySession *session) : VConnection(nullptr), _proxy_ssn(session) {}
void
ProxyTransaction::new_transaction(bool from_early_data)
diff --git a/proxy/ProxyTransaction.h b/proxy/ProxyTransaction.h
index e264ab9..420a0a8 100644
--- a/proxy/ProxyTransaction.h
+++ b/proxy/ProxyTransaction.h
@@ -32,7 +32,8 @@ class HttpSM;
class ProxyTransaction : public VConnection
{
public:
- ProxyTransaction();
+ ProxyTransaction() : VConnection(nullptr) {}
+ ProxyTransaction(ProxySession *ssn);
/// Virtual Methods
//
@@ -81,8 +82,6 @@ public:
virtual bool get_half_close_flag() const;
virtual bool is_chunked_encoding_supported() const;
- virtual void set_proxy_ssn(ProxySession *set_proxy_ssn);
-
// Returns true if there is a request body for this request
virtual bool has_request_body(int64_t content_length, bool is_chunked_set) const;
@@ -191,12 +190,6 @@ ProxyTransaction::get_proxy_ssn()
return _proxy_ssn;
}
-inline void
-ProxyTransaction::set_proxy_ssn(ProxySession *new_proxy_ssn)
-{
- _proxy_ssn = new_proxy_ssn;
-}
-
inline PoolableSession *
ProxyTransaction::get_server_session() const
{
diff --git a/proxy/http/Http1ClientSession.cc b/proxy/http/Http1ClientSession.cc
index 14291cb..8e269ca 100644
--- a/proxy/http/Http1ClientSession.cc
+++ b/proxy/http/Http1ClientSession.cc
@@ -57,7 +57,7 @@ ink_mutex debug_cs_list_mutex;
ClassAllocator<Http1ClientSession> http1ClientSessionAllocator("http1ClientSessionAllocator");
-Http1ClientSession::Http1ClientSession() {}
+Http1ClientSession::Http1ClientSession() : super(), trans(this) {}
void
Http1ClientSession::destroy()
@@ -449,7 +449,6 @@ Http1ClientSession::new_transaction()
read_state = HCS_ACTIVE_READER;
- trans.set_proxy_ssn(this);
transact_count++;
trans.new_transaction(read_from_early_data > 0 ? true : false);
diff --git a/proxy/http/Http1Transaction.h b/proxy/http/Http1Transaction.h
index d9c423d..4769bd3 100644
--- a/proxy/http/Http1Transaction.h
+++ b/proxy/http/Http1Transaction.h
@@ -32,7 +32,7 @@ class Http1Transaction : public ProxyTransaction
public:
using super_type = ProxyTransaction;
- Http1Transaction() {}
+ Http1Transaction(ProxySession *session) : super_type(session) {}
////////////////////
// Methods
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 427a728..c0f99e9 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -1827,6 +1827,7 @@ HttpSM::state_http_server_open(int event, void *data)
Http1ServerSession *session = (TS_SERVER_SESSION_SHARING_POOL_THREAD == httpSessionManager.get_pool_type()) ?
THREAD_ALLOC_INIT(httpServerSessionAllocator, mutex->thread_holding) :
httpServerSessionAllocator.alloc();
+ new (session) Http1ServerSession();
session->sharing_pool = static_cast<TSServerSessionSharingPoolType>(t_state.http_config_param->server_session_sharing_pool);
session->sharing_match = static_cast<TSServerSessionSharingMatchMask>(t_state.txn_conf->server_session_sharing_match);
diff --git a/proxy/http/HttpSessionAccept.cc b/proxy/http/HttpSessionAccept.cc
index ea9d075..c7d3b1f 100644
--- a/proxy/http/HttpSessionAccept.cc
+++ b/proxy/http/HttpSessionAccept.cc
@@ -50,6 +50,7 @@ HttpSessionAccept::accept(NetVConnection *netvc, MIOBuffer *iobuf, IOBufferReade
}
Http1ClientSession *new_session = THREAD_ALLOC_INIT(http1ClientSessionAllocator, this_ethread());
+ new (new_session) Http1ClientSession();
new_session->accept_options = static_cast<Options *>(this);
new_session->acl = std::move(acl);
diff --git a/proxy/http2/Http2ClientSession.cc b/proxy/http2/Http2ClientSession.cc
index d235cd2..38a84d5 100644
--- a/proxy/http2/Http2ClientSession.cc
+++ b/proxy/http2/Http2ClientSession.cc
@@ -65,7 +65,7 @@ send_connection_event(Continuation *cont, int event, void *edata)
return cont->handleEvent(event, edata);
}
-Http2ClientSession::Http2ClientSession() = default;
+Http2ClientSession::Http2ClientSession() : super() {}
void
Http2ClientSession::destroy()
diff --git a/proxy/http2/Http2ConnectionState.cc b/proxy/http2/Http2ConnectionState.cc
index 1d68105..1ee9c2b 100644
--- a/proxy/http2/Http2ConnectionState.cc
+++ b/proxy/http2/Http2ConnectionState.cc
@@ -1221,7 +1221,7 @@ Http2ConnectionState::create_stream(Http2StreamId new_id, Http2Error &error)
}
Http2Stream *new_stream = THREAD_ALLOC_INIT(http2StreamAllocator, this_ethread());
- new_stream->init(new_id, client_settings.get(HTTP2_SETTINGS_INITIAL_WINDOW_SIZE));
+ new (new_stream) Http2Stream(ua_session, new_id, client_settings.get(HTTP2_SETTINGS_INITIAL_WINDOW_SIZE));
ink_assert(nullptr != new_stream);
ink_assert(!stream_list.in(new_stream));
@@ -1243,7 +1243,6 @@ Http2ConnectionState::create_stream(Http2StreamId new_id, Http2Error &error)
zombie_event = nullptr;
}
- new_stream->set_proxy_ssn(ua_session);
new_stream->mutex = new_ProxyMutex();
new_stream->is_first_transaction_flag = get_stream_requests() == 0;
increment_stream_requests();
diff --git a/proxy/http2/Http2SessionAccept.cc b/proxy/http2/Http2SessionAccept.cc
index f0226fd..3e02dc3 100644
--- a/proxy/http2/Http2SessionAccept.cc
+++ b/proxy/http2/Http2SessionAccept.cc
@@ -54,8 +54,9 @@ Http2SessionAccept::accept(NetVConnection *netvc, MIOBuffer *iobuf, IOBufferRead
}
Http2ClientSession *new_session = THREAD_ALLOC_INIT(http2ClientSessionAllocator, this_ethread());
- new_session->acl = std::move(session_acl);
- new_session->accept_options = &options;
+ new (new_session) Http2ClientSession();
+ new_session->acl = std::move(session_acl);
+ new_session->accept_options = &options;
// Pin session to current ET_NET thread
new_session->setThreadAffinity(this_ethread());
diff --git a/proxy/http2/Http2Stream.cc b/proxy/http2/Http2Stream.cc
index c45a997..f1f362d 100644
--- a/proxy/http2/Http2Stream.cc
+++ b/proxy/http2/Http2Stream.cc
@@ -39,14 +39,11 @@
ClassAllocator<Http2Stream> http2StreamAllocator("http2StreamAllocator");
-Http2Stream::Http2Stream(Http2StreamId sid, ssize_t initial_rwnd) : _id(sid), _client_rwnd(initial_rwnd)
+Http2Stream::Http2Stream(ProxySession *session, Http2StreamId sid, ssize_t initial_rwnd)
+ : super(session), _id(sid), _client_rwnd(initial_rwnd)
{
SET_HANDLER(&Http2Stream::main_event_handler);
-}
-void
-Http2Stream::init(Http2StreamId sid, ssize_t initial_rwnd)
-{
this->mark_milestone(Http2StreamMilestone::OPEN);
this->_sm = nullptr;
diff --git a/proxy/http2/Http2Stream.h b/proxy/http2/Http2Stream.h
index 544cd1e..44e6f0c 100644
--- a/proxy/http2/Http2Stream.h
+++ b/proxy/http2/Http2Stream.h
@@ -54,9 +54,8 @@ public:
const int retry_delay = HRTIME_MSECONDS(10);
using super = ProxyTransaction; ///< Parent type.
- Http2Stream(Http2StreamId sid = 0, ssize_t initial_rwnd = Http2::initial_window_size);
-
- void init(Http2StreamId sid, ssize_t initial_rwnd);
+ Http2Stream() {} // Just to satisfy ClassAllocator
+ Http2Stream(ProxySession *session, Http2StreamId sid, ssize_t initial_rwnd);
int main_event_handler(int event, void *edata);
diff --git a/proxy/http3/Http3Transaction.cc b/proxy/http3/Http3Transaction.cc
index 1be472c..5cd490b 100644
--- a/proxy/http3/Http3Transaction.cc
+++ b/proxy/http3/Http3Transaction.cc
@@ -57,13 +57,11 @@
//
// HQTransaction
//
-HQTransaction::HQTransaction(HQSession *session, QUICStreamIO *stream_io) : super(), _stream_io(stream_io)
+HQTransaction::HQTransaction(HQSession *session, QUICStreamIO *stream_io) : super(session), _stream_io(stream_io)
{
this->mutex = new_ProxyMutex();
this->_thread = this_ethread();
- this->set_proxy_ssn(session);
-
this->_reader = this->_read_vio_buf.alloc_reader();
HTTPType http_type = HTTP_TYPE_UNKNOWN;