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) {

Reply via email to