+
    bS/  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHtHt ^ RIt]P0                  R 4       t]P0                  R 4       tR tR tR tR tR	 tR
 t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1] Pd                  R8  d   ]3t4M]5t4R t6R t7R t8R# )     N)bootedis_fifo_is_fifo	is_socket
_is_socketis_socket_inet_is_socket_inetis_socket_unix_is_socket_unixis_socket_sockaddr_is_socket_sockaddris_mq_is_mq
listen_fdslisten_fds_with_namesnotifyc               #   s   "    R x  R #   \          d;   p T P                  \        P                  8X  d   \        P                  ! 4        h R p ? ii ; i5iN)OSErrorerrnoZENOSYSpytestZskip)es    ?/usr/lib64/python3.14/site-packages/systemd/test/test_daemon.pyskip_enosysr      s8      77ell"KKMs$   A
 AA5A

AAc              #   s  "   \         P                  ! V 4      p Vx  V^ ,          P                  4        V^,          P                  4        R#   T^ ,          P                  4        T^,          P                  4        i ; i5i)r    N)socketZ
socketpairZclose)Zfamilypair   & r   closing_socketpairr      sV     V$D
QQ 	QQs   BA 0B0A>>Bc                  sT    \         P                  P                  R 4      '       d   R# R# )z/run/systemd/systemN)ospathZexists     r   test_bootedr    &   s    	ww~~+,,r   c                 s    V P                  R 4      P                  p\        P                  ! V4       \        P
                  ! V\        P                  \        P                  ,          4      pR# 	test.fifoN)joinstrpathposixmkfifor   openO_RDONLY
O_NONBLOCK)tmpdirr   fds   &  r   test__is_fifor,   .   s?    ;;{#++D	LL	r{{2==0	1Br   c                 s    V P                  R 4      pVP                  R4       VP                  p\        P                  ! V\        P
                  \        P                  ,          4      pR# )r"   booN)r#   writer$   r   r'   r(   r)   r*   filer   r+      &   r   test__is_fifo_filer2   6   sB    ;;{#DJJu<<D	r{{2==0	1Br   c                 6   V P                  R 4      P                  p\        P                  ! \        4      ;_uu_ 4        RRR4       \        P                  ! \        4      ;_uu_ 4        RRR4       R#   + '       g   i     L=; i  + '       g   i     R# ; ir!   r#   r$   r   raisesr   r*   r   r   r   test__is_fifo_bad_fdr7   ?   Q    ;;{#++D	w			 
w			 
 	 
 		   A4)B4B	B	c                 s
   V P                  R 4      P                  p\        P                  ! V4       \        P
                  ! V\        P                  \        P                  ,          4      p\        P                  ! VR4      pR# )r"   rN)	r#   r$   r%   r&   r   r'   r(   r)   fdopen)r*   r   r+   r0   r1   r   test_is_fifor<   H   sO    ;;{#++D	LL	r{{2==0	1B99RDr   c                 s   V P                  R 4      pVP                  R4       VP                  p\        P                  ! V\        P
                  \        P                  ,          4      p\        P                  ! VR4      pR# )r"   r-   r:   N)r#   r.   r$   r   r'   r(   r)   r;   r/   r1   r   test_is_fifo_filer=   S   sR    ;;{#DJJu<<D	r{{2==0	1B99RDr   c                 r3   r!   r4   r6   r   r   test_is_fifo_bad_fdr>   _   r8   r9   c                 L     \        V 4      #   \         d   p R p?R# R p?ii ; iNF)r   r   argerrorr   r   is_mq_wrapperrD   h   s&    Sz     
 ##c                 r?   r@   )r   r   rA   r   r   _is_mq_wrapperrF   p   s&    c{  rE   c            
      s   \        \        P                  4      ;_uu_ 4       p V  Fd  p\        4       ;_uu_ 4        R R R 4       VP	                  4       p\        4       ;_uu_ 4        R R R 4       \        4       ;_uu_ 4        R R R 4       Kf  	  R R R 4       R #   + '       g   i     Ld; i  + '       g   i     LL; i  + '       g   i     K  ; i  + '       g   i     R # ; ir   )r   r   AF_UNIXr   filenor   sockr+         r   test_no_mismatchrL   x   sy    	FNN	+	+tD  B  #  
,	+
   % 
,	+	+sQ   CB*C%B*&C B=CB'"C*B:5C=C	CC"	c                  s   \        \        P                  4      ;_uu_ 4       p V  FQ  pWP                  4       3 F  p\	        4       ;_uu_ 4        R R R 4       K   	  \	        4       ;_uu_ 4        R R R 4       KS  	  R R R 4       R #   + '       g   i     K\  ; i  + '       g   i     K  ; i  + '       g   i     R # ; ir   )r   r   rG   rH   r   r   rJ   rB   rK   r   test_is_socketrN      sn    	FNN	+	+tDkkm, !]]] -   
,	+ #]] ! 
,	+	+s;   ,B,BB,-B.B,B	B,B)#	B,,B=	c                  s   \         P                  ! \        P                  ! \        P                  4      4      ;_uu_ 4       p V P	                  R4       V P                  4       w  rRP                  V4      pR EF  pW P                  4       3 F  p\        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       \        P                  ! \        4      ;_uu_ 4        \        VR RR7       RRR4       \        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       K  	  \        P                  ! \        4      ;_uu_ 4        \        XR ^ R4       RRR4       \        4       ;_uu_ 4        RRR4       \        4       ;_uu_ 4        RRR4       V P                  ^4       EK  	  RRR4       R#   + '       g   i     EL; i  + '       g   i     ELx; i  + '       g   i     ELq; i  + '       g   i     ELj; i  + '       g   i     ELc; i  + '       g   i     EL>; i  + '       g   i     EL7; i  + '       g   i     EK*  ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)	127.0.0.1z:{}Ni@ )Zflowinfo)rO   r    )r       )
contextlibZclosingr   ZAF_INETbindZgetsocknameZformatrH   r   r   r5   Z
ValueErrorr
   r   Zlisten)rJ   ZaddrZportZ	listeningrB   s        r   test_is_socket_sockaddrrS      s   			FMM&..9	:	:d		"#%%'
||D!Ikkm, ]]] ]]] !]]] ]]] ]]] ]]:..&sK&I / !]]] ]]]% -* z**#Ca@ +  KKO=   
;	: #]]"]] #]]"]]"]] /.. #]]"]] +** A 
;	:	:s  A!K5"H#K5=H->K5IK53I4K5I)*K59I=K5"J#K5=J%>.K5,J:;K5KK50K"1K5H*$	K5-H>8	K5I	K5I& 	K5)I:4	K5=J	K5J"	K5%J70
K5:K	K5K	K5"K2-K55L	c                      \        \        P                  4      ;_uu_ 4       p V  F  pVP                  4       pK  	  R R R 4       R #   + '       g   i     R # ; ir   r   r   rG   rH   rI   rK   r   test__is_socketrV      7    	FNN	+	+tDB  
,	+	+	+   AA	c                  s    \        \        P                  4      ;_uu_ 4       p V  F  pWP                  4       3 F  pK  	  K  	  R R R 4       R #   + '       g   i     R # ; ir   rU   rM   rK   r   test_is_socket_unixrY      s=    	FNN	+	+tDkkm,,  
,	+	+	+s   "AA	c                  rT   r   rU   rI   rK   r   test__is_socket_unixrZ      rW   rX   c                  s^    \         P                  ! R 4       \         P                  ! R4       R# )
LISTEN_FDS
LISTEN_PIDNr   unsetenvr   r   r   test_listen_fds_no_fdsr_      s    KKKKr   c                      R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   R# )3r[   r\   Nr   environstrgetpidr   r   r   test_listen_fdsrf      )    "BJJ|"299;/BJJ|r   c                  r`   )1r[   r\   Nrb   r   r   r   test_listen_fds_default_unsetri      rg   r   c                  s    \         P                  ! R 4       \         P                  ! R4       \         P                  ! R4       R# )r[   r\   LISTEN_FDNAMESNr]   r   r   r   "test_listen_fds_with_names_nothingrk     s'    KKKKKK !r   c                  s    R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   \         P                  ! R4       R# )rh   r[   r\   rj   N)r   rc   rd   re   r^   r   r   r   #test_listen_fds_with_names_no_namesrl     s6    "BJJ|"299;/BJJ|KK !r   c                      R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   R\         P                  R&   R# )rh   r[   r\   Zcmdsrj   Nrb   r   r   r   !test_listen_fds_with_names_singlern     s8    "BJJ|"299;/BJJ|#)BJJ r   c                  rm   )ra   r[   r\   zcmds:data:errsrj   Nrb   r   r   r   #test_listen_fds_with_names_multiplero   !  s8    "BJJ|"299;/BJJ|#3BJJ r   c                  s    \         P                  P                  R R4       \        4       ;_uu_ 4        RRR4       R#   + '       g   i     R# ; i)NOTIFY_SOCKETN)r   rc   Zpopr   r   r   r   test_notify_no_socketrq   +  s&    JJNN?D) 
s	   >A	c            	      s   R \         P                  R&   \        P                  ! \        4      ;_uu_ 4        \        R4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        4       ;_uu_ 4        \        R. R7       RRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        R^^.R7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        R\         P                  ! 4       R7       RRR4       \        P                  ! \        4      ;_uu_ 4        \        R\         P                  ! 4       RR7       RRR4       R#   + '       g   i     EL7; i  + '       g   i     L; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)	z	/dev/nullrp   zREADY=1Nz	FDSTORE=1)fds)pid)rs   rr   )rP   )r   rc   r   r5   connection_errorr   r   re   r   r   r   test_notify_bad_socketru   :  s   "-BJJ	'	(	(y 
)	'	(	(]];B'  
) 
'	(	({A' 
)	'	(	({		, 
)	'	(	({		6 
)	( 
)	(	( ] 
)	(	( 
)	(	(	(	(	(	(sS   E0,F?F	F?F+9!F>"G0F	FFF(	+F;	>G	G"	c                 s,   V P                  R 4      P                  p\        P                  ! \        P                  \        P                  4      p VP                  V4       \        \        R^4      pVP                  \        P                  V^4       V\        P                  R&   \        4       ;_uu_ 4        RRR4       R#   \        P                   d(   p\        P                  ! RT,          4        Rp?LRp?ii ; i  + '       g   i     R# ; i)r   zfailed to bind socket (%s)NSO_PASSCREDrp   )r#   r$   r   rG   Z
SOCK_DGRAMrR   rC   r   ZxfailZgetattrZ
setsockoptZ
SOL_SOCKETr   rc   r   )r*   r   rJ   r   rv   s   &    r   test_notify_with_socketrw   I  s    ;;x ((D==):):;D7		$ &-4KOOF%%{A6"&BJJ 
 << 71A5667 
s$   C 8DC?C::C?D	c                  s~    ^p V .p\         P                  ! V 4      p \        RR^ V4       R#   \         d     R# i ; i)rP   Z TN)sysZgetrefcountr   rt   )r+   rr   Zref_cntrK   r   test_daemon_notify_memleakry   \  sA    	
B$Coob!Gr4C  s   - <<)i   )9rx   r   r%   r   rQ   r   Zsystemd.daemonr   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Zcontextmanagerr   r   r    r,   r2   r7   r<   r=   r>   rD   rF   rL   rN   rS   rV   rY   rZ   r_   rf   ri   rk   rl   rn   ro   rq   Zversion_infoZConnectionRefusedErrorrt   r   ru   rw   ry   r   r   r   <module>rz      s   
 	    $ $ $ $ $    )"&	
!%E,]($LI B>#.)-)C t-7:&2r   