Chromium Code Reviews| Index: net/udp/udp_socket_libevent.cc |
| diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc |
| index 90c7da6504103dead9150b5cf28adde33b598f5f..23fe030e64b400e0b0458ce771fdeaf29c27fcdb 100644 |
| --- a/net/udp/udp_socket_libevent.cc |
| +++ b/net/udp/udp_socket_libevent.cc |
| @@ -531,6 +531,7 @@ int UDPSocketLibevent::SetSocketOptions() { |
| if (rv < 0) |
| return MapSystemError(errno); |
| } |
| + |
|
Alpha Left Google
2013/08/08 23:28:26
nit: Don't add empty lines.
hubbe
2013/08/15 23:31:11
Done.
|
| return OK; |
| } |
| @@ -651,4 +652,24 @@ int UDPSocketLibevent::SetMulticastLoopbackMode(bool loopback) { |
| socket_options_ &= ~SOCKET_OPTION_MULTICAST_LOOP; |
| return OK; |
| } |
| + |
| +int UDPSocketLibevent::SetToS(DiffServCodePoint dscp) { |
| + if (dscp == DSCP_NO_CHANGE) { |
| + return OK; |
| + } |
| + int rv; |
| + int dscp_and_ecn = dscp << 2; |
| + if (addr_family_ == AF_INET) { |
| + rv = setsockopt(socket_, IPPROTO_IP, IP_TOS, |
| + &dscp_and_ecn, sizeof(dscp_and_ecn)); |
| + } else { |
| + rv = setsockopt(socket_, IPPROTO_IPV6, IPV6_TCLASS, |
| + &dscp_and_ecn, sizeof(dscp_and_ecn)); |
| + } |
| + if (rv < 0) |
| + return MapSystemError(errno); |
| + |
| + return OK; |
| +} |
| + |
| } // namespace net |