Wszystkie instrukcje odnoszę do najnowszych CVS'owych wersji plikow.
Nie zamiescilem roznic w postaci diff'ow bo poszczegolne pliki roznia
sie jeszcze kilkoma rzeczami - to nie jedyna zmiana jakiej musialem
dokonac w LMS'ie.
Dobra jedziemy.
1. Zmiana definicji funkcji IsIpFree w pliku "lib/LMS.class.php"
function IsIPFree($ip,$ownerid=false)
{
return !($this->DB->GetOne('SELECT * FROM nodes WHERE ipaddr=inet_aton(?)' . ( is_numeric( $ownerid ) ? 'AND ownerid!=?' : ''), array($ip,( is_numeric( $ownerid ) ? $ownerid : FALSE))) ? TRUE : FALSE);
}
2. Usunięcie z klucza "ipaddr" w tabeli "nodes" atrybutu UNIQUE.
ALTER TABLE nodes DROP INDEX ipaddr, ADD INDEX ipaddr( ipaddr );
3. Zmiana w pliku "modules/nodeedit.php" linii:
if(!$LMS->IsIPFree($nodeedit['ipaddr']) && $LMS->GetNodeIPByID($nodeedit['id'])!=$nodeedit['ipaddr'])
na:
if(!$LMS->IsIPFree($nodeedit['ipaddr'], $nodeedit['ownerid'])&&$LMS->GetNodeIPByID($nodeedit['id'])!=$nodeedit['ipaddr'])
4. Zmiana w pliku "modules/nodeadd.php" linii:
elseif(!$LMS->IsIPFree($nodedata['ipaddr']))
na:
elseif(!$LMS->IsIPFree($nodedata['ipaddr'], $nodedata['ownerid']))
No i tyle :)
Te zmiany pozwola definiowac w obrebie jednego usera kilka hostow o
tym samym adresie IP.
btw. - skoro to jest taki "wannabe" fijeczer to moze niech "szefowie"
pomysla o zaimplementowaniu go na stale np jako opcja do wyboru w
lms.ini (tak jak w tej chwili "mac sharing")
--------------------
Łukasz Wojciechowski