+
    i-  c                   s    ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^RIHtHt ^RI	H
t
HtHtHtHtHtHtHt ^RIHtHtHt ]P,                  ! ]4      t ! R R]4      t ! R R	]]4      tR# )
i    N)Dict)ChannelErrorProtocolChannel)JsonDict
JsonObjectget_boolget_enumget_int
get_objectget_strget_strv)SubprocessProtocolSubprocessTransport
WindowSizec                   s6   a  ] tR t^t o RtV 3R lR ltRtV tR# )SocketStreamChannelstreamc                sT   < V ^8  d   QhRS[ P                  RS[RS[ P                  /#    loopoptionsreturn)asyncioAbstractEventLoopr   	TransportZformat__classdict__   "</usr/lib/python3.14/site-packages/cockpit/channels/stream.py__annotate__Z SocketStreamChannel.__annotate__   s/        7+D+D  z  ^e^o^o      c                s  a "   R V9   d   RV9   d   \        RRR7      h R V9   d3   \        VR 4      pRV 2pVP                  V 3R lV4      G Rj  xL
 w  rVMVRV9   dC   \        VR4      p\        VRR	4      pR
V RV 2pVP	                  V 3R lW4      G Rj  xL
 w  rVM\        RRR7      h\
        P                  RV4       S P                  4        \        T\        P                  4      '       g   Q hT#  L L`  \         dO   p	\
        P                  RXT	4       \        T	\        4      '       d   Rp
MRp
\        T
\        T	4      R7      T	hRp	?	ii ; i5i)Zunixportprotocol-errorz-cannot specify both "port" and "unix" optionsmessagezUnix socket c                     < S # N self   r   <lambda>6SocketStreamChannel.create_transport.<locals>.<lambda>   s    r   NZaddressZ	localhostzTCP socket Z:c                  r"   r#   r$   r%   r'   r   r(   r)   '   s    Dr   z7no "port" or "unix" or other address option for channelz$SocketStreamChannel: connected to %sz0SocketStreamChannel: connecting to %s failed: %s	not-foundZ
terminated)r   r	   Zcreate_unix_connectionr   Zcreate_connectionloggerdebugOSErrorinfo
isinstanceZConnectionRefusedErrorZstrclose_on_eofr   r   )r&   r   r   ZpathZlabel	transportZ_r   ZhosterrorZproblems   f&&        r   create_transportZ$SocketStreamChannel.create_transport   sa    W7!2/9hii	G w/&tf-%)%@%@t%TT	1 7"w/w	;?%dV1TF3%)%;%;L$%UU	1"#3+df f LL?G 	)W%6%67777/  U  V  	GKKJESXY%!788%&wE
;F	GsN   E1C= C9AC= C;*C= 4E9C= ;C= =EA	EEEr$   N)__name__
__module____qualname____firstlineno__payloadr3   __static_attributes____classdictcell__r      @r   r   r      s     G   r   r   c                   sp   a  ] tR t^9t o RtRtV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 lt	Rt
V tR# )SubprocessStreamChannelr   Nc                s   < V ^8  d   QhRR/# )r   r   Nr$   r   r   r   r   $SubprocessStreamChannel.__annotate__=   s       r   c                s&    V P                  4        R # r#   )r0   r%   s   &r   process_exitedZ&SubprocessStreamChannel.process_exited=   s    r   c                s    < V ^8  d   QhRS[ /# )r   r   r   r   r   r   r   r>   @   s       r   c                s    \        V P                  \        4      '       g   Q hR V P                  P                  4       /pV P                  P	                  4       pVe   W!R&   V# )zexit-statusr!   )r/   
_transportr   Zget_returncodeZ
get_stderr)r&   argsstderrs   &  r   _get_close_argsZ'SubprocessStreamChannel._get_close_args@   sU    $//+>????')G)G)IJ++-$Or   c                s$   < V ^8  d   QhRS[ RR/# )r   r   r   Nr@   r   r   r   r   r>   H   s     4 4* 4 4r   c                s    \        VR \        R4      pVe@   \        V P                  \        4      '       g   Q hV P                  P                  V4       R# R# )windowN)r   r   r/   rA   r   Zset_window_size)r&   r   rE   s   && r   
do_optionsZ"SubprocessStreamChannel.do_optionsH   sG    GXz4@doo/BCCCCOO++F3 r   c                s@   < V ^8  d   QhRS[ P                  RS[RS[/# r   )r   r   r   r   r   r   r   r   r>   N   s)     !< !<7+D+D !<z !<^q !<r   c                s:  "   \        VR 4      p\        VR. ROR4      p\        VRR4      p\        VRRR	7      p\	        VR
\
        R4      p\        VR. 4      pVR8X  d   \        P                  p	M(VR8X  d   \        P                  p	M\        P                  p	\        \        P                  4      p
 V
P                  \        R V 4       4      4        \!        YY6YzYYR7      pTP#                  4       pRT/T n        \&        P)                  RY<4       T#   \         d    \        RRR7      Rhi ; i  \*         d   p\        R4      ThRp?i\,         d   p\        R4      ThRp?i\.         d(   p\&        P1                  RY=4       \        R4      ThRp?ii ; i5i)spawnerroutignorer!   Z	directoryZ.ptyF)ZdefaultrE   Nenvironc              3   sD   "   T F  qP                  R ^4      x  K  	  R# 5i)Z=N)Zsplit)Z.0Zes   & r   Z	<genexpr>Z;SubprocessStreamChannel.create_transport.<locals>.<genexpr>_   s     =WGGCOOWs    r   z+invalid "environ" option for stream channelr    )rK   rE   envcwdrC   pidzSpawned process args=%s pid=%ir*   zaccess-deniedzFailed to spawn %s: %szinternal-error)rI   rJ   r!   )r
   r   r	   r   r   r   
subprocessZSTDOUTZDEVNULLZPIPEZdictosrL   ZupdateZ
ValueErrorr   r   Zget_pid_ready_infor+   r,   ZFileNotFoundErrorZPermissionErrorr-   r.   )r&   r   r   rB   rH   rN   rK   rE   rL   rC   rM   r1   rO   r2   s   &&&           r   r3   Z(SubprocessStreamChannel.create_transportN   sw    )w'CYOg{C0wu5GXz4@7Ir2%<&&FH_''F__F"2::.	rJJt=W==>	<+DfcfvI##%C %s|DLL94E  	r/9fgmqq	r ! 	7{+6 	;/U: 	<KK0$>/0e;	<s`   B0F3!D ?D2 FD//F2F=E		FFE##F0F1"FFF)rR   ))rG   N)r4   r5   r6   r7   r8   Zrestrictionsr?   rD   rF   r3   r9   r:   r;   r<   r   r=   r=   9   s7     G%L  4 4!< !<r   r=   )r   ZloggingrQ   rP   Ztypingr    Zchannelr   r   Zjsonutilr   r   r   r   r   r   r	   r
   Z
transportsr   r   r   Z	getLoggerr4   r+   r   r=   r$   r   r   <module>rS      sT      	   3 g g g L L			8	$#/ #L6<o/A 6<r   