
    +h	                     (    d dl Z d dlZdZddZddZy)    N   c                 ^   t        t        j                  j                  dd            }t        t        j                  j                  dd            }|t        j                         k7  ry| r@t        j                  j                  dd       t        j                  j                  dd       |S )a`  
    Get the number of sockets inherited from systemd socket activation.

    :param unset_environment: clear systemd environment variables unless False
    :type unset_environment: bool
    :return: the number of sockets to inherit from systemd socket activation
    :rtype: int

    Returns zero immediately if $LISTEN_PID is not set to the current pid.
    Otherwise, returns the number of systemd activation sockets specified by
    $LISTEN_FDS.

    When $LISTEN_PID matches the current pid, unsets the environment variables
    unless the ``unset_environment`` flag is ``False``.

    .. note::
        Unlike the sd_listen_fds C function, this implementation does not set
        the FD_CLOEXEC flag because the gunicorn arbiter never needs to do this.

    .. seealso::
        `<https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html>`_

    
LISTEN_FDSr   
LISTEN_PIDN)intosenvirongetgetpidpop)unset_environmentfds
listen_pids      C/var/www/html/venv/lib/python3.12/site-packages/gunicorn/systemd.py
listen_fdsr      ss    0 bjjnn\1-
.CRZZ^^L!45JRYY[ 


|T*


|T*J    c                 d   t         j                  j                  d      }|y	 t        j                  t        j                  t        j
                  t        j                  z        }|d   dk(  rd|dd z   }|j                  |       |j                  | j                  d             |rt         j                  j                  d       j                          y# t        $ r |j                  dd	
       Y Pw xY w# |rt         j                  j                  d       j                          w xY w)a  Send a notification to systemd. state is a string; see
    the man page of sd_notify (http://www.freedesktop.org/software/systemd/man/sd_notify.html)
    for a description of the allowable values.

    If the unset_environment parameter is True, sd_notify() will unset
    the $NOTIFY_SOCKET environment variable before returning (regardless of
    whether the function call itself succeeded or not). Further calls to
    sd_notify() will then fail, but the variable is no longer inherited by
    child processes.
    NOTIFY_SOCKETNr   @    zutf-8z$Exception while invoking sd_notify()T)exc_info)r   r	   r
   socketAF_UNIX
SOCK_DGRAMSOCK_CLOEXECconnectsendallencode	Exceptiondebugr   close)stateloggerr   addrsocks        r   	sd_notifyr'   1   s     ::>>/*D|}}V^^V->->ATAT-TU7c>$qr(?DTU\\'*+ JJNN?+

  L;dKL JJNN?+

s$   BC C96C< 8C99C< <3D/)T)F)r   r   SD_LISTEN_FDS_STARTr   r'    r   r   <module>r*      s    
  "Jr   