def __getHandShakePacket(self, tcp_layer):
        cmp = HandShakeMessage(tcp_layer.getRawSocketFd(),
                               self.agentInfo.hostname, True,
                               self.agentInfo.ip, self.agentInfo.agentId,
                               self.agentInfo.applicationName, PHP,
                               self.agentInfo.pid, self.agentInfo.agentVersion,
                               self.startTimeStamp)

        packet = Packet(PacketType.CONTROL_HANDSHAKE, 0, cmp.getDataLen(),
                        cmp.getBinData())
        return packet
示例#2
0
    def handle_handshake_response(self,tcp_layer,ptype,header,vBody):
        cbf = ChannelBufferV2(vBody.tobytes())
        cmg = ControlMessageDecoder.decodingControlMessage(cbf)

        if cmg.type == ControlMessage.CONTROL_MESSAGE_MAP:
            code_CM = cmg.data[b'code']
            subCode_CM = cmg.data[b'subCode']
            if code_CM.type ==  ControlMessage.CONTROL_MESSAGE_LONG and subCode_CM.type == ControlMessage.CONTROL_MESSAGE_LONG:
                code    = code_CM.data
                subCode = subCode_CM.data
                TCLogger.debug("code %d subcode %d",code,subCode)
                self.socketCode = HandShakeMessage.getNextStateCode(code,subCode)
                self.negotiatedDone(self.socketCode, tcp_layer)

        return 0