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)); } } }
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
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 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 ?
uczestnicy (2)
-
Arkadiusz Chomicki
-
Tomasz Chiliński