Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/twisted/runner/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/twisted/runner/__pycache__/inetdtap.cpython-37.pyc

B

:��]�
�@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�J/opt/alt/python37/lib64/python3.7/site-packages/twisted/runner/inetdtap.pyrs

rcCst��}t��}t|d��}|�|�WdQRX�x�|jD�]�}|j}|j�d�r`t	�
d�q<||jfdkr�t	�
d|j|jf�q<yt|j
�|_
WnRtk
r�yt�|j
�d|_
Wn&tk
r�t	�
d|j
�w<YnXYnX|jdk�r
t�|j
�d|_nhyt|j�|_WnVtk
�rpyt�|j�d|_Wn(tk
�rjt	�
d	|j�w<YnXYnX|jd
k�r�|d�r�q<|jtjk�r�t	�
d|j�q<t�}tj|j|_n
t�|�}|d
k�r�t�|j|��|�q<|dkr<t d��q<W|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�open�	parseFileZservices�protocol�
startswithr�msgZ
socketType�int�user�
ValueError�pwd�getpwnam�KeyError�group�getpwuid�grp�getgrnam�program�namerZinternalProtocolsrZInetdFactoryrZ	TCPServer�portZsetServiceParent�RuntimeError)�config�sZconfrrr�factoryrrr�makeService1sZ



r1)rr#r(�socketZtwisted.runnerrrZtwisted.pythonrrZtwisted.internet.protocolrZtwisted.applicationrrr�IPPROTO_TCP�IPPROTO_UDPZprotocolDictrr1rrrr�<module>s