1
0
mirror of https://github.com/pavel-odintsov/fastnetmon synced 2024-11-23 17:32:59 +01:00

Speed up network lookup

This commit is contained in:
Pavel Odintsov 2013-11-14 15:29:10 +04:00
parent d6e1a92cc4
commit 1efd8fce10

@ -5,7 +5,7 @@
3) Перенести список бана в структуру черного списка
4) Перейти на cap_admin при работе от штатного юзера
5) Оптимизировать belongs_to_network на префиксном дереве
6) Не создавайте больших списков айпи сетей! Будет тормозить!
6) Не создавайте больших списков сетей! Будет тормозить!
*/
@ -200,7 +200,7 @@ void pcap_main_loop(char* dev);
void ulog_main_loop();
void signal_handler(int signal_number);
uint32_t convert_cidr_to_binary_netmask(int cidr);
bool belongs_to_networks(vector<subnet> networks_list, uint32_t ip);
bool belongs_to_networks(vector<subnet>& networks_list, uint32_t ip);
// Function for sorting Vector of pairs
bool compare_function_by_in_packets (pair_of_map_elements a, pair_of_map_elements b) {
@ -496,7 +496,7 @@ uint32_t convert_cidr_to_binary_netmask(int cidr) {
return htonl(binary_netmask);
}
bool belongs_to_networks(vector<subnet> networks_list, uint32_t ip) {
bool belongs_to_networks(vector<subnet>& networks_list, uint32_t ip) {
for( vector<subnet>::iterator ii=networks_list.begin(); ii!=networks_list.end(); ++ii) {
if ( (ip & (*ii).second) == ((*ii).first & (*ii).second) ) {