瀏覽代碼

bugfix: fixed the handling of uninitialized variables in dhcp-log & eye-statd

root 1 周之前
父節點
當前提交
1d0325d573
共有 2 個文件被更改,包括 12 次插入1 次删除
  1. 7 1
      scripts/dhcp-log.pl
  2. 5 0
      scripts/eye-statd.pl

+ 7 - 1
scripts/dhcp-log.pl

@@ -103,7 +103,13 @@ while (1) {
                 # Skip lines without valid event type
                 next unless $dhcp_event{'type'} && $dhcp_event{'type'} =~ /^(old|add|del)$/i;
 
-                wrlog($W_INFO,"Processing event: type='$dhcp_event{'type'}', MAC='$dhcp_event{'mac'}', IP='$dhcp_event{'ip'}', NAME='$dhcp_event{'hostname'}', client-id='$dhcp_event{'client_id'}', circuit_id='$dhcp_event{'decoded_circuit_id'}', remote_id='$dhcp_event{'$decoded_remote_id'}'");
+                wrlog($W_INFO, "Processing event: type=" . ($dhcp_event{'type'} // 'N/A') .
+                    ", MAC=" . ($dhcp_event{'mac'} // 'N/A') .
+                    ", IP=" . ($dhcp_event{'ip'} // 'N/A') .
+                    ", NAME=" . ($dhcp_event{'hostname'} // 'N/A') .
+                    ", client-id=" . ($dhcp_event{'client_id'} // 'N/A') .
+                    ", circuit_id=" . ($dhcp_event{'decoded_circuit_id'} // 'N/A') .
+                    ", remote_id=" . ($dhcp_event{'decoded_remote_id'} // 'N/A'));
 
                 # Suppress duplicate events within $mute_time window
                 if (exists $leases{$dhcp_event{'ip'}} && $leases{$dhcp_event{'ip'}}{type} eq $dhcp_event{'type'} && (time() - $leases{$dhcp_event{'ip'}}{last_time} <= $mute_time)) {

+ 5 - 0
scripts/eye-statd.pl

@@ -1,4 +1,5 @@
 #!/usr/bin/perl -w
+
 use utf8;
 use warnings;
 use Encode;
@@ -166,6 +167,10 @@ sub refresh_config {
     %wan_dev = ();
     %lan_dev = ();
     foreach my $row (@interfaces) {
+        next if (!$row);
+        next if (!exists $row->{device_id});
+        next if (!exists $row->{snmpin});
+        next if (!$row->{device_id} or !$row->{snmpin});
         if ($row->{interface_type}) {
             $wan_dev{$row->{device_id}}{$row->{snmpin}} = 1;
         } else {