Zdravím,
mám na pohled jednoduchý leč pro mě celkem zásadní problém ...
Využívám na v2.9.x upravený JALIho script pro FUP limitaci uživatelů. S postupem doby je tu ale již verze v3.x kde tento script nefunguje. Respektive funguje částečně.
Při testování jsem zjistil problém s podmínkami kdy pro Snížení je použita podmínka (nebudu se rozepisovat s proměnnými):
tato podmínka proběhne bez problémů a hodnota v QT parent $parent512 se omezí na $speedmin512 po překročení $limitmax512
:if (($par512=$parent512) && ($traf512>$limitmax512) && !($max512=$speedmin512)) do={AKCE}
ovšem obnovení rychlosti neproběhne a zůstane to vyset na té podmínce:
:if (($par512=$parent512) && ($traf512<$limitmax512) && ($max512=$speedmin512)) do={AKCE}
Logicky je druhá podmínka jasná a měla by proběhnout .. porovnával jsem si i proměnné výpisem do logu před provedením podmínky a hodnoty sedí tak jak mají $par512 se rovná $parent512, $traf512 je menší jak $limitmax512 a $max512 je rovno $speedmin512
Nicméně není podmínka provedena a script skončí .. cokoli dalšího za touto podmínkou už nefunguje
Neproběhne ani jednoduché
:if (($par512=$parent512) && ($traf512<$limitmax512)) do={AKCE}
Ovšem překvapivě proběhne takto s negací druhého porovnávání:
:if (($par512=$parent512) && !($traf512>$limitmax512)) do={AKCE}
jakmile ale přidám k tomuto poslední porovnávací pole opět přestane podmínka fungovat:
:if (($par512=$parent512) && !($traf512>$limitmax512) && ($max512=$speedmin512)) do={AKCE}
Dokonce nefunguje s else=
:if (($par512=$parent512) && !($traf512>$limitmax512) && ($max512=$speedmin512)) do={AKCE} else={AKCE}
A co třeba toto proč takový výstup? Hodnoty nastaveny tak aby byla podmínka splněna:
[admin@MikroTik] > :if (($a=$b) && ($c<$d)) do={:log info ahoj}
conditional is not boolean
[admin@MikroTik] >
Celkem už jsem pochopil že skriptování v trojkové verzi je více přísné na syntaxi jako třeba že nesmějí být mezery za jednotlivými řádky nebo že nesmí být mezera např do ={ .. toto v 2.9 pobrala bez problémů ...
Prosím tedy o rady a zkušenosti ...