+
    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                  s    \         P                  P                  R 4      '       d   \        4       '       g   Q hR# \        4       R9   g   Q hR# )z/run/systemd/systemN>   FT)ospathZexistsr        r   test_bootedr    &   s3    	ww~~+,,xxx x=(((r   c                 s*   V P                  R 4      P                  p\        P                  ! V4       \        P
                  ! V\        P                  \        P                  ,          4      p\        VR4      '       g   Q h\        W!4      '       g   Q hR# )	test.fifoN)	joinstrpathposixmkfifor   openO_RDONLY
O_NONBLOCKr   )tmpdirr   fds   &  r   test__is_fifor+   .   sc    ;;{#++D	LL	r{{2==0	1BBBr   c                 s$   V P                  R 4      pVP                  R4       VP                  p\        P                  ! V\        P
                  \        P                  ,          4      p\        VR4      '       d   Q h\        W24      '       d   Q hR# )r!   booN)r"   writer#   r   r&   r'   r(   r   r)   filer   r*      &   r   test__is_fifo_filer1   6   si    ;;{#DJJu<<D	r{{2==0	1BD!!!!!!!!!r   c                    V P                  R 4      P                  p\        P                  ! \        4      ;_uu_ 4        \        RR4      '       d   Q h RRR4       \        P                  ! \        4      ;_uu_ 4        \        RV4      '       d   Q h RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; ir!   N)r"   r#   r   raisesr   r   r)   r   r   r   test__is_fifo_bad_fdr7   ?   s    ;;{#++D	w		B%%%%% 
  
w		B%%%%% 
 	 
 	 
 		   B>B1B.	1C	c                 s   V P                  R 4      P                  p\        P                  ! V4       \        P
                  ! V\        P                  \        P                  ,          4      p\        P                  ! VR4      p\        VR4      '       g   Q h\        W14      '       g   Q h\        VR4      '       g   Q h\        W!4      '       g   Q hR# )r!   rN)
r"   r#   r$   r%   r   r&   r'   r(   fdopenr   )r)   r   r*   r/   r0   r   test_is_fifor;   H   s    ;;{#++D	LL	r{{2==0	1B99RD442t2r   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\        VR4      '       d   Q h\        W4      '       d   Q h\        VR4      '       d   Q h\        W24      '       d   Q hR# )r!   r,   r9   N)	r"   r-   r#   r   r&   r'   r(   r:   r   r.   r0   r   test_is_fifo_filer<   S   s    ;;{#DJJu<<D	r{{2==0	1B99RDtT""""t""""r4    r     r   c                 r2   r3   )r"   r#   r   r5   r   r   r6   r   r   test_is_fifo_bad_fdr=   _   s    ;;{#++D	w		2t$$$$$ 
  
w		2t$$$$$ 
 	 
 	 
 		r8   c                      \        V 4      #   \         d-   pTP                  \        P                  8X  g   Q h R p?R# R p?ii ; iNF)r   r   r   EBADFargerrorr   r   is_mq_wrapperrD   h   s:    Sz {{ekk)))   
 A!?Ac                 r>   r?   )r   r   r   r@   rA   r   r   _is_mq_wrapperrF   p   s:    c{ {{ekk)))rE   c            
      s   \        \        P                  4      ;_uu_ 4       p V  EFO  p\        V4      '       d   Q h\	        V4      '       d   Q h\        V4      '       d   Q h\        4       ;_uu_ 4        \        VR 4      '       d   Q h RRR4       VP                  4       p\        V4      '       d   Q h\	        V4      '       d   Q h\        V4      '       d   Q h\        4       ;_uu_ 4        \        VR 4      '       d   Q h RRR4       \        V4      '       d   Q h\        V4      '       d   Q h\        V4      '       d   Q h\        4       ;_uu_ 4        \        VR 4      '       d   Q h RRR4       EKR  	  RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     EK  ; i  + '       g   i     R# ; i)z127.0.0.1:2000N)r   r   AF_UNIXr   rD   r   r   r
   filenor   rF   r   r   r   sockr*         r   test_no_mismatchrL   x   sY   	FNN	+	+tDt}}$$$T****%d++++-d4DEEEEE  Br{{"?$R((((%b))))-b2BCCCCC   ||##%b))))&r****.r3CDDDDD #  
,	+
   % 
,	+	+sV   AF?4F
A#F?-FAF?F*,F?F	F?F'"F?*F<5
F??G	c                  s   \        \        P                  4      ;_uu_ 4       p V  EF  pWP                  4       3 F  p\	        V4      '       g   Q h\	        V\        P                  4      '       g   Q h\	        V\        P
                  4      '       d   Q h\	        V\        P                  \        P                  4      '       g   Q h\	        V\        P
                  \        P                  4      '       d   Q h\        4       ;_uu_ 4        \        VR \        P                  ^ ^ 4      '       d   Q h RRR4       K  	  \        X4      '       g   Q h\        V\        P                  4      '       g   Q h\        V\        P
                  4      '       d   Q h\        V\        P                  \        P                  4      '       g   Q h\        V\        P
                  \        P                  4      '       d   Q h\        4       ;_uu_ 4        \        VR \        P                  ^ ^ 4      '       d   Q h RRR4       EK  	  RRR4       R#   + '       g   i     EK  ; i  + '       g   i     EKF  ; i  + '       g   i     R# ; i)z8.8.8.8:2000N)r   r   rG   rH   r   AF_INETSOCK_STREAM
SOCK_DGRAMr   r
   r   r   r   rJ   rB   rK   r   test_is_socketrQ      s   	FNN	+	+tDkkm, ~~%~ fnn5555$S&..9999 fnnf6H6HIIII$S&..&:K:KLLLL ]]1#~vGXGXZ[]^_____ #] - c??"?c6>>2222!#v~~6666c6>>63E3EFFFF!#v~~v7H7HIIII.sNFDUDUWXZ[\\\\\   
,	+ #]] ! 
,	+	+s=   C&I.&I/CI.&I-I.I
I.I+$
I..I?	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 EF  p\        4       ;_uu_ 4        \        VR \        P                  4      '       g   Q h RRR4       \        4       ;_uu_ 4        \        VR V,           \        P                  4      '       g   Q h RRR4       \        4       ;_uu_ 4        \        VR V,           VR7      '       g   Q h RRR4       \        4       ;_uu_ 4        \        VR V,           R	R7      '       g   Q h RRR4       \        4       ;_uu_ 4        \        VR V,           V'       * R7      '       d   Q h RRR4       \        P                  ! \        4      ;_uu_ 4        \        VR RR7       RRR4       \        4       ;_uu_ 4        \        VR\        P                  4      '       d   Q h RRR4       \        4       ;_uu_ 4        \        VR \        P                  4      '       d   Q h RRR4       EK  	  \        P                  ! \        4      ;_uu_ 4        \        XR ^ R4       RRR4       \        4       ;_uu_ 4        \        XR\        P                  4      '       d   Q h RRR4       \        4       ;_uu_ 4        \        XR \        P                  4      '       d   Q h RRR4       V P!                  ^4       EK  	  RRR4       R#   + '       g   i     EL; i  + '       g   i     ELh; i  + '       g   i     ELC; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EKj  ; i  + '       g   i     ELP; i  + '       g   i     EL%; i  + '       g   i     L; i  + '       g   i     R# ; i)
	127.0.0.1z:{}N)	listeningi@ )Zflowinfoz129.168.11.11:23)rR   r    )r       r4   )
contextlibZclosingr   rM   bindZgetsocknameZformatrH   r   r
   rN   r   r5   Z
ValueErrorrO   r   Zlisten)rJ   ZaddrZportrS   rB   s        r   test_is_socket_sockaddrrW      s   			FMM&..9	:	:d		"#%%'
||D!Ikkm, ]]-c;@R@RSSSS # ]]-c;3EvGYGYZZZZ # !]]-c;3EQZ[[[[ # ]]-c;3EQSTTTT # ]]1#{T7IYbUbccccc # ]]:..&sK&I / !]]1#7I6K]K]^^^^^ # ]]1#{FDUDUVVVVV #]% -* z**#Ca@ + .s4FHZHZ[[[[[ .sKARARSSSSS  KKO=   
;	: #]]"]] #]]"]]"]] /.. #]]"]] +** A 
;	:	:s  A"P5#$MP5"+M-P5(NP5!N P5#N)>*P5(N=7P5$O6P5$O%5/P5$O:3P5$P2P5$P"1P5M*$	P5-M>8	P5N	P5N& 	P5)N:4	P5=O	P5O"	P5%O70
P5:P	P5P	P5"P2-P55Q	c                  s   \        \        P                  4      ;_uu_ 4       p V  EF  pVP                  4       p\	        V4      '       g   Q h\	        V\        P                  4      '       g   Q h\	        V\        P
                  4      '       d   Q h\	        V\        P                  \        P                  4      '       g   Q h\	        V\        P
                  \        P                  4      '       d   Q h\	        V4      '       g   Q h\	        V\        P                  4      '       g   Q h\	        V\        P
                  4      '       d   Q h\	        V\        P                  \        P                  4      '       g   Q h\	        V\        P
                  \        P                  4      '       g   EK  Q h	  R R R 4       R #   + '       g   i     R # ; ir   )r   r   rG   rH   r   rM   rN   rO   rI   rK   r   test__is_socketrX      s+   	FNN	+	+tDBb>>!>b&..1111!"fnn5555b&..&2D2DEEEE!"fnnf6G6GHHHHb>>!>b&..1111!"fnn5555b&..&2D2DEEEE!"fnnf6G6GHHHH  
,	+	+	+s   FF:,F::G	c            	      s   \        \        P                  4      ;_uu_ 4       p V  F  pWP                  4       3 Fo  p\	        V4      '       g   Q h\	        VR R7      '       d   Q h\	        V\        P
                  4      '       g   Q h\	        V\        P                  4      '       g   Ko  Q h	  K  	  RRR4       R#   + '       g   i     R# ; i)/no/such/path)r   N)r   r   rG   rH   r   rN   rO   rP   rK   r   test_is_socket_unixrZ      s    	FNN	+	+tDkkm,%c****)#ODDDD%c6+=+=>>>>)#v/@/@AAAA	 -  
,	+	+	+s   BB:(B::C	c            	      s   \        \        P                  4      ;_uu_ 4       p V  F  pVP                  4       p\	        V4      '       g   Q h\	        V^ RR4      '       d   Q h\	        V\        P
                  4      '       g   Q h\	        V\        P                  4      '       g   K  Q h	  RRR4       R#   + '       g   i     R# ; i)r    rY   Nr4   )r   r   rG   rH   r	   rN   rO   rI   rK   r   test__is_socket_unixr[      s    	FNN	+	+tDB"2&&&&&r1b/BBBB"2v'9'9::::&r6+<+<====  
,	+	+	+s   A>B3%B33C	c                  s    \         P                  ! R 4       \         P                  ! R4       \        4       . 8X  g   Q h\        R4      . 8X  g   Q h\        R4      . 8X  g   Q hR# )
LISTEN_FDS
LISTEN_PIDTFN)r   unsetenvr   r   r   r   test_listen_fds_no_fdsr_      sP    KKKK<2dr!!!e"""r   c                  s    R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   \	        R4      . RO8X  g   Q h\	        R4      . RO8X  g   Q h\	        4       . 8X  g   Q hR# )3r\   r]   FTN)   i   i   r   environstrgetpidr   r   r   r   test_listen_fdsrf      s_    "BJJ|"299;/BJJ|e	)))dy(((<2r   c                  s    R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   \	        R4      ^.8X  g   Q h\	        4       ^.8X  g   Q h\	        4       . 8X  g   Q hR# )1r\   r]   FNrb   r   r   r   test_listen_fds_default_unsetrh      s`    "BJJ|"299;/BJJ|e###<A3<2r   c                  s    \         P                  ! R 4       \         P                  ! R4       \         P                  ! R4       \        4       / 8X  g   Q h\        R4      / 8X  g   Q h\        R4      / 8X  g   Q hR# )r\   r]   LISTEN_FDNAMESTFN)r   r^   r   r   r   r   "test_listen_fds_with_names_nothingrj     s^    KKKKKK ! "b((( &",,, '2---r   c                  s(   R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   \         P                  ! R4       \        R4      ^R/8X  g   Q h\        R4      ^R/8X  g   Q h\        4       / 8X  g   Q hR# )rg   r\   r]   ri   FZunknownTN)r   rc   rd   re   r^   r   r   r   r   #test_listen_fds_with_names_no_namesrk     su    "BJJ|"299;/BJJ|KK ! 'Ay>999 &1i.888 "b(((r   c                  s"   R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   R\         P                  R&   \	        R4      ^R/8X  g   Q h\	        4       ^R/8X  g   Q h\	        R4      / 8X  g   Q hR# )rg   r\   r]   cmdsri   FTNr   rc   rd   re   r   r   r   r   !test_listen_fds_with_names_singlern     sw    "BJJ|"299;/BJJ|#)BJJ  'Av;666 "q&k111 &",,,r   c                  s2   R \         P                  R&   \        \         P                  ! 4       4      \         P                  R&   R\         P                  R&   \	        R4      ^R^R^R/8X  g   Q h\	        R	4      ^R^R^R/8X  g   Q h\	        4       / 8X  g   Q hR
# )r`   r\   r]   zcmds:data:errsri   Frl   ZdataZerrsTNrm   r   r   r   #test_listen_fds_with_names_multiplero   !  s    "BJJ|"299;/BJJ|#3BJJ  'Avq&!V+LLLL &1faF*KKKK "b(((r   c                  s   \         P                  P                  R R4       \        R4      RJ g   Q h\	        4       ;_uu_ 4        \        R. R7      RJ g   Q h RRR4       \        R^^.R7      RJ g   Q h\        R\         P
                  ! 4       R7      RJ g   Q h\        R\         P
                  ! 4       RR7      RJ g   Q hR#   + '       g   i     Lt; i)	NOTIFY_SOCKETNREADY=1F	FDSTORE=1fdspidrv   rt   rT   )r   rc   Zpopr   r   re   r   r   r   test_notify_no_socketry   +  s    JJNN?D))%%%	kr*e333 
+Aq6*e333+299;/5888+299;D9UBBB	 
s   CC	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   rq   Nrr   rs   ru   rw   rx   )r   rc   r   r5   connection_errorr   r   re   r   r   r   test_notify_bad_socketr{   :  s   "-BJJ	'	(	(y 
)	'	(	(]];B'  
) 
'	(	({A' 
)	'	(	({		, 
)	'	(	({		6 
)	( 
)	(	( ] 
)	(	( 
)	(	(	(	(	(	(sS   E0,F?F	F?F+9!F>"G0F	FFF(	+F;	>G	G"	c                 sN   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&   \        R4      '       g   Q h\        4       ;_uu_ 4        \        R. R7      '       g   Q h RRR4       \        R^^.R7      '       g   Q h\        R\        P                   ! 4       R7      '       g   Q h\        R\        P                   ! 4       R
R	7      '       g   Q hR#   \        P                   d)   p\        P                  ! RT,          4        Rp?EL+Rp?ii ; i  + '       g   i     L; i)r   zfailed to bind socket (%s)NSO_PASSCREDrp   rq   rr   rs   ru   rw   rx   )r"   r#   r   rG   rO   rV   rC   r   ZxfailZgetattrZ
setsockoptZ
SOL_SOCKETr   rc   r   r   re   )r)   r   rJ   r   r|   s   &    r   test_notify_with_socketr}   I  s"   ;;x ((D==):):;D7		$ &-4KOOF%%{A6"&BJJ)	kr**** 
+Aq6****+299;////+299;D9999 << 71A5667 
s$   E FF)FFF$	c                  s    ^p V .p\         P                  ! V 4      p \        RR^ V4       \         P                  ! V 4      V8:  g   Q R4       hR#   \         d     L1i ; i)rT   Z TZleakN)sysZgetrefcountr   rz   )r*   rt   Zref_cntrK   r   test_daemon_notify_memleakr   \  sa    	
B$Coob!Gr4C  ??2')161)  s   A AA)ra   )9r~   r   r$   r   rU   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+   r1   r7   r;   r<   r=   rD   rF   rL   rQ   rW   rX   rZ   r[   r_   rf   rh   rj   rk   rn   ro   ry   Zversion_infoZConnectionRefusedErrorrz   r   r{   r}   r   r   r   r   <module>r      s   
 	    $ $ $ $ $    )"&	
!%E,]($LI B>#.)-)C t-7:&2r   