Przeglądaj źródła

fixed "OID not increasing" again(

root 3 tygodni temu
rodzic
commit
67c0aa9592
1 zmienionych plików z 0 dodań i 11 usunięć
  1. 0 11
      scripts/eyelib/snmp.pm

+ 0 - 11
scripts/eyelib/snmp.pm

@@ -594,37 +594,31 @@ sub table_callback {
     while (@names) {
         $next = shift @names;
         $next = _normalize_oid($next);
-
         # Выход за пределы таблицы
         unless (oid_base_match($root_oid, $next)) {
             log_debug("OID $next outside of root $root_oid. Exiting.");
             return;
         }
-
         my $value = $list->{$next};
         unless (defined $value) {
             log_debug("endOfMibView at $next. Exiting.");
             return;
         }
-
         # Пропускаем дубликаты ВНУТРИ этого пакета
         if ($seen_in_batch->{$next}) {
             log_debug("Duplicate in batch: $next. Skipping.");
             next;
         }
         $seen_in_batch->{$next} = 1;
-
         # Пропускаем если УЖЕ есть в таблице (из предыдущих пакетов)
         if (exists $table->{$next}) {
             log_debug("Already in table: $next. Skipping.");
             next;
         }
-
         # Сохраняем
         $table->{$next} = $value;
         $processed_count++;
         log_debug("Stored OID $next = $value");
-
         # Обновляем last_oid для следующего запроса (максимальный из обработанных)
         if (!defined $last_oid || snmp_oid_compare($next, $last_oid) > 0) {
             $last_oid = $next;
@@ -658,25 +652,20 @@ sub oid_base_match {
 
 sub snmp_oid_compare {
     my ($oid1, $oid2) = @_;
-
     return 0  if !defined $oid1 && !defined $oid2;
     return 1  if !defined $oid2;
     return -1 if !defined $oid1;
-
     # Удаляем ведущую точку для единообразия
     $oid1 =~ s/^\.//;
     $oid2 =~ s/^\.//;
-
     my @a = split /\./, $oid1;
     my @b = split /\./, $oid2;
     my $len = @a < @b ? @a : @b;
-
     # Сравниваем покомпонентно как числа
     for (my $i = 0; $i < $len; $i++) {
         return -1 if $a[$i] < $b[$i];
         return 1  if $a[$i] > $b[$i];
     }
-
     # Если префиксы равны, сравниваем длину
     return @a <=> @b;
 }