node@satfilm.net.pl wrote:
ponizej skrypt ktore teraz mecze, problem mam z utworzeniem oraz wykorzystaniem zmiennej ISPPPOE (1 lub 0 gdy host nalezy do grupy PPPoE). Prosze o pomoc w optymalizacji i naprawieniem kodu lub drobna wskazowke na co zwrocic uwage...
{if (fileexists("/etc/firewall/nat-hosts")) deletefile("/etc/firewall/nat-hosts"); /if; }NAT_INTERNAL_NET="{ if (number(NODES)) for (i=0; i<number(NODES); i++) ISPPPOE = SELECT IF((SELECT nodegroupid FROM nodegroupassignments WHERE nodegroupid=(SELECT id FROM nodegroups WHERE name = 'PPPoE') AND nodeid=NODES[i].ip)>0,'1','0') AS result; if (ISPPPOE==1)
SELECT zwraca tablicę, więc musisz się do niej odwoływać tak jak do NODES, czyli ISPPPOE[0].result. Natomiast ja bym ci radził przerobić zapytanie o NODES tak, żeby zawierało już zmienną ispppoe, będzie dużo szybciej, niż pytać o każdego hosta z osobna.
czy da sie to zrobic tak by wszelkie modyfikacje byly zawarte we frontendzie? zadnego zmieniania samych plikow lms, tak aby uniknac przypadkowego nadpisania przy aktualizacji lms. Chodzilo o to aby w tresci skryptu utworzyc nowe zapytanie dla NODES?
Kolejna sprawa to to, że zmienną w zapytaniu powinieneś objąć w klamry: ...nodeid={NODES[i].id}...
czy mozna wiec zagniezdzac nawiasy klamrowe? czy trzeba wczesniej zamknac.
jak ponizsze zdebugowac, teraz po prostu nie generuje pliku? ------------------------------- {if (fileexists("/etc/firewall/nat-hosts-test")) deletefile("/etc/firewall/nat-hosts-test"); /if; }\ NAT_INTERNAL_NET="\ {if (number(NODES)) for (i=0; i<number(NODES); i++) ISPPPOE = SELECT IF((SELECT nodegroupid FROM nodegroupassignments WHERE nodegroupid=(SELECT id FROM nodegroups WHERE name = 'PPPoE') AND nodeid={NODES[i].id})>0,'1','0') AS result; if (ISPPPOE[0].result==1) if (number(NODES[i].access) && number(NODES[i].ownerid)!=0)}{NODES[i].ip_pub}{if (i<number(NODES)-1)} {/if; /if; else if (number(NODES[i].access) && number(NODES[i].ownerid)!=0)}{NODES[i].ip}{if (i<number(NODES)-1)} {/if; /if; /if /for; /if}"\n
-------------------------------
!DSPAM:49a7dfe384099031758699!