aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdnet
diff options
context:
space:
mode:
authorArseny Smirnov <arseny30@gmail.com>2020-07-13 15:23:03 +0300
committerArseny Smirnov <arseny30@gmail.com>2020-07-13 15:23:03 +0300
commitb5ae6b5b95c1c6cf52decfb67dfeeaf26b2a5ef2 (patch)
tree6e44572c23ba925848e3a1ff590d266ea1f07e3d /tdnet
parentfee05df2cc4ac4ce9ddf6237de88f3e182d519d7 (diff)
HttpQuery: store peer address into query
GitOrigin-RevId: 00b1b116e508ab49d9cabc192f7999069fb3add1
Diffstat (limited to 'tdnet')
-rw-r--r--tdnet/td/net/HttpConnectionBase.cpp2
-rw-r--r--tdnet/td/net/HttpConnectionBase.h1
-rw-r--r--tdnet/td/net/HttpQuery.h4
3 files changed, 7 insertions, 0 deletions
diff --git a/tdnet/td/net/HttpConnectionBase.cpp b/tdnet/td/net/HttpConnectionBase.cpp
index 5de245bd2..1a0a11629 100644
--- a/tdnet/td/net/HttpConnectionBase.cpp
+++ b/tdnet/td/net/HttpConnectionBase.cpp
@@ -33,6 +33,7 @@ HttpConnectionBase::HttpConnectionBase(State state, SocketFd fd, SslStream ssl_s
read_source_ >> read_sink_;
write_source_ >> write_sink_;
}
+ peer_address_.init_peer_address(fd_).ignore();
}
void HttpConnectionBase::live_event() {
@@ -123,6 +124,7 @@ void HttpConnectionBase::loop() {
state_ = State::Write;
LOG(DEBUG) << "Send query to handler";
live_event();
+ current_query_->peer_address_ = peer_address_;
on_query(std::move(current_query_));
} else {
want_read = true;
diff --git a/tdnet/td/net/HttpConnectionBase.h b/tdnet/td/net/HttpConnectionBase.h
index bf8bf7e78..f52f16bd8 100644
--- a/tdnet/td/net/HttpConnectionBase.h
+++ b/tdnet/td/net/HttpConnectionBase.h
@@ -38,6 +38,7 @@ class HttpConnectionBase : public Actor {
State state_;
BufferedFd<SocketFd> fd_;
+ IPAddress peer_address_;
SslStream ssl_stream_;
ByteFlowSource read_source_{&fd_.input_buffer()};
diff --git a/tdnet/td/net/HttpQuery.h b/tdnet/td/net/HttpQuery.h
index fe89905d4..d198b843e 100644
--- a/tdnet/td/net/HttpQuery.h
+++ b/tdnet/td/net/HttpQuery.h
@@ -13,6 +13,8 @@
#include "td/utils/Slice.h"
#include "td/utils/StringBuilder.h"
+#include "td/utils/port/IPAddress.h"
+
#include <utility>
namespace td {
@@ -33,6 +35,8 @@ class HttpQuery {
vector<HttpFile> files_;
MutableSlice content_;
+ IPAddress peer_address_;
+
Slice get_header(Slice key) const;
MutableSlice get_arg(Slice key) const;