ó
Ì	g]c           @   sÞ   d  d l  Z  d  d l Z d  d l Z e  j e ƒ Z i  Z y e j e d <Wn< e	 k
 rˆ e j
 j r‰ e j
 j d k r‰ d e d <q‰ n Xy+ e j e d <e j e d <e j e d	 <Wn e	 k
 rÇ n Xd
 „  Z d „  Z d S(   iÿÿÿÿNt   TCP_USER_TIMEOUTi   i   i%   i   t   TCP_KEEPIDLEt   TCP_KEEPCNTt   TCP_KEEPINTVLc         C   s"   d |  k p! d |  k p! d |  k S(   NR   R   R   (    (   t   tcp_options(    (    s9   /srv/kernel/kteam-tools/dashboard/pika/tcp_socket_opts.pyt   socket_requires_keepalive   s    c         C   s—   |  s
 d  St  |  ƒ r2 | j t j t j d ƒ n  x^ |  j ƒ  D]P \ } } t j | ƒ } | r| | j t j	 j
 | | ƒ q? t j d | | ƒ q? Wd  S(   Ni   s   Unsupported TCP option %s:%s(   R   t
   setsockoptt   sockett
   SOL_SOCKETt   SO_KEEPALIVEt   itemst   _SUPPORTED_TCP_OPTIONSt   gett   pikat   compatt   SOL_TCPt   LOGGERt   warning(   R   t   sockt   keyt   valuet   option(    (    s9   /srv/kernel/kteam-tools/dashboard/pika/tcp_socket_opts.pyt   set_sock_opts#   s    (   i   i   i%   (   t   loggingR   t   pika.compatR   t	   getLoggert   __name__R   R   R    t   AttributeErrorR   t   LINUX_VERSIONR   R   R   R   R   (    (    (    s9   /srv/kernel/kteam-tools/dashboard/pika/tcp_socket_opts.pyt   <module>   s"   	