def encode!
case type
when :reply
raise "Cannot encode a reply message if no request has been associated with it" unless request
raise 'callerid in original request is not valid, surpressing reply to potentially forged request' unless PluginManager["security_plugin"].valid_callerid?(request.payload[:callerid])
@requestid = request.payload[:requestid]
@payload = PluginManager["security_plugin"].encodereply(agent, payload, requestid, request.payload[:callerid])
when :request, :direct_request
validate_compound_filter(@filter["compound"]) unless @filter["compound"].empty?
@requestid = create_reqid unless @requestid
@payload = PluginManager["security_plugin"].encoderequest(Config.instance.identity, payload, requestid, filter, agent, collective, ttl)
else
raise "Cannot encode #{type} messages"
end
end