w funkcji brakuje sprawdzania czy dane IP nie jest brama. wysylam poprawiona funkcje function NetworkCompress($id,$shift=0) { $nodes = array(); $network = $this->GetNetworkRecord($id); $address = $network['addresslong'] + $shift; $broadcast = $network['addresslong'] + $network['size']; foreach($network['nodes']['id'] as $idx => $value) if($value) $nodes[] = $network['nodes']['addresslong'][$idx]; rsort($nodes); for($i = $address+1; $i < $broadcast; $i++) { if(!sizeof($nodes)) break; $ip = array_pop($nodes); if($i==$ip or $i==ip2long($network['gateway'])) continue; else { if(!$this->DB->Execute('UPDATE nodes SET ipaddr=? WHERE ipaddr=?', array($i,$ip))) $this->DB->Execute('UPDATE nodes SET ipaddr_pub=? WHERE ipaddr_pub=?', array($i,$ip)); } } } -- Arkadiusz Chomicki Wladyslawowo !DSPAM:48849ee8291448362916074!
On Mon, 21 Jul 2008 16:36:23 +0200, Arkadiusz Chomicki wrote
w funkcji brakuje sprawdzania czy dane IP nie jest brama. wysylam poprawiona funkcje
Jak byś jeszcze napisał, której wersji LMS dotyczy modyfikacja oraz przesłał łatę do nałożenia na wersję CVS to byłoby super.
function NetworkCompress($id,$shift=0) { $nodes = array(); $network = $this->GetNetworkRecord($id); $address = $network['addresslong'] + $shift; $broadcast = $network['addresslong'] + $network['size'];
foreach($network['nodes']['id'] as $idx => $value) if($value) $nodes[] = $network['nodes']['addresslong'][$idx]; rsort($nodes);
for($i = $address+1; $i < $broadcast; $i++) { if(!sizeof($nodes)) break; $ip = array_pop($nodes); if($i==$ip or $i==ip2long($network['gateway'])) continue; else { if(!$this->DB->Execute('UPDATE nodes SET ipaddr=? WHERE ipaddr=?', array($i,$ip))) $this->DB->Execute('UPDATE nodes SET ipaddr_pub=? WHERE ipaddr_pub=?', array($i,$ip)); } } }
-- Arkadiusz Chomicki Wladyslawowo
Pozdrawiam.
Blad dotyczy wersji LMS 1.10.2 $Id: LMS.class.php,v 1.868.2.11 2007/11/14 08:19:04 alec Exp $ proponowana zmiana: --- lib/LMS.class.php.orig 2008-07-21 16:57:29.509132188 +0200 +++ lib/LMS.class.php 2008-07-21 16:56:17.997562342 +0200 @@ -2416,7 +2416,7 @@ { if(!sizeof($nodes)) break; $ip = array_pop($nodes); - if($i==$ip) + if($i==$ip or $i==ip2long($network['gateway'])) continue; else { Tomasz Chiliński pisze:
On Mon, 21 Jul 2008 16:36:23 +0200, Arkadiusz Chomicki wrote
w funkcji brakuje sprawdzania czy dane IP nie jest brama. wysylam poprawiona funkcje
Jak byś jeszcze napisał, której wersji LMS dotyczy modyfikacja oraz przesłał łatę do nałożenia na wersję CVS to byłoby super.
function NetworkCompress($id,$shift=0) { $nodes = array(); $network = $this->GetNetworkRecord($id); $address = $network['addresslong'] + $shift; $broadcast = $network['addresslong'] + $network['size'];
foreach($network['nodes']['id'] as $idx => $value) if($value) $nodes[] = $network['nodes']['addresslong'][$idx]; rsort($nodes);
for($i = $address+1; $i < $broadcast; $i++) { if(!sizeof($nodes)) break; $ip = array_pop($nodes); if($i==$ip or $i==ip2long($network['gateway'])) continue; else { if(!$this->DB->Execute('UPDATE nodes SET ipaddr=? WHERE ipaddr=?', array($i,$ip))) $this->DB->Execute('UPDATE nodes SET ipaddr_pub=? WHERE ipaddr_pub=?', array($i,$ip)); } } }
-- Arkadiusz Chomicki Wladyslawowo
Pozdrawiam.
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
-- Arkadiusz Chomicki Wladyslawowo !DSPAM:4884a5f5297701106414047! --- lib/LMS.class.php.orig 2008-07-21 16:57:29.509132188 +0200 +++ lib/LMS.class.php 2008-07-21 16:56:17.997562342 +0200 @@ -2416,7 +2416,7 @@ { if(!sizeof($nodes)) break; $ip = array_pop($nodes); - if($i==$ip) + if($i==$ip or $i==ip2long($network['gateway'])) continue; else { !DSPAM:4884a5f5297701106414047!
On Mon, 21 Jul 2008 17:06:28 +0200, Arkadiusz Chomicki wrote
Blad dotyczy wersji LMS 1.10.2 $Id: LMS.class.php,v 1.868.2.11 2007/11/14 08:19:04 alec Exp $
proponowana zmiana: --- lib/LMS.class.php.orig 2008-07-21 16:57:29.509132188 +0200 +++ lib/LMS.class.php 2008-07-21 16:56:17.997562342 +0200 @@ -2416,7 +2416,7 @@ { if(!sizeof($nodes)) break; $ip = array_pop($nodes); - if($i==$ip) + if($i==$ip or $i==ip2long($network['gateway'])) continue; else {
Ok, dzięki! Widzę, że dotyczy również wersji bieżącej z CVS. Nanoszę zmianę. Pozdrawiam.
Tomasz Chiliński pisze:
On Mon, 21 Jul 2008 17:06:28 +0200, Arkadiusz Chomicki wrote
Blad dotyczy wersji LMS 1.10.2 $Id: LMS.class.php,v 1.868.2.11 2007/11/14 08:19:04 alec Exp $
proponowana zmiana: --- lib/LMS.class.php.orig 2008-07-21 16:57:29.509132188 +0200 +++ lib/LMS.class.php 2008-07-21 16:56:17.997562342 +0200 @@ -2416,7 +2416,7 @@ { if(!sizeof($nodes)) break; $ip = array_pop($nodes); - if($i==$ip) + if($i==$ip or $i==ip2long($network['gateway'])) continue; else {
Ok, dzięki! Widzę, że dotyczy również wersji bieżącej z CVS. Nanoszę zmianę.
zastanawiam sie czy nie powinno sie jeszcze sprawdzać serwera dns, wins... Może przecież sie zdarzyć tak, ze w tej samej adresacji będą serwery tych usług. -- Arkadiusz Chomicki Władysławowo !DSPAM:4884b78f314325156419305!
Arkadiusz Chomicki pisze:
Tomasz Chiliński pisze:
On Mon, 21 Jul 2008 17:06:28 +0200, Arkadiusz Chomicki wrote
Blad dotyczy wersji LMS 1.10.2 $Id: LMS.class.php,v 1.868.2.11 2007/11/14 08:19:04 alec Exp $
proponowana zmiana: --- lib/LMS.class.php.orig 2008-07-21 16:57:29.509132188 +0200 +++ lib/LMS.class.php 2008-07-21 16:56:17.997562342 +0200 @@ -2416,7 +2416,7 @@ { if(!sizeof($nodes)) break; $ip = array_pop($nodes); - if($i==$ip) + if($i==$ip or $i==ip2long($network['gateway'])) continue; else { Ok, dzięki! Widzę, że dotyczy również wersji bieżącej z CVS. Nanoszę zmianę.
zastanawiam sie czy nie powinno sie jeszcze sprawdzać serwera dns, wins... Może przecież sie zdarzyć tak, ze w tej samej adresacji będą serwery tych usług.
Może jeszcze nawet nie powinien wchodzić w zakres dhcp, chyba ze na wyraźne życzenie ? -- Arkadiusz Chomicki Wladyslawowo !DSPAM:4884b847315691436614547!
uczestnicy (2)
-
Arkadiusz Chomicki -
Tomasz Chiliński