+ try:
+ sock.setsockopt(socket.IPPROTO_IP, socket.IP_TOS, val)
+ except socket.error, e:
+ if e.errno != errno.ENOPROTOOPT:
+ raise
+ success = True
+ try:
+ sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_TCLASS, val)
+ except socket.error, e:
+ if e.errno != errno.ENOPROTOOPT or not success:
+ raise