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
The following commit(s) were added to refs/heads/9.1.x by this push: new e5d74a2 use sendmsg and recvmsg (#7793) e5d74a2 is described below commit e5d74a288e4e17d8e7f36b9f16b9817889dcde89 Author: Vijay Mamidi <vijayabhaskar_mam...@yahoo.com> AuthorDate: Fri May 7 10:09:23 2021 -0700 use sendmsg and recvmsg (#7793) (cherry picked from commit e9c6f67536e4f50ac9a6c036f82c351a26c45693) --- iocore/net/UnixNetVConnection.cc | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc index d1f6d9f..af5deec 100644 --- a/iocore/net/UnixNetVConnection.cc +++ b/iocore/net/UnixNetVConnection.cc @@ -255,7 +255,14 @@ read_from_net(NetHandler *nh, UnixNetVConnection *vc, EThread *thread) ink_assert(niov > 0); ink_assert(niov <= countof(tiovec)); - r = socketManager.readv(vc->con.fd, &tiovec[0], niov); + struct msghdr msg; + + ink_zero(msg); + msg.msg_name = const_cast<sockaddr *>(vc->get_remote_addr()); + msg.msg_namelen = ats_ip_size(vc->get_remote_addr()); + msg.msg_iov = &tiovec[0]; + msg.msg_iovlen = niov; + r = socketManager.recvmsg(vc->con.fd, &msg, 0); NET_INCREMENT_DYN_STAT(net_calls_to_read_stat); @@ -966,19 +973,21 @@ UnixNetVConnection::load_buffer_and_write(int64_t towrite, MIOBufferAccessor &bu // If the platform doesn't support TCP Fast Open, verify that we // correctly disabled support in the socket option configuration. ink_assert(MSG_FASTOPEN != 0 || this->options.f_tcp_fastopen == false); + struct msghdr msg; - if (!this->con.is_connected && this->options.f_tcp_fastopen) { - struct msghdr msg; - - ink_zero(msg); - msg.msg_name = const_cast<sockaddr *>(this->get_remote_addr()); - msg.msg_namelen = ats_ip_size(this->get_remote_addr()); - msg.msg_iov = &tiovec[0]; - msg.msg_iovlen = niov; + ink_zero(msg); + msg.msg_name = const_cast<sockaddr *>(this->get_remote_addr()); + msg.msg_namelen = ats_ip_size(this->get_remote_addr()); + msg.msg_iov = &tiovec[0]; + msg.msg_iovlen = niov; + int flags = 0; + if (!this->con.is_connected && this->options.f_tcp_fastopen) { NET_INCREMENT_DYN_STAT(net_fastopen_attempts_stat); - - r = socketManager.sendmsg(con.fd, &msg, MSG_FASTOPEN); + flags = MSG_FASTOPEN; + } + r = socketManager.sendmsg(con.fd, &msg, flags); + if (!this->con.is_connected && this->options.f_tcp_fastopen) { if (r < 0) { if (r == -EINPROGRESS || r == -EWOULDBLOCK) { this->con.is_connected = true; @@ -987,9 +996,6 @@ UnixNetVConnection::load_buffer_and_write(int64_t towrite, MIOBufferAccessor &bu NET_INCREMENT_DYN_STAT(net_fastopen_successes_stat); this->con.is_connected = true; } - - } else { - r = socketManager.writev(con.fd, &tiovec[0], niov); } if (r > 0) {