o
    ‡×Xá  ã                   @   s    d dl mZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZmZ dd„ Zddd„Zed d	fd
d„Zed d	d fdd„Zddd„Zddd„Zddd„Zddd„ZdS )é    )Ú	AF_UNSPECé   )Ú__version__ÚbootedÚnotifyÚ_listen_fdsÚ_is_fifoÚ
_is_socketÚ_is_socket_inetÚ_is_socket_sockaddrÚ_is_socket_unixÚ_is_mqÚLISTEN_FDS_STARTc                 C   s"   z|   ¡ W S  ty   |  Y S w ©N)ÚfilenoÚAttributeError)Úfileobj© r   ú0/usr/lib/python3/dist-packages/systemd/daemon.pyÚ_convert_fileobj   s
   
ÿr   Nc                 C   ó   t | ƒ}t||ƒS r   )r   r   ©r   ÚpathÚfdr   r   r   Úis_fifo   ó   
r   éÿÿÿÿc                 C   ó   t | ƒ}t||||ƒS r   )r   r	   )r   ÚfamilyÚtypeÚ	listeningr   r   r   r   Ú	is_socket   ó   r!   c                 C   ó   t | ƒ}t|||||ƒS r   )r   r
   )r   r   r   r    Úportr   r   r   r   Úis_socket_inet   s   r%   c                 C   r#   )aa  Check socket type, address and/or port, flowinfo, listening state.

    Wraps sd_is_socket_inet_sockaddr(3).

    `address` is a systemd-style numerical IPv4 or IPv6 address as used in
    ListenStream=. A port may be included after a colon (":").
    See systemd.socket(5) for details.

    Constants for `family` are defined in the socket module.
    )r   r   )r   Úaddressr   Úflowinfor    r   r   r   r   Úis_socket_sockaddr!   s   r(   c                 C   r   r   )r   r   )r   r   r    r   r   r   r   r   Úis_socket_unix/   r"   r)   c                 C   r   r   )r   r   r   r   r   r   Úis_mq3   r   r*   Tc                 C   s   t | ƒ}tttt| ƒƒS )aS  Return a list of socket activated descriptors

    Example::

      (in primary window)
      $ systemd-activate -l 2000 python3 -c \
          'from systemd.daemon import listen_fds; print(listen_fds())'
      (in another window)
      $ telnet localhost 2000
      (in primary window)
      ...
      Execing python3 (...)
      [3]
    )r   ÚlistÚranger   )Úunset_environmentÚnumr   r   r   Ú
listen_fds7   s   r/   r   )r   r   r   )r   r   N)T)Úsocketr   Ú
_AF_UNSPECÚ_daemonr   r   r   r   r   r	   r
   r   r   r   r   r   r   r!   r%   r(   r)   r*   r/   r   r   r   r   Ú<module>   s    4



