Ejemplo n.º 1
0
 def _handleMessages(self, messages):
     for message in messages:
         messageType = message['msgType']
         messageParas = message['msgParas']
         
         if messageType=='HELLO REPLY':
             #handshake reply
             if messageParas['RESULT'].upper()=='OK' and messageParas['VERSION']=='2.0':
                 #send session create message
                 assert len(self.outQueue)==0, "just handshaked and stuff to send?!"
                 self._sendOverRealSocket(SamMessages.sessionCreateMessage(self.sessionType, self.sessionName, self.sessionDirection, self.sessionOptions))
             else:
                 #something borked
                 self._failDestination('Invalid HELLO REPLY: Result<%s> Version<%s>' % (messageParas['RESULT'], messageParas['VERSION']))
             
         elif messageType=='SESSION STATUS':
             #session established
             if not messageParas['RESULT'].upper()=='OK':
                 #urgh
                 self._failDestination('Failed to setup session: "%s"' % (messageParas['RESULT'],))
             else:
                 #ok, session is established
                 self.sessionEstablished = True
                 self._sendOverRealSocket('NAMING LOOKUP NAME=ME\n')
                 self._establishedDestination()
                 
         elif messageType=='NAMING REPLY':
             #reply to destination request
             if not messageParas['NAME'].upper() == 'ME': 
                 self._handleNameLookup(message)
             elif messageParas['RESULT'].upper() == 'OK':
                     self.sessionKey = messageParas['VALUE']
                 
         else:
             self._handleCustomMessage(message)