§
    Ètºfµ  ã                   óò   — d Z ddlmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z	 G d„ de¦  «        Z
 G d„ de¦  «        ZdS )z
Parser for inetd.conf files
é    )ÚOptionalc                   ó   — e Zd ZdZdS )ÚInvalidConfErrorz$
    Invalid configuration file
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/runner/inetdconf.pyr   r      ó   € € € € € ðð ð ð r   r   c                   ó   — e Zd ZdZdS )ÚInvalidInetdConfErrorz!
    Invalid inetd.conf file
    Nr   r   r   r   r   r      r   r   r   c                   ó   — e Zd ZdZdS )ÚInvalidServicesConfErrorz
    Invalid services file
    Nr   r   r   r   r   r      r   r   r   c                   ó   — e Zd ZdZdS )ÚUnknownServicez
    Unknown service name
    Nr   r   r   r   r   r      r   r   r   c                   óF   — e Zd ZU dZdZdZee         ed<   dd„Z	d„ Z
d„ ZdS )	ÚSimpleConfFilezÒ
    Simple configuration file parser superclass.

    Filters out comments and empty lines (which includes lines that only
    contain comments).

    To use this class, override parseLine or parseFields.
    ú#NÚdefaultFilenamec                 óŽ  — d}|€| j         rt          | j         ¦  «        }d}	 |                     ¦   «         D ]X}|                     | j        ¦  «        }|dk    r
|d|…         }|                     ¦   «         }|sŒC|                      |¦  «         ŒY	 |r|                     ¦   «          dS dS # |r|                     ¦   «          w w xY w)z—
        Parse a configuration file

        If file is None and self.defaultFilename is set, it will open
        defaultFilename and use it.
        FNTéÿÿÿÿ)r   ÚopenÚ	readlinesÚfindÚcommentCharÚstripÚ	parseLineÚclose)ÚselfÚfiler!   ÚlineÚcomments        r   Ú	parseFilezSimpleConfFile.parseFile2   sì   € ð ˆØˆ<˜DÔ0ˆ<Ý˜Ô,Ñ-Ô-ˆDØˆEð	ØŸšÑ(Ô(ð %ð %�àŸ)š) DÔ$4Ñ5Ô5�Ø˜b’=�=Ø   œ>�Dð —z’z‘|”|�ð ð Øà—’˜tÑ$Ô$Ð$Ð$ð%ð ð Ø—
’
‘”���ðð øˆuð Ø—
’
‘”��ðøøøs   £A-B+ Â+Cc                 óš   — 	  | j         |                     ¦   «         Ž  dS # t          $ r  t          dt	          |¦  «        z   ¦  «        ‚w xY w)z•
        Override this.

        By default, this will split the line on whitespace and call
        self.parseFields (catching any errors).
        zInvalid line: N)ÚparseFieldsÚsplitÚ
ValueErrorr   Úrepr)r"   r$   s     r   r    zSimpleConfFile.parseLineQ   s_   € ð	GØˆDÔ˜dŸjšj™lœlÐ+Ð+Ð+Ð+øÝð 	Gð 	Gð 	GÝ'Ð(8½4À¹:¼:Ñ(EÑFÔFÐFð	Gøøøs	   ‚   *A
c                 ó   — dS )z 
        Override this.
        Nr   )r"   Úfieldss     r   r(   zSimpleConfFile.parseFields]   s   € € € r   ©N)r   r   r	   r
   r   r   r   ÚstrÚ__annotations__r&   r    r(   r   r   r   r   r   %   sp   € € € € € € ðð ð €KØ%)€O�X˜c”]Ð)Ð)Ñ)ðð ð ð ð>
Gð 
Gð 
Gðð ð ð ð r   r   c                   ó<   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZd„ ZdS )ÚInetdServicez3
    A simple description of an inetd service.
    Nc
                 ó„   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        d S r.   )	ÚnameÚportÚ
socketTypeÚprotocolÚwaitÚuserÚgroupÚprogramÚprogramArgs)
r"   r4   r5   r6   r7   r8   r9   r:   r;   r<   s
             r   Ú__init__zInetdService.__init__r   sJ   € ð ˆŒ	ØˆŒ	Ø$ˆŒØ ˆŒØˆŒ	ØˆŒ	ØˆŒ
ØˆŒØ&ˆÔÐÐr   )r   r   r	   r
   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r   r   r   r2   r2   c   s\   € € € € € ðð ð €DØ€DØ€JØ€HØ€DØ€DØ€EØ€GØ€Kð'ð 'ð 'ð 'ð 'r   r2   c                   ó$   — e Zd ZdZdZdd„Zd„ ZdS )Ú	InetdConfz>
    Configuration parser for a traditional UNIX inetd(8)
    z/etc/inetd.confNc                 ój   — g | _         |€"t          ¦   «         }|                     ¦   «          || _        d S r.   )ÚservicesÚServicesConfr&   ÚknownServices)r"   rC   s     r   r=   zInetdConf.__init__‡   s8   € ØˆŒàÐ Ý(™NœNˆMØ×#Ò#Ñ%Ô%Ð%Ø*ˆÔÐÐr   c                 óŒ  — |                      d¦  «        dgz   dd…         \  }}| j        j                             ||fd¦  «        }	|	sL|                     d¦  «        s7	 t          |¦  «        }	d}n$# t          $ r t          d|› d|› d�¦  «        ‚w xY w| j                             t          ||	|||||||¦	  «	        ¦  «         dS )	zx
        Parse an inetd.conf file.

        Implemented from the description in the Debian inetd.conf man page.
        ú.Né   zrpc/ÚunknownzUnknown service: z (ú))
r)   rC   rA   ÚgetÚ
startswithÚintÚBaseExceptionr   Úappendr2   )
r"   ÚserviceNamer6   r7   r8   r9   r;   r<   r:   r5   s
             r   r(   zInetdConf.parseFields�   s  € ð —z’z #‘”¨$¨Ñ/°°!°Ô4‰ˆˆeð Ô!Ô*×.Ò.°¸XÐ/FÈÑMÔMˆØð 	U˜H×/Ò/°Ñ7Ô7ð 	UðUÝ˜;Ñ'Ô'�Ø'��øÝ ð Uð Uð UÝ$Ð%S¸Ð%SÐ%SÈÐ%SÐ%SÐ%SÑTÔTÐTðUøøøð 	Œ×ÒÝØØØØØØØØØñ
ô 
ñ	
ô 	
ð 	
ð 	
ð 	
s   ÁA1 Á1!Br.   ©r   r   r	   r
   r   r=   r(   r   r   r   r?   r?   €   sH   € € € € € ðð ð (€Oð+ð +ð +ð +ð"
ð "
ð "
ð "
ð "
r   r?   c                   ó"   — e Zd ZdZdZd„ Zd„ ZdS )rB   zj
    /etc/services parser

    @ivar services: dict mapping service names to (port, protocol) tuples.
    z/etc/servicesc                 ó   — i | _         d S r.   )rA   )r"   s    r   r=   zServicesConf.__init__½   s   € ØˆŒˆˆr   c                 óì   — 	 |                      d¦  «        \  }}t          |¦  «        }n-# t          $ r  t          dt	          |¦  «        › �¦  «        ‚w xY w|| j        ||f<   |D ]}|| j        ||f<   Œd S )Nú/zInvalid port/protocol: )r)   rK   rL   r   r+   rA   )r"   r4   ÚportAndProtocolÚaliasesr5   r7   Úaliass          r   r(   zServicesConf.parseFieldsÀ   s«   € ð	Ø,×2Ò2°3Ñ7Ô7‰NˆD�(Ý�t‘9”9ˆDˆDøÝð 	ð 	ð 	Ý*ØA­$¨Ñ*?Ô*?ÐAÐAñô ð ð	øøøð
 +/ˆŒ�t˜XÐ&Ñ'Øð 	4ð 	4ˆEØ/3ˆDŒM˜5 (Ð+Ñ,Ð,ð	4ð 	4s	   ‚'* ª*ANrO   r   r   r   rB   rB   ´   sC   € € € € € ðð ð &€Oðð ð ð4ð 4ð 4ð 4ð 4r   rB   N)r
   Útypingr   Ú	Exceptionr   r   r   r   r   r2   r?   rB   r   r   r   ú<module>rY      s}  ðð
ð ð Ð Ð Ð Ð Ð ðð ð ð ð �yñ ô ð ðð ð ð ð Ð,ñ ô ð ðð ð ð ð Ð/ñ ô ð ðð ð ð ð �Yñ ô ð ð;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð|'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð:1
ð 1
ð 1
ð 1
ð 1
�ñ 1
ô 1
ð 1
ðh4ð 4ð 4ð 4ð 4�>ñ 4ô 4ð 4ð 4ð 4r   