HEX
Server: Apache
System: Linux box5154.bluehost.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User: almiraso (1849)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib64/python3.9/site-packages/ntp/__pycache__/agentx.cpython-39.opt-1.pyc
a

\��dDa�
@s�ddlmZmZddlZddlZddlZzddlZddlZej	Z
WnJey�Zz2ej
�d�ej
�de�e�d�WYdZ[n
dZ[00dZdZdd	�ZGd
d�d�ZGdd
�d
�Zddd�ZdS)�)�print_function�divisionNz1AgentX: can't find Python AgentX Packet library.
z%s
���<cCsttur|��St|�SdS�N)�str�bytes�next)�	generator�r�0/usr/lib64/python3.9/site-packages/ntp/agentx.py�gen_nextsrc@sheZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zddd�Zddd�Z	ddd�Z
ddd�Zddd�ZdS)�
MIBControlNrrcCsHi|_|dur||_d|_g|_g|_g|_||_||_||_||_dS�NF)	�oidTree�inSetP�setVarbinds�setHandlers�setUndoData�mibRoot�
rangeSubid�
upperBound�context)�selfrrrrZ
mibContextrrr
�__init__ szMIBControl.__init__cCs|jSr)r�rrrr
�mib_rootOID/szMIBControl.mib_rootOIDcCs|jSr)rrrrr
�mib_rangeSubid2szMIBControl.mib_rangeSubidcCs|jSr)rrrrr
�mib_upperBound5szMIBControl.mib_upperBoundcCs|jSr)rrrrr
�mib_context8szMIBControl.mib_contextcCs�t|tj�rt|j�}|j}|}tj�|d�\}}|d}||�	�vrVdddd�||<|s�|||d<|||d<|dur�|||d<dS||ddur�i||d<||d}q dS)Nrr)�reader�writer�subidsr!r"r#)
�
isinstance�ax�OID�tupler#r�ntp�utilZ	slicedata�keys)r�oidr!r"ZdynamicZcurrentLevelZremainingOIDZnoderrr
�addNode;s&
�
zMIBControl.addNodeFc	Cs�t|j|j�}zVt|�\}}}|r,||k}n|j|jk}|rb|durb|rV||||fWS|||fWSWqty�|r|YdSYdSYq0qdS)N)NNNN)NNN)�walkMIBTreerrrr#�
StopIteration)	rZnextP�	searchoid�returnGenerator�genr+r!r"Zoidhitrrr
�getOID_coreSs
zMIBControl.getOID_corecCs|�d||�S)zGet the requested OIDF�r2�rr/r0rrr
�getOIDlszMIBControl.getOIDcCs|�d||�S)z Get the next lexicographical OIDTr3r4rrr
�
getNextOIDpszMIBControl.getNextOIDcCs,g}t|j|j�}z�t|�\}}}|dur0Wqnj|j|jjkrb|jjr\|�|||f�Wq�q�Wqn8||jkr�|j�	�s�||jkr�gWS|�|||f�Wq�Wqt
y�gYS0q|r�|SzLt|�\}}}|dur�Wq�n,|j�	�s�||jkr�W�q(n|�|||f�Wq�t
�y$Y�q(Yq�0q�|S)z9Get a list of every (optionally the first) OID in a rangeN)r-rrrr#�startZinclude�append�endZisNullr.)rZoidrangeZ	firstOnly�oidsr1r+r!r"rrr
�getOIDsInRangets<
zMIBControl.getOIDsInRange)NrrNN)NNN)F)F)F)F)
�__name__�
__module__�__qualname__rrrrr r,r2r5r6r;rrrr
rs�




rc@s�eZdZdeddfdd�Zdd�Zdd	�Zd
d�Zd-d
d�Zdd�Z	dd�Z
edfdd�Zdd�Zd.dd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�ZdS)/�
PacketControlg����MbP?Ni'cs���fdd�|_||_||_i|_d|_||_d|_g|_||_d|_	d|_
d|_d|_t
j|jt
j|jt
j|jt
j|jt
j|jt
j|jt
j|jt
j|ji|_dS)Ncstj��|�|�Sr)r(r)Zdolog)ZtxtZdbg��debug�logfprr
�<lambda>��z(PacketControl.__init__.<locals>.<lambda>rDrF)�log�socket�spinGap�	packetLog�loopCallback�database�receivedData�receivedPackets�timeout�	sessionID�highestTransactionID�
lastReception�stillConnectedr%ZPDU_GET�
handle_GetPDUZPDU_GET_NEXT�handle_GetNextPDUZPDU_GET_BULK�handle_GetBulkPDUZPDU_TEST_SET�handle_TestSetPDUZPDU_COMMIT_SET�handle_CommitSetPDUZPDU_UNDO_SET�handle_UndoSetPDUZPDU_CLEANUP_SET�handle_CleanupSetPDU�PDU_RESPONSE�handle_ResponsePDU�pduHandlers)rZsockZdbaserGrMrBrArr@r
r�s,�zPacketControl.__init__cCsR|jdurdS|rD|jrL|��|jdur4|�|�t�|j�qn|��|jS)NTF)rQ�_dolooprI�time�sleeprG)rZ
runforeverrrr
�mainloop�s


zPacketControl.mainloopc	Cs�|��|jr�|j�d�}|j|jkrb|�d|d�t�d|j|j|jdtj	d�}|�
|d�q|j}||jvr�|j||�q|�d|d�q|�
�|jdur�t��}||jtkr�|��dS)Nrz-Received packet with incorrect session ID: %s�TFz(Dropping packet type %i, not implemented�)�packetEaterrL�poprNrEr%�ResponsePDU�
transactionID�packetIDZRSPERR_NOT_OPEN�
sendPacketZpduTyper[�checkResponsesrPr]�pingTime�sendPing)r�packet�respZptype�currentTimerrr
r\�s2�
�

�
zPacketControl._doloopc
Cs�|�dd�t�dddd|jdd�}|�|d�|�|d�}|j|_t�d|jd	d	|jd	|j�	�|j�
�|j��|j���
}|�|d�|�|�d|_
dS)
NzInitializing new session...r`T�rrzNTPsec SNMP subagentFr)rEr%ZOpenPDUrMrg�waitForResponserNZRegisterPDUrJrrrr rQ)rZopenpktZresponse�registerrrr
�initNewSession�s ��
zPacketControl.initNewSessionFcCs||��|jrj|j�d�}|jtjkr(q|j|jko>|j|jk}|sT|oR|j|jk}|r|�	dd�|Sqt
�|j�qdS)zBWait for a response to a specific packet, dropping everything elserzReceived waited for response�N)
rbrLrc�	__class__r%rdrerfrNrEr]r^rG)rZopktZ	ignoreSIDrkZhaveitrrr
ro�s
�zPacketControl.waitForResponsecCsRt��}t|j���D]6}|j|\}}}||kr|durD|d|�|j|=qdS)z0Check for expected responses that have timed outN)r]�listrHr*)rrm�keyZ
expiration�originalPkt�callbackrrr
rh	s
zPacketControl.checkResponsesc
Cs�|��t|j�}|dkrdSzZt�|j�\}}}|s<WdS||_|j�|�|j|jkrb|j|_|�	dt
|�d�Wqtjtjtj
fy�}z6|jdtjkr�|�|jtjd�|j|_WYd}~qd}~00qdS)zDSlurps data from the input buffer and tries to parse packets from it�NzReceived a full packet: %srr�typer)�
pollSocket�lenrKr%Z
decode_packetrLr8rerOrE�reprZParseVersionErrorZParsePDUTypeErrorZ
ParseError�headerrY�sendErrorResponseZRSPERR_PARSE_ERRORZ
remainingData)rZdatalen�pktZfullPktZ	extraData�errr
rbs&

�zPacketControl.packetEatercCsT|��}|�d|t|�fd�|j�|�|rP|j|j|jf}|||f|j|<dS)Nz#Sending packet (with reply: %s): %srr)	�encoderEr|rFZsendallrNrerfrH)rrkZexpectsReplyZreplyTimeoutrwZencoded�indexrrr
rg.s���zPacketControl.sendPacketcsB�jd}|�_t�d�j|d�}�fdd�}�j|d|d�dS)N�Trcs|durd�_dSr)rQ)rl�origrrr
rwAsz(PacketControl.sendPing.<locals>.callback�rw)rOr%ZPingPDUrNrg)r�tidrrwrrr
rj:s

zPacketControl.sendPingcsF�jd}|�_t�d�j|d||�}��fdd����|d��dS)Nr�Trcs|dur�j|d�d�dS)NTr�)rg)rr���resendNotifyrrr
r�Nsz.PacketControl.sendNotify.<locals>.resendNotify)rOr%Z	NotifyPDUrNrg)r�varbindsrr�rrr�r
�
sendNotifyGs

zPacketControl.sendNotifyc	Cs:t�|dd|d|d|dd||�}|�|d�dS)N�flagsZ	bigEndianZ
session_idZtransaction_idZ	packet_idrF)r%rdrg)rZerrorHeaderZ	errorTypeZ
errorIndex�errrrr
r~Ss�zPacketControl.sendErrorResponsecCsvd}t�|jgggd�d}|s"qd|d}|�d�}|rd|�dt|�d�||7}t��|_qqdq|j|7_dS)z@Reads all currently available data from the socket, non-blockingrDrizReceived data: %sr�N)�selectrFZrecvrEr|r]rPrK)r�data�tmp�newdatarrr
rz[s
zPacketControl.pollSocketc

Cs�g}|jD]r}|j}|j�|�\}}}||ks6|durL|�t�tj|��q
||�}|durr|�t�tj|��q
|�|�q
t�	d|j
|j|jdtj
d|�}	|�|	d�dS�NTrF)�	oidrangesr7rJr5r8r%�VarbindZVALUE_NO_SUCH_OBJECTZ
VALUE_NULLrdrNrerf�ERR_NOERRORrg)
rrk�binds�oidr�targetr+r!�_�vbindrlrrr
rRps
�zPacketControl.handle_GetPDUc

Cs�g}|jD]p}|j�|d�}|s:|�t�tj|j��q
q|d\}}}||�}|durlt�||j	d�}qq|�|�q
qq
t�
d|j|j|j
dtjd|�}	|�|	d�dSr�)r�rJr;r8r%r��VALUE_END_OF_MIB_VIEWr7ZSearchRanger9rdrNrerfr�rg)
rrkr�r�r:r+r!r�r�rlrrr
rS�s&
�
�zPacketControl.handle_GetNextPDUc
Cs�g}|jd|j�}|j|jd�}|D]J}|j�|d�}|sV|�t�tj|j��q(|d\}}}	|�||��q(|D]T}|j�|�}|s�|�t�tj|j��qx|d|j	�D]\}}}	|�||��q�qxt�
d|j|j|j
dtjd|�}
|�|
d�dSr�)r�ZnonRepsrJr;r8r%r�r�r7ZmaxRepsrdrNrerfr�rg)rrkr�ZnonrepsZrepeatsr�r:r+r!r�rlrrr
rT�s&�zPacketControl.handle_GetBulkPDUc	Csd|jjrd|j_g|j_g|j_g|j_d}tt|j��D]�}|j|}|j�|j	�\}}}|durpt
j}q�n|dur�t
j}q�||�}|d|�}|t
j
kr�q�|jj�|�|jj�|�|jj�|�q:|t
j
k�r6t
�d|j|j|jd||�}	|�|	d�t|�D] }
|jj|
d|jj|
��q
d|j_n*t
�d|j|j|jdt
j
d�}	|�|	d�dS)NT�testrF�clear)rJrrrr�ranger{r�r5r+r%Z
ERR_NO_ACCESSZERR_NOT_WRITABLEr�r8rdrNrerfrg)rrk�errorZ	bindIndexZvarbindr+r!r"�undoDatarl�irrr
rU�sH



�
�
�zPacketControl.handle_TestSetPDUc	Cs�|jjs|jj}|jj}tt|��D]$}||d||�}|tjkr$qJq$|tjkrrt�d|j	|j
|jd||�}nt�d|j	|j
|jdtjd�}|�|d�dS)NZcommitTrF)
rJrrrr�r{r%r�rdrNrerfrg)rrkr��handlersr�r�rlrrr
rV�s


��z!PacketControl.handle_CommitSetPDUc	Cs�|jj}|jj}|jj}tt|��D]*}||d||||�}|tjkr$qPq$|tjkrxt�d|j	|j
|jd||�}nt�d|j	|j
|jdtjd�}|�|d�dS)NZundoTrF)
rJrrrr�r{r%r�rdrNrerfrg)rrkr�r�r�r�r�rlrrr
rW�s


��zPacketControl.handle_UndoSetPDUcCs@|jj}|jj}tt|��D]}||d||�qd|j_dS)NZcleanF)rJrrr�r{r)rrkr�r�r�rrr
rXs
z"PacketControl.handle_CleanupSetPDUcCsJ|j|j|jf}||jvrF|j|\}}}|j|=|durF|||�ndSr)rNrerfrH)rrkr�rMrvrwrrr
rZs
z PacketControl.handle_ResponsePDU)F)N)r<r=r>�defaultTimeoutrr_r\rqrorhrbrgrjr�r~rzrRrSrTrUrVrWrXrZrrrr
r?�s0�



�

.r?rc
csBg}g}|}t|���}|��d}|t|�kr\|rX|��\}}}}|��|d7}q$ndS||}t�|t|�|f�}|||�d�||�d�fV||�d�}	|	du�r4|�	||||f�|�	|�t
|	t�r�|	}n2|	�}|ik�r|��\}}}}|��|d7}q$t|���}|��d}||}q$|d7}q$dS)Nrrr!r"r#)rtr*�sortr{rcr%r&r'�getr8r$�dict)
ZtreeZrootpathZ	nodeStackZoidStack�currentZcurrentKeysZkeyIDrur+Zsubsrrr
r-sD 



r-)r)Z
__future__rrr�r]�sysZntp.utilr(Zntp.agentx_packetZ
agentx_packetr%�ImportErrorr��stderr�write�exitr�rirrr?r-rrrr
�<module>s,
� ~