AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/jeepney/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/lib/python3/dist-packages/jeepney/__pycache__/low_level.cpython-310.pyc
o

���`�J�@sddlmZddlmZmZmZddlZddlmZGdd�de	�Z
Gdd�de�Zejej
d	�ZGd
d�de�ZGdd
�d
e�ZGdd�de�Zdd�ZGdd�d�ZGdd�de�ZGdd�de�Zedd�edd�edd�e�edd�edd�ed d!�ed d"�ed d#�e�d$�
ZGd%d&�d&�Ze�eed'�eed'�eed(�d)��Gd*d+�d+�ZGd,d-�d-e�ZGd.d/�d/�ZGd0d1�d1�Zd2d3�Zd4d5�Zeeed(e�g��Zd6d7�Z d8d9d9d9d'd9d9d:d'd;�	Z!d<d=�Z"Gd>d?�d?�Z#Gd@dA�dA�Z$GdBdC�dC�Z%GdDdE�dE�Z&dS)F�)�deque)�Enum�IntEnum�IntFlagN)�Optionalc@seZdZdZdS)�SizeLimitErrorz�Raised when trying to (de-)serialise data exceeding D-Bus' size limit.

    This is currently only implemented for arrays, where the maximum size is
    64 MiB.
    N)�__name__�
__module__�__qualname__�__doc__�rr�3/usr/lib/python3/dist-packages/jeepney/low_level.pyrsrc@s$eZdZdZdZdd�Zdd�ZdS)�
Endianness��cC�|tjurdSdS)N�<�>�r�little��selfrrr
�struct_code�zEndianness.struct_codecCr)N�l�Brrrrr
�	dbus_coderzEndianness.dbus_codeN)rr	r
r�bigrrrrrr
rs
r)rrc@seZdZdZdZdZdZdS)�MessageTyperr��N)rr	r
�method_call�
method_return�error�signalrrrr
rs
rc@seZdZdZdZdZdS)�MessageFlagrrr N)rr	r
�no_reply_expected�
no_auto_start�allow_interactive_authorizationrrrr
r%#sr%c@s0eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)�HeaderFieldsrrrr �����	N)rr	r
�path�	interface�member�
error_name�reply_serial�destination�sender�	signature�unix_fdsrrrr
r))sr)cCs|||}||krdS|S�Nrr)�pos�step�padrrr
�padding5sr<c@s8eZdZdd�Zd
dd�Zddd�Zd	d
�Zdd�ZdS)�	FixedTypecCs||_|_||_dS�N)�size�	alignmentr)rr?rrrr
�__init__=s
zFixedType.__init__rcCsJ|t||j�7}|��|j}t�|||||j��d}|||jfSr8)r<r@r�struct�unpackr?)r�bufr9�
endianness�fds�code�valrrr
�
parse_dataAszFixedType.parse_dataNcCs.dt||j�}|��|j}|t�||�S)N�)r<r@rrB�pack)r�datar9rErFr;rGrrr
�	serialiseGszFixedType.serialisecCsd�|j|j�S)NzFixedType({!r}, {!r}))�formatr?rrrrr
�__repr__LszFixedType.__repr__cCs$t|�tuo|j|jko|j|jkSr>)�typer=r?r�r�otherrrr
�__eq__Os
�zFixedType.__eq__�rr>)rr	r
rArIrMrOrSrrrr
r=<s

r=cs:eZdZ�fdd�Zd
�fdd�	Zdd�Zdd	�Z�ZS)�Booleanc�t��dd�dS�Nr �I��superrAr��	__class__rr
rAUrzBoolean.__init__rcs t��|||�\}}t|�|fSr>)rZrI�bool)rrDr9rErFrH�new_posr[rr
rIX�zBoolean.parse_datacC�dS)Nz	Boolean()rrrrr
rO\�zBoolean.__repr__cC�t|�tuSr>)rPrUrQrrr
rS_�zBoolean.__eq__rT)rr	r
rArIrOrS�
__classcell__rrr[r
rUTs
rUcsHeZdZ�fdd�Zd
�fdd�	Zd�fdd�	Zd	d
�Zdd�Z�ZS)�FileDescriptorcrVrWrYrr[rr
rAdrzFileDescriptor.__init__rcs t��|||�\}}|||fSr>)rZrI)rrDr9rErF�idxr^r[rr
rIgr_zFileDescriptor.parse_dataNcsx|durtd��t|d�r|��}t|t�st|t�std��|dkr+td|�d���|�|�t	��
t|�d||�S)Nz+Sending FDs is not supported or not enabled�filenozYCannot use {data!r} as file descriptor. Expected an int or an object with fileno() methodrz#File descriptor can't be negative (�)r)�RuntimeError�hasattrrg�
isinstancer]�int�	TypeError�
ValueError�appendrZrM�len)rrLr9rErFr[rr
rMks

zFileDescriptor.serialisecCr`)NzFileDescriptor()rrrrr
rO{razFileDescriptor.__repr__cCrbr>)rPrerQrrr
rS~rczFileDescriptor.__eq__rTr>)	rr	r
rArIrMrOrSrdrrr[r
recsrer�Br�h�Hr �irXr-�q�Q�d)
�y�nru�brt�u�x�trwrrc@sDeZdZdd�Zedd��Zddd�Zdd	d
�Zdd�Zd
d�Z	dS)�
StringTypecC�
||_dSr>)�length_type)rr�rrr
rA��
zStringType.__init__cCs|jjSr>)r�r?rrrr
r@�szStringType.alignmentrcCsR|j�|||�\}}||}|||��d�}|||d�dks#J�||dfS)N�utf-8rrJ)r�rI�decode)rrDr9rErF�length�endrHrrr
rI�s
zStringType.parse_dataNcCsBt|t�std�|���|�d�}|j�t|�||�}||dS)NzExpected str, not {!r}r�rJ)rk�strrmrN�encoder�rMrp)rrLr9rErF�encoded�len_datarrr
rM�s


zStringType.serialisecC�d�|j�S)NzStringType({!r}))rNr�rrrr
rO�rczStringType.__repr__cC�t|�tuo|j|jkSr>)rPr~r�rQrrr
rS�s
�zStringType.__eq__rTr>)
rr	r
rA�propertyr@rIrMrOrSrrrr
r~�s


r~r{rx)�s�o�gc@s<eZdZdZdd�Zddd�Zddd	�Zd
d�Zdd
�ZdS)�Structr-cCs$tdd�|D��r
td��||_dS)Ncss�|]}t|t�VqdSr>)rk�	DictEntry)�.0�frrr
�	<genexpr>�s�z"Struct.__init__.<locals>.<genexpr>zFound dict entry outside array)�anyrm�fields�rr�rrr
rA�s
zStruct.__init__rcCsJ|t|d�7}g}|jD]}|j||||d�\}}|�|�qt|�|fS)Nr-�rF)r<r�rIro�tuple)rrDr9rErF�res�field�vrrr
rI�s
zStruct.parse_dataNc		Cs�t|t�std�|���t|�t|j�kr"td�t|�t|j����dt||j�}|t|�7}g}t	||j�D]\}}|�
|j||||d��|t|d�7}q8|d�|�S)NzExpected tuple, not {!r}z{} entries for {} fieldsrJr�����)
rkr�rmrNrpr�rnr<r@�ziprorM�join)	rrLr9rErFr;�
res_pieces�itemr�rrr
rM�s
�zStruct.serialisecCsd�t|�j|j�S)Nz{}({!r}))rNrPrr�rrrr
rO�szStruct.__repr__cCst|�t|�uo
|j|jkSr>)rPr�rQrrr
rS�sz
Struct.__eq__rTr>)	rr	r
r@rArIrMrOrSrrrr
r��s

r�cseZdZ�fdd�Z�ZS)r�csTt|�dkrtdt|���t|dttf�s"td�t|d����t��|�dS)Nrz%Dict entry must have 2 fields, not %drz5First field in dict entry must be simple type, not {})	rprmrkr=r~rNrPrZrAr�r[rr
rA�s
��zDictEntry.__init__)rr	r
rArdrrr[r
r��sr�c@sFeZdZdZedd�Zdd�Zddd�Zdd	d
�Zdd�Z	d
d�Z
dS)�Arrayr rXcCrr>)�elt_type)rr�rrr
rA�r�zArray.__init__rc	Cs�|j�|||�\}}|t||jj�7}||}|jtdkr&|||�|fSg}||krA|jj||||d�\}}|�|�||ks,t|jt�rKt	|�}||fS)Nrxr�)
r�rIr<r�r@�simple_typesrorkr��dict)	rrDr9rErFr�r�r�r�rrr
rI�s
�zArray.parse_dataNc	CsDd}t|jt�rt|t�r|��}n|jtdkr!t|t�r!d}nt|t�s-td�	|���t|jt
�rA|jjt|�dkrAt
d��t||j�}||d}t||jj�}|rY|}	n1||}
|
d}g}|D]}
|�|jj|
|
||d��|
t|d	�7}
|
|kr�t
d��qed
�|�}	|j�t|	�|||�}d||d||	S)NFrxTzNot suitable for array: {!r}izArray size exceeds 64 MiB limitr r�r�r�rJ)rkr�r�r��itemsr��bytes�listrmrNr=r?rprr<r@rorMr�r�)rrLr9rErF�
data_is_bytes�pad1�pos_after_length�pad2rD�data_pos�	limit_pos�chunksr�r�rrr
rM�s:


��
zArray.serialisecCr�)NzArray({!r}))rNr�rrrr
rO%rczArray.__repr__cCr�r>)rPr�r�rQrrr
rS(�zArray.__eq__rTr>)rr	r
r@r=r�rArIrMrOrSrrrr
r��s


&r�c@s4eZdZdZddd�Zd
dd�Zdd	�Zd
d�ZdS)�VariantrrcCsDtd�|||�\}}tt|��}|j||||d�\}}||f|fS�Nr�r�)r�rI�parse_signaturer�)rrDr9rErF�sig�valtyperHrrr
rI/szVariant.parse_dataNcCsD|\}}tt|��}td�|||�}||j||t|�||d�Sr�)r�r�r�rMrp)rrLr9rErFr�r��sig_bufrrr
rM8s�zVariant.serialisecCr`)Nz	Variant()rrrrr
rO@razVariant.__repr__cCrbr>)rPr�rQrrr
rSCrczVariant.__eq__rTr>)rr	r
r@rIrMrOrSrrrr
r�,s

	r�cCs�|�d�}|dkrtt|��S|dkrt�S|dkr8g}|ddkr/|�t|��|ddks"|�d�t|�S|dkrZg}|ddkrQ|�t|��|ddksD|�d�t|�S|dvrbtd	��t|S)
z-Parse a symbolic signature into objects.
    r�ar��(rh�{�}z)}zUnexpected end of struct)	�popr�r�r�ror�r�rnr�)r��tokenr��derrr
r�Fs,
�
�
r�cCstt�d|dd��\}t|}t�|��d|dd��\}t�|��d|dd��\}d|}|t|d�|S)N�crrXr r-��)rBrC�
endian_maprr<)rD�endian�body_length�fields_array_len�
header_lenrrr
�
calc_msg_sizeasr�cCs$t�|d|�\}}dd�|D�|fS)Nr�cSsi|]\}}t|�|d�qS)r)r))r��kr�rrr
�
<dictcomp>osz'parse_header_fields.<locals>.<dictcomp>)�_header_fields_typerI)rDrE�lr9rrr
�parse_header_fieldsmsr�r�r�r�)	rrrr r*r+r,r-r.cCs$dd�t|���D�}t�|d|�S)NcSs"g|]
\}}|jt||ff�qSr)�value�header_field_codes)r�rtr�rrr
�
<listcomp>�s"z+serialise_header_fields.<locals>.<listcomp>r�)�sortedr�r�rM)rwrEr�rrr
�serialise_header_fieldssr�c@s2eZdZdd�Zdd�Zd
dd�Zedd	��ZdS)�HeadercCs6||_t|�|_t|�|_||_||_||_||_dS)z�A D-Bus message header

        It's not normally necessary to construct this directly: use higher level
        functions and methods instead.
        N)	rEr�message_typer%�flags�protocol_versionr��serialr�)rrEr�r�r�r�r�r�rrr
rA�s


zHeader.__init__c	Cs$d�|j|j|j|j|j|j|j�S)Nz7Header({!r}, {!r}, {!r}, {!r}, {!r}, {!r}, fields={!r}))rNrEr�r�r�r�r�r�rrrr
rO�s�zHeader.__repr__Nc	CsP|j��d}|dur|j}t�||j��|jj|j|j	|j
|�t|j|j�S)N�cBBBII)
rErr�rBrKrr�r�r�r�r�r�r�)rr�r�rrr
rM�s
��zHeader.serialisec
Csjt�d|dd��\}}}}t|}t�|��d|dd��\}}t||�\}}	||||||||�|	fS)N�cBBBr �IIr�)rBrCr�rr�)
�clsrDr��msgtyper��pv�bodylenr�r�r9rrr
�from_buffer�s
 zHeader.from_bufferr>)rr	r
rArOrM�classmethodr�rrrr
r��s

r�c@sHeZdZdZdd�Zdd�Zeddeddfd	d
��Zddefdd
�Z	dS)�Messagez�Object representing a DBus message.

    It's not normally necessary to construct this directly: use higher level
    functions and methods instead.
    cCs||_||_dSr>)�header�body)rr�r�rrr
rA�s
zMessage.__init__cCsd�t|�j|j|j�S)Nz{}({!r}, {!r}))rNrPrr�r�rrrr
rO�r�zMessage.__repr__rrD�returnc	Cs�t�|�\}}|j�tjd�}|t|�kr"td|�dt|��d���|d|�}d}tj|jvrJ|jtj}t	t
d|��}|j|||j|d�d}t
||�S)NrzMessage expects z FDs, but only z were receivedr�(%s)r�)r�r�r��getr)r7rprnr6r�r�rIrEr�)	r�rDrFr�r9�n_fdsr�r��	body_typerrr
r��s�
zMessage.from_bufferNc	Cs�|jj}tj|jjvr%|jjtj}ttd|��}|j|jd||d�}nd}t	|�|j_
|r8t	|�|jjtj<|jj|d�}dtt	|�d�}|||S)a�Convert this message to bytes.

        Specifying *serial* overrides the ``msg.header.serial`` field, so a
        connection can use its own serial number without modifying the message.

        If file-descriptor support is in use, *fds* should be a
        :class:`array.array` object with type ``'i'``. Any file descriptors in
        the message will be added to the array. If the message contains FDs,
        it can't be serialised without this array.
        r�rr�r�)r�rJr-)
r�rEr)r6r�r�r�rMr�rpr�r7r<)	rr�rFr�r�r��body_buf�
header_bufr;rrr
rM�szMessage.serialiserT)NN)
rr	r
rrArOr�r�r�rMrrrr
r��sr�c@sJeZdZdZdd�Zddefdd�Zdd	�Zd
d�Zde	e
fd
d�ZdS)�Parserz8Parse DBus messages from a stream of incoming data.
    cCst�|_g|_d|_dSr>)�
BufferPiperDrF�
next_msg_sizerrrr
rA�s
zParser.__init__rrLcCs|j�|�|j�|�dS)z)Provide newly received data to the parserN)rD�writerF�extend)rrLrFrrr
�add_data�szParser.add_datacCs|�|�tt|jd��S)zhFeed the parser newly read data.

        Returns a list of messages completed by the new data.
        N)r�r��iter�get_next_message)rrLrrr
�feed�s
zParser.feedcCs>|jj}|dkrd|S|jdurt|j�d��|_|j|S)z�How many bytes can be received without going beyond the next message?

        This is only used with file-descriptor passing, so we don't get too many
        FDs in a single recvmsg call.
        r�N)rD�bytes_bufferedr�r��peek)r�gotrrr
�
bytes_desired�s

zParser.bytes_desiredr�cCs�|jdur|jjdkrt|j�d��|_|j}|durE|jj|krG|j�|�}tj||jd�}d|_|j	j
�tj
d�}|j|d�|_|SdSdS)zqParse one message, if there is enough data.

        Returns None if it doesn't have a complete message.
        Nr�r�r)r�rDr�r�r��readr�r�rFr�r�r�r)r7)r�nms�raw_msg�msg�fds_consumedrrr
r�	s
�zParser.get_next_messageNrT)rr	r
rrAr�r�r�r�rr�r�rrrr
r��sr�c@sfeZdZdZdd�Zdefdd�Zdefdd	�Zded
efdd�Z	defd
d�Z
ded
efdd�ZdS)r�z�A place to store received data until we can parse a complete message

    The main difference from io.BytesIO is that read & write operate at
    opposite ends, like a pipe.
    cCst�|_d|_dSr8)rr�r�rrrr
rA!s
zBufferPipe.__init__rzcCs"|j�|�|jt|�7_dSr>)r�ror�rp)rrzrrr
r�%szBufferPipe.write�nbytesccsL�||jksJ�|jD]}|d|�}|t|�8}|V|dkr#dSqdSr8)r�r�rp)rr��chunkrrr
�
_peek_iter)s�
��zBufferPipe._peek_iterr�cC�d�|�|��S)z=Get exactly nbytes bytes from the front without removing themr�)r�r��rr�rrr
r�2�zBufferPipe.peekccs��||jksJ�	|j��}|jt|�8_|t|�krn
|t|�8}|Vq	|d|�||d�}}|rF|j�|�|jt|�7_|VdSr>)r�r��popleftrp�
appendleft)rr�r��remrrr
�
_read_iter6s�
�	
zBufferPipe._read_itercCr�)z1Take & return exactly nbytes bytes from the frontr�)r�rrrrr
r�GrzBufferPipe.readN)rr	r
rrAr�r�rlr�r�rr�rrrr
r�s	r�)'�collectionsr�enumrrrrB�typingrrnrrrrr�rr%r)r<r=rUrer�r~�updater�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
�<module>sl �


�&F	�
(:5

Anon7 - 2022
AnonSec Team