event/SocketMonitor: eliminate Read(), Write()
Migrate callers to GetSocket().Read(), GetSocket.Write(), which is the same.
This commit is contained in:
@@ -27,7 +27,7 @@
|
|||||||
BufferedSocket::ssize_t
|
BufferedSocket::ssize_t
|
||||||
BufferedSocket::DirectRead(void *data, size_t length)
|
BufferedSocket::DirectRead(void *data, size_t length)
|
||||||
{
|
{
|
||||||
const auto nbytes = SocketMonitor::Read((char *)data, length);
|
const auto nbytes = GetSocket().Read((char *)data, length);
|
||||||
if (gcc_likely(nbytes > 0))
|
if (gcc_likely(nbytes > 0))
|
||||||
return nbytes;
|
return nbytes;
|
||||||
|
|
||||||
|
@@ -45,7 +45,6 @@ public:
|
|||||||
|
|
||||||
using SocketMonitor::IsDefined;
|
using SocketMonitor::IsDefined;
|
||||||
using SocketMonitor::Close;
|
using SocketMonitor::Close;
|
||||||
using SocketMonitor::Write;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ssize_t DirectRead(void *data, size_t length);
|
ssize_t DirectRead(void *data, size_t length);
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
FullyBufferedSocket::ssize_t
|
FullyBufferedSocket::ssize_t
|
||||||
FullyBufferedSocket::DirectWrite(const void *data, size_t length)
|
FullyBufferedSocket::DirectWrite(const void *data, size_t length)
|
||||||
{
|
{
|
||||||
const auto nbytes = SocketMonitor::Write((const char *)data, length);
|
const auto nbytes = GetSocket().Write((const char *)data, length);
|
||||||
if (gcc_unlikely(nbytes < 0)) {
|
if (gcc_unlikely(nbytes < 0)) {
|
||||||
const auto code = GetSocketError();
|
const auto code = GetSocketError();
|
||||||
if (IsSocketErrorAgain(code))
|
if (IsSocketErrorAgain(code))
|
||||||
|
@@ -95,32 +95,3 @@ SocketMonitor::Schedule(unsigned flags) noexcept
|
|||||||
|
|
||||||
scheduled_flags = flags;
|
scheduled_flags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
SocketMonitor::ssize_t
|
|
||||||
SocketMonitor::Read(void *data, size_t length) noexcept
|
|
||||||
{
|
|
||||||
assert(IsDefined());
|
|
||||||
|
|
||||||
int flags = 0;
|
|
||||||
#ifdef MSG_DONTWAIT
|
|
||||||
flags |= MSG_DONTWAIT;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return recv(GetSocket().Get(), (char *)data, length, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
SocketMonitor::ssize_t
|
|
||||||
SocketMonitor::Write(const void *data, size_t length) noexcept
|
|
||||||
{
|
|
||||||
assert(IsDefined());
|
|
||||||
|
|
||||||
int flags = 0;
|
|
||||||
#ifdef MSG_NOSIGNAL
|
|
||||||
flags |= MSG_NOSIGNAL;
|
|
||||||
#endif
|
|
||||||
#ifdef MSG_DONTWAIT
|
|
||||||
flags |= MSG_DONTWAIT;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return send(GetSocket().Get(), (const char *)data, length, flags);
|
|
||||||
}
|
|
||||||
|
@@ -126,9 +126,6 @@ public:
|
|||||||
Schedule(GetScheduledFlags() & ~WRITE);
|
Schedule(GetScheduledFlags() & ~WRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t Read(void *data, size_t length) noexcept;
|
|
||||||
ssize_t Write(const void *data, size_t length) noexcept;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
* @return false if the socket has been closed
|
* @return false if the socket has been closed
|
||||||
|
@@ -173,7 +173,7 @@ HttpdClient::SendResponse()
|
|||||||
response = buffer;
|
response = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t nbytes = SocketMonitor::Write(response, strlen(response));
|
ssize_t nbytes = GetSocket().Write(response, strlen(response));
|
||||||
if (gcc_unlikely(nbytes < 0)) {
|
if (gcc_unlikely(nbytes < 0)) {
|
||||||
const SocketErrorMessage msg;
|
const SocketErrorMessage msg;
|
||||||
FormatWarning(httpd_output_domain,
|
FormatWarning(httpd_output_domain,
|
||||||
@@ -238,15 +238,15 @@ HttpdClient::TryWritePage(const Page &page, size_t position)
|
|||||||
{
|
{
|
||||||
assert(position < page.GetSize());
|
assert(position < page.GetSize());
|
||||||
|
|
||||||
return Write(page.GetData() + position,
|
return GetSocket().Write(page.GetData() + position,
|
||||||
page.GetSize() - position);
|
page.GetSize() - position);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
HttpdClient::TryWritePageN(const Page &page, size_t position, ssize_t n)
|
HttpdClient::TryWritePageN(const Page &page, size_t position, ssize_t n)
|
||||||
{
|
{
|
||||||
return n >= 0
|
return n >= 0
|
||||||
? Write(page.GetData() + position, n)
|
? GetSocket().Write(page.GetData() + position, n)
|
||||||
: TryWritePage(page, position);
|
: TryWritePage(page, position);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,7 +315,7 @@ HttpdClient::TryWrite()
|
|||||||
} else {
|
} else {
|
||||||
char empty_data = 0;
|
char empty_data = 0;
|
||||||
|
|
||||||
ssize_t nbytes = Write(&empty_data, 1);
|
ssize_t nbytes = GetSocket().Write(&empty_data, 1);
|
||||||
if (nbytes < 0) {
|
if (nbytes < 0) {
|
||||||
auto e = GetSocketError();
|
auto e = GetSocketError();
|
||||||
if (IsSocketErrorAgain(e))
|
if (IsSocketErrorAgain(e))
|
||||||
|
Reference in New Issue
Block a user