+
    bS/                        ^ 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               #      "    R x  R #   \          d;   p T P                  \        P                  8X  d   \        P                  ! 4        h R p ? ii ; i5iN)OSErrorerrnoENOSYSpytestskip)es    :/usr/lib/python3/dist-packages/systemd/test/test_daemon.pyskip_enosysr      s8      77ell"KKMs$   A
 AA5A

AAc              #     "   \         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)socket
socketpairclose)familypairs   & r   closing_socketpairr#      sV     V$D
QQ 	QQs   BA 0B0A>>Bc                      \         P                  P                  R 4      '       d   \        4       '       g   Q hR# \        4       R9   g   Q hR# )z/run/systemd/systemN>   FT)ospathexistsr        r   test_bootedr*   &   s3    	ww~~+,,xxx x=(((r)   c                 *   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_fifor6   .   sc    ;;{#++D	LL	r{{2==0	1BBBr)   c                 $   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%   r1   r2   r3   r   r4   filer&   r5   s   &   r   test__is_fifo_filer<   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   r4   r&   s   & r   test__is_fifo_bad_fdrB   ?   s    ;;{#++D	w		B%%%%% 
  
w		B%%%%% 
 	 
 	 
 		   B>B1B.	1C	c                    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/   r0   r%   r1   r2   r3   fdopenr   )r4   r&   r5   r;   s   &   r   test_is_fiforG   H   s    ;;{#++D	LL	r{{2==0	1B99RD442t2r)   c                    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,   r8   rE   N)	r-   r9   r.   r%   r1   r2   r3   rF   r   r:   s   &   r   test_is_fifo_filerI   S   s    ;;{#DJJu<<D	r{{2==0	1B99RDtT""""t""""r4    r     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>   )r-   r.   r   r@   r   r   rA   s   & r   test_is_fifo_bad_fdrK   _   s    ;;{#++D	w		2t$$$$$ 
  
w		2t$$$$$ 
 	 
 	 
 		rC   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errors   & r   is_mq_wrapperrR   h   s:    Sz {{ekk)))   
 A!?Ac                      \        V 4      #   \         d-   pTP                  \        P                  8X  g   Q h R p?R# R p?ii ; irM   )r   r   r   rN   rO   s   & r   _is_mq_wrapperrU   p   s:    c{ {{ekk)))rS   c            
         \        \        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   rR   r   r   r   filenor   rU   r	   r   r"   sockr5   s      r   test_no_mismatchr[   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                     \        \        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   rW   rX   r   AF_INETSOCK_STREAM
SOCK_DGRAMr   r   r   r   r"   rZ   rP   s      r   test_is_socketra      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                     \         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@ )flowinfoz129.168.11.11:23)rc   r   )r      r?   )
contextlibclosingr   r]   bindgetsocknameformatrX   r   r   r^   r   r@   
ValueErrorr_   r   listen)rZ   addrportrd   rP   s        r   test_is_socket_sockaddrrp      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                     \        \        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   rW   rX   r   r]   r^   r_   rY   s      r   test__is_socketrr      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            	         \        \        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   rW   rX   r
   r^   r_   r`   s      r   test_is_socket_unixru      s    	FNN	+	+tDkkm,%c****)#ODDDD%c6+=+=>>>>)#v/@/@AAAA	 -  
,	+	+	+s   BB:(B::C	c            	         \        \        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   rt   Nr?   )r#   r   rW   rX   r   r^   r_   rY   s      r   test__is_socket_unixrw      s    	FNN	+	+tDB"2&&&&&r1b/BBBB"2v'9'9::::&r6+<+<====  
,	+	+	+s   A>B3%B33C	c                      \         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                      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# )3ry   rz   FTN)         r%   environstrgetpidr   r(   r)   r   test_listen_fdsr      s_    "BJJ|"299;/BJJ|e	)))dy(((<2r)   c                      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# )1ry   rz   FNr   r(   r)   r   test_listen_fds_default_unsetr      s`    "BJJ|"299;/BJJ|e###<A3<2r)   c                      \         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# )ry   rz   LISTEN_FDNAMESTFN)r%   r{   r   r(   r)   r   "test_listen_fds_with_names_nothingr     s^    KKKKKK ! "b((( &",,, '2---r)   c                  (   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# )r   ry   rz   r   FunknownTN)r%   r   r   r   r{   r   r(   r)   r   #test_listen_fds_with_names_no_namesr     su    "BJJ|"299;/BJJ|KK ! 'Ay>999 &1i.888 "b(((r)   c                  "   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# )r   ry   rz   cmdsr   FTNr%   r   r   r   r   r(   r)   r   !test_listen_fds_with_names_singler     sw    "BJJ|"299;/BJJ|#)BJJ  'Av;666 "q&k111 &",,,r)   c                  2   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~   ry   rz   zcmds:data:errsr   Fr   dataerrsTNr   r(   r)   r   #test_listen_fds_with_names_multipler   !  s    "BJJ|"299;/BJJ|#3BJJ  'Avq&!V+LLLL &1faF*KKKK "b(((r)   c                     \         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r   r   rf   )r%   r   popr   r   r   r(   r)   r   test_notify_no_socketr   +  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            	         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/nullr   r   Nr   r   r   r   r   )r%   r   r   r@   connection_errorr   r   r   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                 N   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_PASSCREDr   r   r   r   r   r   r   )r-   r.   r   rW   r_   ri   rQ   r   xfailgetattr
setsockopt
SOL_SOCKETr%   r   r   r   r   )r4   r&   rZ   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                      ^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)rf    TleakN)sysgetrefcountr   r   )r5   r   ref_cnts      r   test_daemon_notify_memleakr   \  sa    	
B$Coob!Gr4C  ??2')161)  s   A AA)r   )9r   r%   r/   r   rg   r   systemd.daemonr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   contextmanagerr   r#   r*   r6   r<   rB   rG   rI   rK   rR   rU   r[   ra   rp   rr   ru   rw   r|   r   r   r   r   r   r   r   version_infoConnectionRefusedErrorr   r   r   r   r   r(   r)   r   <module>r      s   
 	    $ $ $ $ $    )"&	
!%E,]($LI B>#.)-)C t-7:&2r)   