You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by so...@apache.org on 2016/11/02 16:44:21 UTC
[trafficserver] branch 6.2.x updated: TS-4732: Changing the
do_io_read API so it can be called with NULL and 0 byte values. Allowing
do_io_read and do_io_write to not warn on closed connection when we are
only trying to disable the reads and writes for it. Removed some macros
that were used in a few places (not all the time) and a couple that were
not used at all.
This is an automated email from the ASF dual-hosted git repository.
sorber pushed a commit to branch 6.2.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/6.2.x by this push:
new 2b7ce34 TS-4732: Changing the do_io_read API so it can be called with NULL and 0 byte values. Allowing do_io_read and do_io_write to not warn on closed connection when we are only trying to disable the reads and writes for it. Removed some macros that were used in a few places (not all the time) and a couple that were not used at all.
2b7ce34 is described below
commit 2b7ce344b9ec8c7d4e128c9fc769753d912d3bde
Author: Bryan Call <bc...@apache.org>
AuthorDate: Fri Aug 12 11:00:11 2016 -0700
TS-4732: Changing the do_io_read API so it can be called with NULL and
0 byte values. Allowing do_io_read and do_io_write to not warn on closed
connection when we are only trying to disable the reads and writes for it.
Removed some macros that were used in a few places (not all the time) and
a couple that were not used at all.
(cherry picked from commit 1975d679663453348057bb7155bdd3c17ac73880)
---
iocore/net/UnixNetVConnection.cc | 26 ++++++++++----------------
proxy/http2/Http2ClientSession.h | 3 +--
2 files changed, 11 insertions(+), 18 deletions(-)
diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc
index 441d20e..c98662f 100644
--- a/iocore/net/UnixNetVConnection.cc
+++ b/iocore/net/UnixNetVConnection.cc
@@ -29,11 +29,6 @@
#define STATE_VIO_OFFSET ((uintptr_t) & ((NetState *)0)->vio)
#define STATE_FROM_VIO(_x) ((NetState *)(((char *)(_x)) - STATE_VIO_OFFSET))
-#define disable_read(_vc) (_vc)->read.enabled = 0
-#define disable_write(_vc) (_vc)->write.enabled = 0
-#define enable_read(_vc) (_vc)->read.enabled = 1
-#define enable_write(_vc) (_vc)->write.enabled = 1
-
#ifndef UIO_MAXIOV
#define NET_MAX_IOV 16 // UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1)
#else
@@ -624,8 +619,7 @@ UnixNetVConnection::get_data(int id, void *data)
VIO *
UnixNetVConnection::do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf)
{
- ink_assert(c || 0 == nbytes);
- if (closed) {
+ if (closed && !(c == NULL && nbytes == 0 && buf == NULL)) {
Error("do_io_read invoked on closed vc %p, cont %p, nbytes %" PRId64 ", buf %p", this, c, nbytes, buf);
return NULL;
}
@@ -641,7 +635,7 @@ UnixNetVConnection::do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf)
read.vio.reenable();
} else {
read.vio.buffer.clear();
- disable_read(this);
+ read.enabled = 0;
}
return &read.vio;
}
@@ -649,7 +643,7 @@ UnixNetVConnection::do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf)
VIO *
UnixNetVConnection::do_io_write(Continuation *c, int64_t nbytes, IOBufferReader *reader, bool owner)
{
- if (closed) {
+ if (closed && !(c == NULL && nbytes == 0 && reader == NULL)) {
Error("do_io_write invoked on closed vc %p, cont %p, nbytes %" PRId64 ", reader %p", this, c, nbytes, reader);
return NULL;
}
@@ -665,7 +659,7 @@ UnixNetVConnection::do_io_write(Continuation *c, int64_t nbytes, IOBufferReader
if (nbytes && !write.enabled)
write.vio.reenable();
} else {
- disable_write(this);
+ write.enabled = 0;
}
return &write.vio;
}
@@ -673,8 +667,8 @@ UnixNetVConnection::do_io_write(Continuation *c, int64_t nbytes, IOBufferReader
void
UnixNetVConnection::do_io_close(int alerrno /* = -1 */)
{
- disable_read(this);
- disable_write(this);
+ read.enabled = 0;
+ write.enabled = 0;
read.vio.buffer.clear();
read.vio.nbytes = 0;
read.vio.op = VIO::NONE;
@@ -705,22 +699,22 @@ UnixNetVConnection::do_io_shutdown(ShutdownHowTo_t howto)
switch (howto) {
case IO_SHUTDOWN_READ:
socketManager.shutdown(((UnixNetVConnection *)this)->con.fd, 0);
- disable_read(this);
+ read.enabled = 0;
read.vio.buffer.clear();
read.vio.nbytes = 0;
f.shutdown = NET_VC_SHUTDOWN_READ;
break;
case IO_SHUTDOWN_WRITE:
socketManager.shutdown(((UnixNetVConnection *)this)->con.fd, 1);
- disable_write(this);
+ write.enabled = 0;
write.vio.buffer.clear();
write.vio.nbytes = 0;
f.shutdown = NET_VC_SHUTDOWN_WRITE;
break;
case IO_SHUTDOWN_READWRITE:
socketManager.shutdown(((UnixNetVConnection *)this)->con.fd, 2);
- disable_read(this);
- disable_write(this);
+ read.enabled = 0;
+ write.enabled = 0;
read.vio.buffer.clear();
read.vio.nbytes = 0;
write.vio.buffer.clear();
diff --git a/proxy/http2/Http2ClientSession.h b/proxy/http2/Http2ClientSession.h
index a6a6d69..58d3859 100644
--- a/proxy/http2/Http2ClientSession.h
+++ b/proxy/http2/Http2ClientSession.h
@@ -187,8 +187,7 @@ public:
virtual void
release_netvc()
{
- // Make sure the vio's are also released to avoid
- // later surprises in inactivity timeout
+ // Make sure the vio's are also released to avoid later surprises in inactivity timeout
if (client_vc) {
client_vc->do_io_read(NULL, 0, NULL);
client_vc->do_io_write(NULL, 0, NULL);
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].