diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2023-07-14 18:36:34 +0200 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2023-10-31 18:19:22 +0100 |
commit | 1b19d1117ca5373a15313227b547ef4392022dbd (patch) | |
tree | 4670ed1ed5ab7d6ae97522005b4f842b77e9a265 /src/util | |
parent | 73dfa6da0801e3116e7e84cd5e089b98a9f70212 (diff) | |
download | bitcoin-1b19d1117ca5373a15313227b547ef4392022dbd.tar.xz |
sock: change Sock::SendComplete() to take Span
This would make it easier to pass other than `std::string` types,
to be used in the `Socks5()` function.
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/sock.cpp | 9 | ||||
-rw-r--r-- | src/util/sock.h | 9 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/util/sock.cpp b/src/util/sock.cpp index d16dc56aa3..e896b87160 100644 --- a/src/util/sock.cpp +++ b/src/util/sock.cpp @@ -242,7 +242,7 @@ bool Sock::WaitMany(std::chrono::milliseconds timeout, EventsPerSock& events_per #endif /* USE_POLL */ } -void Sock::SendComplete(const std::string& data, +void Sock::SendComplete(Span<const unsigned char> data, std::chrono::milliseconds timeout, CThreadInterrupt& interrupt) const { @@ -283,6 +283,13 @@ void Sock::SendComplete(const std::string& data, } } +void Sock::SendComplete(Span<const char> data, + std::chrono::milliseconds timeout, + CThreadInterrupt& interrupt) const +{ + SendComplete(MakeUCharSpan(data), timeout, interrupt); +} + std::string Sock::RecvUntilTerminator(uint8_t terminator, std::chrono::milliseconds timeout, CThreadInterrupt& interrupt, diff --git a/src/util/sock.h b/src/util/sock.h index d78e01929b..65e7ffc165 100644 --- a/src/util/sock.h +++ b/src/util/sock.h @@ -228,7 +228,14 @@ public: * @throws std::runtime_error if the operation cannot be completed. In this case only some of * the data will be written to the socket. */ - virtual void SendComplete(const std::string& data, + virtual void SendComplete(Span<const unsigned char> data, + std::chrono::milliseconds timeout, + CThreadInterrupt& interrupt) const; + + /** + * Convenience method, equivalent to `SendComplete(MakeUCharSpan(data), timeout, interrupt)`. + */ + virtual void SendComplete(Span<const char> data, std::chrono::milliseconds timeout, CThreadInterrupt& interrupt) const; |