예제 #1
0
    def unpack(data):
        if '\0' != data[0]:
            formatStr = ">BB*"
            fields = messageutils.unpack(formatStr, data) + (0, '')
            return SecurityTypes(fields[1:])

        formatStr = ">BIs*"
        fields = messageutils.unpack(formatStr, data)
        return SecurityTypes(fields[0], '', fields[1], *fields[2:])
예제 #2
0
 def unpack(data):
     formatStr = SetEncodings._formatString + "i*"
     fields = messageutils.unpack(formatStr, data)
     if fields[0] != SetEncodings._messageType:
         raise Exception, 'Wrong message type'
     if fields[1] != len(fields[2:]):
         raise Exception, 'Field count does not match'
     return SetEncodings(fields[2:])
예제 #3
0
 def unpack(data):
     formatStr = ServerInit._formatString + "s*"
     return ServerInit(*messageutils.unpack(formatStr, data))
예제 #4
0
 def unpack(data):
     formatStr = ">I"
     if 4 < len(data):
         formatStr = ">IIs*"
     return SecurityResult(*messageutils.unpack(formatStr, data))
예제 #5
0
 def unpack(data):
     formatStr = ServerInit._formatString + "s*"
     return ServerInit(*messageutils.unpack(formatStr, data))
예제 #6
0
 def unpack(data):
     formatStr = ClientCutText._formatString + "s*"
     msg = ClientCutText(*messageutils.unpack(formatStr, data))
     if msg.message_type != ClientCutText._messageType:
         msg = None
     return msg
예제 #7
0
 def unpack(data):
     formatStr = ">I"
     if 4 < len(data):
         formatStr = ">IIs*"
     return SecurityResult(*messageutils.unpack(formatStr, data))
예제 #8
0
 def unpack(data):
     formatStr = ClientCutText._formatString + "s*"
     msg = ClientCutText(*messageutils.unpack(formatStr, data))
     if msg.message_type != ClientCutText._messageType:
         msg = None
     return msg