HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/runner/__pycache__/inetdtap.cpython-38.pyc
U


W[�
�@s�dZddlZddlZddlZddlmZmZddlmZm	Z	ddl
mZddlm
Z
mZejejd�ZGdd	�d	e	j�Zd
d�ZdS)z�
Twisted inetd TAP support

The purpose of inetdtap is to provide an inetd-like server, to allow Twisted to
invoke other programs to handle incoming sockets.
This is a useful thing as a "networking swiss army knife" tool, like netcat.
�N)�inetd�	inetdconf)�log�usage)�
ServerFactory)�internet�service)�tcp�udpc@sJeZdZdZddddgdddd	ggZd
ddggZejde�d
�id�Z	dS)�Optionsz�
    To use it, create a file named `sample-inetd.conf` with:

    8123 stream tcp wait some_user /bin/cat -

    You can then run it as in the following example and port 8123 became an
    echo server.

    twistd -n inetd -f sample-inetd.conf
    Zrpc�rz/etc/rpcz$DEPRECATED. RPC procedure table file�file�fz/etc/inetd.confzService configuration file�
nointernal�izDon't run internal servicesz*.conf)Z
optActionsN)
�__name__�
__module__�__qualname__�__doc__Z
optParametersZoptFlagsrZCompletionsZ
CompleteFilesZcompData�rr�9/usr/lib/python3/dist-packages/twisted/runner/inetdtap.pyrs

��rcCst��}t��}t|d��}|�|�W5QRX|jD�]�}|j}|j�d�r\t	�
d�q8||jfdkr�t	�
d|j|jf�q8zt|j
�|_
WnVtk
r�zt�|j
�d|_
Wn*tk
r�t	�
d|j
�YYq8YnXYnX|jdk�r
t�|j
�d|_nlzt|j�|_WnZtk
�rtzt�|j�d|_Wn,tk
�rnt	�
d	|j�YYq8YnXYnX|jd
k�r�|d�r�q8|jtjk�r�t	�
d|j�q8t�}tj|j|_n
t�|�}|d
k�r�t�|j|��|�q8|dkr8t d��q8|S)Nr
zrpc/z/Skipping rpc service due to lack of rpc support))r	�stream)r
Zdgramz)Skipping unsupported type/protocol: %s/%s�zUnknown user: �zUnknown group: ZinternalrzUnknown internal service: r	r
znot supporting UDP)!�
appserviceZMultiServicerZ	InetdConf�openZ	parseFile�services�protocol�
startswithr�msgZ
socketType�int�user�
ValueError�pwd�getpwnam�KeyError�group�getpwuid�grpZgetgrnamZprogram�namerZinternalProtocolsrZInetdFactoryrZ	TCPServerZportZsetServiceParent�RuntimeError)Zconfig�s�confrrr�factoryrrr�makeService1s\

�



r.)rr#r(ZsocketZtwisted.runnerrrZtwisted.pythonrrZtwisted.internet.protocolrZtwisted.applicationrrrZIPPROTO_TCPZIPPROTO_UDPZprotocolDictrr.rrrr�<module>s