ϪfKVdZddlmZddlmZddlmZmZm Z ddl m Z ddl mZmZddlmZGdd ZGd d Zee j(Gd d ej*ZGddej.ej*ZGddZGddej4Zy)z9 insults/SSH integration support. @author: Jp Calderone )Dict) implementer)avatarerror interfaces)insults)factorysession) componentsceZdZdZdZdZy)_Gluez A feeble class for making one attribute look like another. This should be replaced with a real class at some point, probably. Try not to write new code that uses it. c :|jj|yN)__dict__update)selfkws ;/usr/lib/python3/dist-packages/twisted/conch/manhole_ssh.py__init__z_Glue.__init__s R c0t|jd|)Nzhas no attribute)AttributeErrorname)rrs r __getattr__z_Glue.__getattr__ sTYY(:DAArN)__name__ __module__ __qualname____doc__rrrrr r s!Brr ceZdZdZy)TerminalSessionTransportc|__|_jjjj t jj fddfd}jj t jj|djjj||y)Nc:jjSr)conn sendClose)r protoSessionsrz3TerminalSessionTransport.__init__../sv{{'<'<\'JrzSSH Proto Transport)writeloseConnectionrc:jjyr)protor)rsrr)z9TerminalSessionTransport.__init__..loseConnection4s JJ % % 'rzChained Proto Transport) r+rchainedProtocolr makeConnectionr dataReceivedr(terminalProtocol terminalSize)rr+r-rwidthheightr)r&s` ` @rrz!TerminalSessionTransport.__init__%s  .zz))  !! **77J*   ( ++ jj&&-.   --::5&IrNrrrrrrrr!r!$s Jrr!cLeZdZeZej ZdZdZ dZ dZ dZ dZ y)TerminalSessionc(|dd\|_|_y)N)r3r2)rterm windowSizeattrss rgetPtyzTerminalSession.getPtyMs",Ra. TZrc|j||jtj|j|j |j yr)transportFactorychainedProtocolFactoryiconch IConchUseroriginalr2r3)rr+s r openShellzTerminalSession.openShellPs?    ' ' )   dmm , JJ KK  rc,tjd)NzCannot execute commands)econch ConchError)rr+cmds r execCommandzTerminalSession.execCommandYs 9::rctd)Nz,Unimplemented: TerminalSession.windowChangedNotImplementedError)r newWindowSizes r windowChangedzTerminalSession.windowChanged\s!"PQQrctd)Nz*Unimplemented: TerminalSession.eofReceivedrJr,s r eofReceivedzTerminalSession.eofReceived`s!"NOOrcyrrr,s rclosedzTerminalSession.closedds rN)rrrr!r>rServerProtocolr?r<rCrHrMrOrQrrrr6r6Hs4/$331 ;RP rr6ceZdZdZy) TerminalUserctjj||tjj|t j |jd<y)Nssession)r Adapterrr ConchUserr SSHSession channelLookup)rrBavatarIds rrzTerminalUser.__init__jsB##D(3!!$')0););:&rNr4rrrrTrTisr? setComponentr@rAISession)rrZcompusersesss r _getAvatarzTerminalRealm._getAvatarws}'')h/""4( $ 5 5&*&A&A# &++T2 &//40 rNc|||_yyr)r>)rr>s rrzTerminalRealm.__init__s  '$4D ! (rc|D]9}|tjustj|j|dfcSt)Ncyrrrrrr'z-TerminalRealm.requestAvatar..sr)r@rArfrK)rrZmindris r requestAvatarzTerminalRealm.requestAvatarsH TAF%%%))4??8+DlSS T"##rr)rrrrTr_r6r`r!r>rrRr?rfrrlrrrr\r\ps-K$N/$33 5$rr\cDeZdZUiZeeefed<iZeeefed<dZy) ConchFactory publicKeys privateKeysc||_yr)portal)rrrs rrzConchFactory.__init__s  rN) rrrrorbytes__annotations__rprrrrrnrns-%'JUE\"'&(KeUl#(rrnN)rtypingrzope.interfacer twisted.conchrrrErr@twisted.conch.insultsrtwisted.conch.sshr r twisted.pythonr r r!rbrVr6rWrTr\ SSHFactoryrnrrrr|s  &GG).% B B!J!JH V__ j((  @<6##Z%7%7<$$>7%%r