Tidy up LDAP code by using local references

This commit is contained in:
Benjamin Bannier 2023-10-10 12:58:32 +02:00
parent 3a60a60619
commit 1d4412a9e7

View file

@ -216,70 +216,74 @@ event LDAP::message(c: connection,
if (opcode == LDAP::ProtocolOpcode_SEARCH_RESULT_DONE) { if (opcode == LDAP::ProtocolOpcode_SEARCH_RESULT_DONE) {
set_session(c, message_id, opcode); set_session(c, message_id, opcode);
local searches = c$ldap_searches[message_id];
if ( result != LDAP::ResultCode_Undef ) { if ( result != LDAP::ResultCode_Undef ) {
if ( ! c$ldap_searches[message_id]?$results ) if ( ! searches?$results )
c$ldap_searches[message_id]$results = set(); searches$results = set();
add c$ldap_searches[message_id]$results[RESULT_CODES[result]]; add searches$results[RESULT_CODES[result]];
} }
if ( diagnostic_message != "" ) { if ( diagnostic_message != "" ) {
if ( ! c$ldap_searches[message_id]?$diagnostic_messages ) if ( ! searches?$diagnostic_messages )
c$ldap_searches[message_id]$diagnostic_messages = vector(); searches$diagnostic_messages = vector();
c$ldap_searches[message_id]$diagnostic_messages += diagnostic_message; searches$diagnostic_messages += diagnostic_message;
} }
if (( ! c$ldap_searches[message_id]?$proto ) && c?$ldap_proto) if (( ! searches?$proto ) && c?$ldap_proto)
c$ldap_searches[message_id]$proto = c$ldap_proto; searches$proto = c$ldap_proto;
Log::write(LDAP::LDAP_SEARCH_LOG, c$ldap_searches[message_id]); Log::write(LDAP::LDAP_SEARCH_LOG, searches);
delete c$ldap_searches[message_id]; delete c$ldap_searches[message_id];
} else if (opcode !in OPCODES_SEARCH) { } else if (opcode !in OPCODES_SEARCH) {
set_session(c, message_id, opcode); set_session(c, message_id, opcode);
if ( ! c$ldap_messages[message_id]?$opcodes ) local messages = c$ldap_messages[message_id];
c$ldap_messages[message_id]$opcodes = set();
add c$ldap_messages[message_id]$opcodes[PROTOCOL_OPCODES[opcode]]; if ( ! messages?$opcodes )
messages$opcodes = set();
add messages$opcodes[PROTOCOL_OPCODES[opcode]];
if ( result != LDAP::ResultCode_Undef ) { if ( result != LDAP::ResultCode_Undef ) {
if ( ! c$ldap_messages[message_id]?$results ) if ( ! messages?$results )
c$ldap_messages[message_id]$results = set(); messages$results = set();
add c$ldap_messages[message_id]$results[RESULT_CODES[result]]; add messages$results[RESULT_CODES[result]];
} }
if ( diagnostic_message != "" ) { if ( diagnostic_message != "" ) {
if ( ! c$ldap_messages[message_id]?$diagnostic_messages ) if ( ! messages?$diagnostic_messages )
c$ldap_messages[message_id]$diagnostic_messages = vector(); messages$diagnostic_messages = vector();
c$ldap_messages[message_id]$diagnostic_messages += diagnostic_message; messages$diagnostic_messages += diagnostic_message;
} }
if ( object != "" ) { if ( object != "" ) {
if ( ! c$ldap_messages[message_id]?$objects ) if ( ! messages?$objects )
c$ldap_messages[message_id]$objects = vector(); messages$objects = vector();
c$ldap_messages[message_id]$objects += object; messages$objects += object;
} }
if ( argument != "" ) { if ( argument != "" ) {
if ( ! c$ldap_messages[message_id]?$arguments ) if ( ! messages?$arguments )
c$ldap_messages[message_id]$arguments = vector(); messages$arguments = vector();
if ("bind simple" in c$ldap_messages[message_id]$opcodes && !default_capture_password) if ("bind simple" in messages$opcodes && !default_capture_password)
c$ldap_messages[message_id]$arguments += "REDACTED"; messages$arguments += "REDACTED";
else else
c$ldap_messages[message_id]$arguments += argument; messages$arguments += argument;
} }
if (opcode in OPCODES_FINISHED) { if (opcode in OPCODES_FINISHED) {
if ((BIND_SIMPLE in c$ldap_messages[message_id]$opcodes) || if ((BIND_SIMPLE in messages$opcodes) ||
(BIND_SASL in c$ldap_messages[message_id]$opcodes)) { (BIND_SASL in messages$opcodes)) {
# don't have both "bind" and "bind <method>" in the operations list # don't have both "bind" and "bind <method>" in the operations list
delete c$ldap_messages[message_id]$opcodes[PROTOCOL_OPCODES[LDAP::ProtocolOpcode_BIND_REQUEST]]; delete messages$opcodes[PROTOCOL_OPCODES[LDAP::ProtocolOpcode_BIND_REQUEST]];
} }
if (( ! c$ldap_messages[message_id]?$proto ) && c?$ldap_proto) if (( ! messages?$proto ) && c?$ldap_proto)
c$ldap_messages[message_id]$proto = c$ldap_proto; messages$proto = c$ldap_proto;
Log::write(LDAP::LDAP_LOG, c$ldap_messages[message_id]); Log::write(LDAP::LDAP_LOG, messages);
delete c$ldap_messages[message_id]; delete c$ldap_messages[message_id];
} }
} }