← Back
Editing: inetdtap.cpython-38.pyc
U W[� � @ s� d Z ddlZddlZddlZddlmZmZ ddlmZm Z ddl mZ ddlm Z mZ ejejd�ZG dd � 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 @ sJ e Zd ZdZddddgdddd ggZd ddggZejde�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 optParametersZoptFlagsr ZCompletionsZ CompleteFilesZcompData� r r �9/usr/lib/python3/dist-packages/twisted/runner/inetdtap.pyr s ��r c C s t �� }t�� }t| d ��}|�|� W 5 Q R X |jD �]�}|j}|j�d�r\t � d� q8||jfdkr�t � d|j|jf � q8zt|j �|_ W nV tk r� zt�|j �d |_ W n* tk r� t � d|j � Y Y q8Y nX Y nX |jd k�r t�|j �d |_nlzt|j�|_W nZ tk �rt zt�|j�d |_W n, tk �rn t � d |j � Y Y q8Y nX Y nX |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: Zinternalr zUnknown internal service: r r znot supporting UDP)!� appserviceZMultiServicer Z InetdConf�openZ parseFile�services�protocol� startswithr �msgZ socketType�int�user� ValueError�pwd�getpwnam�KeyError�group�getpwuid�grpZgetgrnamZprogram�namer ZinternalProtocolsr ZInetdFactoryr Z TCPServerZportZsetServiceParent�RuntimeError)Zconfig�s�confr r r �factoryr r r �makeService1 s\ � r. )r r# r( ZsocketZtwisted.runnerr r Ztwisted.pythonr r Ztwisted.internet.protocolr Ztwisted.applicationr r r ZIPPROTO_TCPZIPPROTO_UDPZprotocolDictr r. r r r r �<module> s
Save File
Cancel