Repository: trafficserver Updated Branches: refs/heads/master d632e7f5d -> cde870b31
TS-2995: Apply TOS/SO marks to client connection in all accept cases. Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cde870b3 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cde870b3 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cde870b3 Branch: refs/heads/master Commit: cde870b312e5f08a787ba8512bfcc7b34853c569 Parents: d632e7f Author: Jack Bates <[email protected]> Authored: Wed Aug 20 07:38:40 2014 -0500 Committer: Alan M. Carroll <[email protected]> Committed: Wed Aug 20 07:38:40 2014 -0500 ---------------------------------------------------------------------- CHANGES | 2 ++ iocore/net/UnixNetAccept.cc | 12 ++++++++++++ 2 files changed, 14 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cde870b3/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 722a389..1b0091e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache Traffic Server 5.1.0 + *) [TS-2995] Apply TOS/SO marks to client connection in all accept cases. + *) [TS-2912] Don't clear stale object on HEAD request. *) [TS-2905] Change IP logging to print '0' instead of error text. http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cde870b3/iocore/net/UnixNetAccept.cc ---------------------------------------------------------------------- diff --git a/iocore/net/UnixNetAccept.cc b/iocore/net/UnixNetAccept.cc index 1adce02..16481db 100644 --- a/iocore/net/UnixNetAccept.cc +++ b/iocore/net/UnixNetAccept.cc @@ -275,6 +275,18 @@ NetAccept::do_blocking_accept(EThread * t) return -1; } +#if TS_HAS_SO_MARK + if (packet_mark != 0) { + safe_setsockopt(con.fd, SOL_SOCKET, SO_MARK, reinterpret_cast<char *>(&packet_mark), sizeof(uint32_t)); + } +#endif + +#if TS_HAS_IP_TOS + if (packet_tos != 0) { + safe_setsockopt(con.fd, IPPROTO_IP, IP_TOS, reinterpret_cast<char *>(&packet_tos), sizeof(uint32_t)); + } +#endif + // Use 'NULL' to Bypass thread allocator vc = (UnixNetVConnection *)this->getNetProcessor()->allocate_vc(NULL); if (!vc) {
