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. Kolejna sprawa to to, że zmienną w zapytaniu powinieneś objąć w klamry: ...nodeid={NODES[i].id}...