Avoid some string copies in IRC analyzer

This commit is contained in:
Tim Wojtulewicz 2025-07-23 11:26:35 -07:00
parent 205c72d26f
commit dea44003a1

View file

@ -807,8 +807,8 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) {
} }
else if ( irc_quit_message && command == "QUIT" ) { else if ( irc_quit_message && command == "QUIT" ) {
string message = params; string_view message{params};
if ( message[0] == ':' ) if ( message.starts_with(":") )
message = message.substr(1); message = message.substr(1);
string nickname = ""; string nickname = "";
@ -819,16 +819,16 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) {
} }
EnqueueConnEvent(irc_quit_message, ConnVal(), val_mgr->Bool(orig), make_intrusive<StringVal>(nickname.c_str()), EnqueueConnEvent(irc_quit_message, ConnVal(), val_mgr->Bool(orig), make_intrusive<StringVal>(nickname.c_str()),
make_intrusive<StringVal>(message.c_str())); make_intrusive<StringVal>(message));
} }
else if ( irc_nick_message && command == "NICK" ) { else if ( irc_nick_message && command == "NICK" ) {
string nick = params; string_view nick{params};
if ( nick[0] == ':' ) if ( nick[0] == ':' )
nick = nick.substr(1); nick = nick.substr(1);
EnqueueConnEvent(irc_nick_message, ConnVal(), val_mgr->Bool(orig), make_intrusive<StringVal>(prefix.c_str()), EnqueueConnEvent(irc_nick_message, ConnVal(), val_mgr->Bool(orig), make_intrusive<StringVal>(prefix.c_str()),
make_intrusive<StringVal>(nick.c_str())); make_intrusive<StringVal>(nick));
} }
else if ( irc_who_message && command == "WHO" ) { else if ( irc_who_message && command == "WHO" ) {
@ -909,8 +909,8 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) {
} }
else if ( irc_squit_message && command == "SQUIT" ) { else if ( irc_squit_message && command == "SQUIT" ) {
string server = params; string server;
string message = ""; string message;
unsigned int pos = params.find(' '); unsigned int pos = params.find(' ');
if ( pos < params.size() ) { if ( pos < params.size() ) {
@ -946,8 +946,6 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) {
AddSupportAnalyzer(new analyzer::zip::ZIP_Analyzer(Conn(), true)); AddSupportAnalyzer(new analyzer::zip::ZIP_Analyzer(Conn(), true));
AddSupportAnalyzer(new analyzer::zip::ZIP_Analyzer(Conn(), false)); AddSupportAnalyzer(new analyzer::zip::ZIP_Analyzer(Conn(), false));
} }
return;
} }
void IRC_Analyzer::StartTLS() { void IRC_Analyzer::StartTLS() {