Merge in SNORT/snort3 from ~VIIZHYK/snort3:viizhyk_CSCwk30965_master to master
Squashed commit of the following:
commit
ce4124066c911c5cbc48f16f2393b7edafe857fa
Author: viizhyk <viizhyk@cisco.com>
Date: Mon Jul 22 19:37:51 2024 -0400
Replaced hsessions vector of raw pointers into vector of smart pointers.
Signed-off-by: viizhyk <viizhyk@cisco.com>
AppIdHttpSession* AppIdSession::get_http_session(uint32_t stream_index) const
{
if (stream_index < api.hsessions.size())
- return api.hsessions[stream_index];
+ return api.hsessions[stream_index].get();
else
return nullptr;
}
AppIdHttpSession* AppIdSession::create_http_session(int64_t stream_id)
{
- AppIdHttpSession* hsession = new AppIdHttpSession(*this, stream_id);
- api.hsessions.push_back(hsession);
- return hsession;
+ auto hsession = std::make_unique<AppIdHttpSession>(*this, stream_id);
+ auto tmp_hsession = hsession.get();
+ api.hsessions.push_back(std::move(hsession));
+ return tmp_hsession;
}
AppIdHttpSession* AppIdSession::get_matching_http_session(int64_t stream_id) const
for (uint32_t stream_index=0; stream_index < api.hsessions.size(); stream_index++)
{
if(stream_id == api.hsessions[stream_index]->get_httpx_stream_id())
- return api.hsessions[stream_index];
+ return api.hsessions[stream_index].get();
}
return nullptr;
}
for (uint32_t stream_index=0; stream_index < hsessions.size(); stream_index++)
{
if(stream_id == hsessions[stream_index]->get_httpx_stream_id())
- return hsessions[stream_index];
+ return hsessions[stream_index].get();
}
return nullptr;
}
AppIdHttpSession* AppIdSessionApi::get_hsession(uint32_t stream_index) const
{
if (stream_index < hsessions.size())
- return hsessions[stream_index];
+ return hsessions[stream_index].get();
else
return nullptr;
}
bool finished : 1;
bool user_logged_in : 1;
} flags = {};
- std::vector<AppIdHttpSession*> hsessions;
+ std::vector<std::unique_ptr<AppIdHttpSession>> hsessions;
AppIdDnsSession* dsession = nullptr;
snort::SfIp initiator_ip;
ServiceAppDescriptor service;
void delete_all_http_sessions()
{
- for (auto hsession : hsessions)
- delete hsession;
hsessions.clear();
}
{
if (stream_index < api.hsessions.size())
{
- return api.hsessions[stream_index];
+ return api.hsessions[stream_index].get();
}
return nullptr;
}
void AppIdSession::delete_all_http_sessions()
{
- for (auto hsession : api.hsessions)
- delete hsession;
api.hsessions.clear();
}
AppIdHttpSession* AppIdSession::create_http_session(int64_t)
{
- AppIdHttpSession* hsession = new MockAppIdHttpSession(*this);
- AppidChangeBits change_bits;
+ auto hsession = std::make_unique<MockAppIdHttpSession>(*this);
+ auto tmp_hsession = hsession.get();
+ AppidChangeBits change_bits;
hsession->client.set_id(APPID_UT_ID);
hsession->client.set_version(APPID_UT_CLIENT_VERSION);
change_bits.set(APPID_CLIENT_INFO_BIT);
hsession->payload.set_id(APPID_UT_ID);
hsession->misc_app_id = APPID_UT_ID;
hsession->referred_payload_app_id = APPID_UT_ID;
- api.hsessions.push_back(hsession);
- return hsession;
+ api.hsessions.push_back(std::move(hsession));
+ return tmp_hsession;
}
AppIdHttpSession* AppIdSession::get_matching_http_session(int64_t stream_id) const
for (uint64_t stream_index=0; stream_index < api.hsessions.size(); stream_index++)
{
if (stream_id == api.hsessions[stream_index]->get_httpx_stream_id())
- return api.hsessions[stream_index];
+ return api.hsessions[stream_index].get();
}
return nullptr;
}