扭曲的问题

你好.我有这样的东西:
从twist.words.protocols.jabber导入xmlstream
来自twisted.internet导入协议
来自twist.words.xish进口domish,实用程序
从扭曲.Internet进口反应堆
从twisted.python导入日志
导入系统,hashlib
log.startlogging(sys.stdout)
Def Magichash(密码,SID):
魔术1 = 0x50305735
魔术2 = 0x12345671
总和= 7
对于范围(LEN(密码))的s:
Z = ORD(密码[S]);
如果(z ==''):
继续
如果(z =='\ t'):
继续
magic1 = magic1 ^(((((((魔术1&0x3f) + sum) * z) +(魔术1
<< 8))
magic2 = magic2 +((魔术2 << 8) ^魔术1)
sum += z
魔术1 =魔术1&0x7fffffff
魔术2 =魔术2&0x7fffffff
返回('%08x%08x'%(魔术1,魔术2))
def ping(xmlstream):
打印" ping"
xmlstream.send('\ t')
反应器.钙板(40,ping,XMLStream)
类Tlenauthinitializer(对象):
def __init __(self,xs):
打印" Wykonywanie tlenauthinitializer"
self.xmlStream = xs
缺陷初始化(自我):
打印" Wykonywanie tlenauthinitializer-初始化"
iq = xmlstream.iq(self.xmlstream," set")
打印'1'
iq ['id'] = self.xmlstream.sid
打印" 2"
q = iq.addelement('query','jabber:iq:auth')
打印" 3"
Q.Addelement('用户名',content = self.xmlStream.authenticator.jid)
打印" 4"
Q.Addelement('Digest',content =
hashlib.sha1(magichash(self.xmlstream.authenticato r.password,
self.xmlstream.sid)).hexdigest())
打印" 4"
Q.Addelement('Resource',content ='t')
打印" 6"
q.addelement('主机',content ='tlen.pl')
打印q.toxml(prefixes = self.prefixes,closelement = 0)
打印'7'
d = iq.send('q')
打印" 8"
d.addcallback(self._authreply)
打印" 9"
d. adderrback(self._authfail)
打印" 10"
def _authreply(self,el):
打印" Wykonywanie tlenauthinitializer -_authreply"
打印el.toxml()
反应堆.钙板(40,ping,self.xmlstream)
def _authfail(self,el):
打印" Wykonywanie tlenauthinitializer -_authfail"
打印el.toxml()
类Tlenauthenticator(XMLStream.ConnectAuthenticator):
def __init __(self,jid,密码,主机):
打印" Wykonywanie tlenauthenticator"
xmlstream.connectauthenticator .__ init __(self,host)
self.jid = jid
self.password =密码
Def AssociateWithStream(Self,XS):
打印" Wykonywanie tlenauthenticator -AssociateWithStream"
xs.version =(0,0)
xmlstream.connectauthenticator.associatewithstream(self,xs)
inits = [(tlenauthinitializer,true)]
对于InitClass,需要INIT:
init = initClass(xs)
init.required =必需
XS.Initializer.Append(Init)
类Tlenstream(XMLStream.XMLStream):
def sendheader(self):
打印" Wykonywanie tlenstream -sendheader"
rootelem = domish.element((none,'s'))
rootelem ['v'] ='9'
rootelem ['t'] ='06000224'
self.rootelem = rootelem
self.send(rootelem.toxml(prefixes = self.prefixes,closelement = 0))
self.__headersent = true
从sendheader打印'xmled rootelem
'+rootelem.toxml(prefixes = self.prefixes,closelement = 0)
def sendfooter(self):
打印" Wykonywanie tlenstream- sendfooter"
self.send('')
def onDocumentStart(self,rootelem):
打印" Wykonywanie tlenstream -OnDocumentStart"
xmlstream.xm lstream.ondocumentStart(self,rootelem)
打印"来自onDocumentStart的rootelem"+rootelem.toxml()
如果rootelem.hasattribute(" i"):
self.sid = rootelem [" i"]
self.authenticator.streamstarted(rootelem)
类TlenstreamFactory(XMLStream.xmlStreamFactory):
def __init __(自我,身份验证者):
打印" Wykonywanie tlenstreamfactory"
xmlstream.xmlStreamFactory .__ Init __(self,authenticator)
self.authenticator = authenticator
def build protocol(self,_):
打印" Wykonywanie tlenstreamFactory -build protocol"
self.Resetdelay()
#创建流并注册所有Bootstrap观察者
xs = tlenstream(self.authenticator)
xs.factory = self
对于活动,fn in self.bootstraps:xs.addobserver(event,fn)
返回XS
Def LG(EL):
打印" all>",el
def err(el):
打印" err>",el
factory = tlenstreamFactory(tlenauthenticator('portsentry',,
'linux1991','s1.tlen.pl'))))
factory.addbootstrap('/*',lg)
反应器.connecttcp('s1.tlen.pl',443,工厂)
反应器.run()
现在...我有问题.它不打印我任何错误,但那里
是在tlenauthinitializer上具有d = iq.send('q')的东西 -
初始化.我不知道为什么,但是python只是打印我的" 6"并停止...
它很奇怪...有人有建议吗?

标签: python

添加新评论