return ip_protocol[(uint16_t)proto];
}
-void OdpContext::display_port_config()
-{
- bool first = true;
-
- for ( auto& i : tcp_port_only )
- if (tcp_port_only[i])
- {
- if (first)
- {
- LogMessage(" TCP Port-Only Services\n");
- first = false;
- }
- LogMessage(" %5u - %u\n", i, tcp_port_only[i]);
- }
-
- first = true;
- for ( auto& i : udp_port_only )
- if (udp_port_only[i])
- {
- if (first)
- {
- LogMessage(" UDP Port-Only Services\n");
- first = false;
- }
- LogMessage(" %5u - %u\n", i, udp_port_only[i]);
- }
-}
-
void OdpContext::add_af_indicator(AppId indicator, AppId forecast, AppId target)
{
if (AF_indicators.find(indicator) != AF_indicators.end())
void add_protocol_service_id(IpProtocol, AppId);
AppId get_port_service_id(IpProtocol, uint16_t);
AppId get_protocol_service_id(IpProtocol);
- void display_port_config();
void add_af_indicator(AppId, AppId, AppId);
private:
return nullptr;
}
-void* AppIdSession::remove_flow_data(unsigned id)
-{
- void* data = nullptr;
-
- AppIdFlowDataIter it = flow_data.find(id);
- if (it != flow_data.end())
- {
- data = it->second->fd_data;
- delete it->second;
- flow_data.erase(it);
- }
- return data;
-}
-
void AppIdSession::free_flow_data()
{
for (AppIdFlowDataIter it = flow_data.cbegin();
api.set_application_ids_service(service_id, change_bits);
}
-bool AppIdSession::is_ssl_session_decrypted() const
-{
- return get_session_flags(APPID_SESSION_DECRYPTED);
-}
-
void AppIdSession::reset_session_data(AppidChangeBits& change_bits)
{
delete_session_data();
change_bits.set(APPID_RESET_BIT);
}
-bool AppIdSession::is_payload_appid_set() const
-{
- return (api.payload.get_id() || tp_payload_app_id);
-}
-
void AppIdSession::clear_http_flags()
{
if (!get_session_flags(APPID_SESSION_SPDY_SESSION))
void* get_flow_data(unsigned id) const;
int add_flow_data(void* data, unsigned id, AppIdFreeFCN);
int add_flow_data_id(uint16_t port, ServiceDetector*);
- void* remove_flow_data(unsigned id);
void free_flow_data_by_id(unsigned id);
void free_flow_data_by_mask(unsigned mask);
void free_flow_data();
void set_ss_application_ids(AppId client, AppId payload, AppidChangeBits& change_bits);
void set_application_ids_service(AppId service_id, AppidChangeBits& change_bits);
- bool is_ssl_session_decrypted() const;
void examine_ssl_metadata(AppidChangeBits& change_bits);
void set_client_appid_data(AppId, AppidChangeBits& change_bits, char* version = nullptr);
void set_service_appid_data(AppId, AppidChangeBits& change_bits, char* version = nullptr);
void sync_with_snort_protocol_id(AppId, snort::Packet*);
void stop_service_inspection(snort::Packet*, AppidSessionDirection);
- bool is_payload_appid_set() const;
void clear_http_flags();
void clear_http_data();
void reset_session_data(AppidChangeBits& change_bits);
return node;
}
-static inline FwAvlNode* get_last(FwAvlNode* node)
-{
- while (node->right != nullptr)
- node = node->right;
- return node;
-}
-
FwAvlNode* fwAvlFirst(const FwAvlTree* tree)
{
if ((tree != nullptr) && (tree->root != nullptr))
return nullptr;
}
-FwAvlNode* fwAvlLast(const FwAvlTree* tree)
-{
- if ((tree != nullptr) && (tree->root != nullptr))
- return get_last(tree->root);
- else
- return nullptr;
-}
-
FwAvlNode* fwAvlNext(FwAvlNode* node)
{
}
}
-FwAvlNode* fwAvlPrev(FwAvlNode* node)
-{
- FwAvlNode* parent;
- FwAvlNode* tmp;
-
- if (node->left != nullptr)
- {
- tmp = get_first(node->left);
- }
- else
- {
- tmp = node;
- while ( ((parent = get_parent(tmp)) != nullptr) && (parent->left == tmp) )
- tmp = parent;
- }
- return tmp;
-}
-
static void rotate_left(FwAvlNode* node, FwAvlTree* tree)
{
FwAvlNode* p = node;
int fwAvlInsert(uint32_t key, void* data, FwAvlTree*);
void* fwAvlLookup(const uint32_t key, const FwAvlTree*);
FwAvlNode* fwAvlFirst(const FwAvlTree*);
-FwAvlNode* fwAvlLast(const FwAvlTree*);
FwAvlNode* fwAvlNext(FwAvlNode*);
-FwAvlNode* fwAvlPrev(FwAvlNode*);
FwQNode* fwAvlSerialize(FwAvlTree*);
void fwAvlDeleteTree(FwAvlTree*, void (* dataDelete)(void* data));
asd.is_decrypted(), true);
if (got_incompatible_service)
- sds->update_service_incompatiable(tmp_ip);
+ sds->update_service_incompatible(tmp_ip);
sds->set_service_id_failed(asd, tmp_ip);
}
}
}
-void ServiceDiscoveryState::update_service_incompatiable(const SfIp* ip)
+void ServiceDiscoveryState::update_service_incompatible(const SfIp* ip)
{
if ( invalid_client_count < STATE_ID_INVALID_CLIENT_THRESHOLD )
{
void set_service_id_valid(ServiceDetector* sd);
void set_service_id_failed(AppIdSession& asd, const snort::SfIp* client_ip,
unsigned invalid_delta = 0);
- void update_service_incompatiable(const snort::SfIp* ip);
+ void update_service_incompatible(const snort::SfIp* ip);
ServiceState get_state() const
{
}
void AppIdServiceState::check_reset(AppIdSession&, const SfIp*, uint16_t,
int16_t, uint16_t) {}
-int dns_host_scan_hostname(const uint8_t*, size_t, AppId*, AppId*)
-{
- return 0;
-}
bool do_tp_discovery(ThirdPartyAppIdContext& , AppIdSession&, IpProtocol,
Packet*, AppidSessionDirection&, AppidChangeBits&)
{
THREAD_LOCAL AppIdStats appid_stats;
THREAD_LOCAL AppIdDebug* appidDebug = nullptr;
void AppIdDebug::activate(const Flow*, const AppIdSession*, bool) { active = false; }
-AppId find_length_app_cache(const LengthKey&)
-{
- return APP_ID_NONE;
-}
void check_session_for_AF_indicator(Packet*, AppidSessionDirection, AppId, const OdpContext&) {}
AppId check_session_for_AF_forecast(AppIdSession&, Packet*, AppidSessionDirection, AppId)
{
{
}
-bool AppIdSession::is_payload_appid_set() const
-{
- return true;
-}
-
bool AppIdSession::is_tp_appid_available() const
{
return true;
return APPID_UT_ID;
}
-bool AppIdSession::is_ssl_session_decrypted() const
-{
- return is_session_decrypted;
-}
-
AppIdHttpSession* AppIdSession::create_http_session(uint32_t)
{
AppIdHttpSession* hsession = new MockAppIdHttpSession(*this);