소스 검색

optimize lock sub

Roman Dmitriev 2 년 전
부모
커밋
e04246b6f8
2개의 변경된 파일5개의 추가작업 그리고 9개의 파일을 삭제
  1. 2 0
      html/admin/devices/portmactable.php
  2. 3 9
      html/inc/common.php

+ 2 - 0
html/admin/devices/portmactable.php

@@ -104,5 +104,7 @@ while (list ($fmac, $f_last) = mysqli_fetch_array($maclist)) {
     print "</tr>";
 }
 
+print "</table>\n";
+
 require_once($_SERVER['DOCUMENT_ROOT'] . "/inc/footer.small.php");
 ?>

+ 3 - 9
html/inc/common.php

@@ -2208,23 +2208,17 @@ function apply_device_lock ($db, $device_id, $iteration =0) {
     $iteration++;
     if ($iteration>2) { return false; }
     $dev = get_record_sql($db,'SELECT discovery_locked,UNIX_TIMESTAMP(locked_timestamp) as u_locked_timestamp FROM devices WHERE id='.$device_id.' AND discovery_locked > 0');
-    if (empty($dev)) { return true; }
-    if ($dev['discovery_locked'] ===0) { 
+    if (empty($dev) or empty($dev['u_locked_timestamp'])) { 
         LOG_DEBUG($db,"Snmp discovery lock not found. Set and discovery.");
         return set_lock_discovery($db,$device_id); 
         }
-    //if timestamp undefined, set and return
-    if (empty($dev['u_locked_timestamp'])) { 
-        LOG_DEBUG($db,"Snmp discovery lock timestamp undefined. Set and discovery.");
-        return set_lock_discovery($db,$device_id); 
-        }
     //wait for discovery
     $now = time();
     $wait_time = ($dev['u_locked_timestamp'] + SNMP_LOCK_TIMEOUT) - $now;
     LOG_DEBUG($db,"Check snmp lock for device id: " . $device_id . ". Lock timestamp: ".$dev['u_locked_timestamp'].", now: ".$now);
     if ($wait_time<0) {
-        LOG_DEBUG($db,"The lock is expired. Set new lock.");
-        return set_lock_discovery($db,$device_id); 
+        LOG_DEBUG($db,"The lock is already expired. Set new lock.");
+        return set_lock_discovery($db,$device_id);
         }
     LOG_INFO($db,"Snmp discovery lock for device id: $device_id found! Need wait ".$wait_time." sec.");
     sleep($wait_time);