RSS Feed

LMS i parser.so

Marzec 25, 2011 by 0verlord

Dzisiaj będzie o LMSie i jednej ciekawostce, którą trafiłem ostatnio.

Demon LMSa (lmsd) ma taki ciekawy moduł, nazywa się parser.so. Przy odrobinie samozaparcia i przeczytania dokumentacji, da się generować z bazy różności przy wykorzystaniu czegoś, co się nazywa Tscript. Język jak język, trzeba się nauczyć.

No i przy okazji upgrade z 1.10 do 1.11, odziedziczyłem generatory adresów mac z bazy. Wyglądały mrocznie, joiny, left joiny, inner joiny, ograniczenia do networków zaszyte w selectach, ogólnie porażka. Nie wiem, czy w 1.10 nie działały takie rzeczy jak lms-makemacs, ale jeżeli tak, to ten, kto klikał LMSa wtedy ewidentnie chciał się popisać umiejętnością składania nikomu do niczego nie potrzebnych zapytań SQLa. Cóż, można i tak.

Chwilowo musiałem wykorzystać tamte skrypty, więc trzeba było wygenerować listę maców do skryptu odpalającego regułki filtrów.
Ostatecznie zapytanie wyglądało tak:

SELECT INET_NTOA(ipaddr) AS ip, mac, name FROM macs LEFT JOIN nodes ON nodeid = nodes.id

LMSd generował pusty plik, a debug mówił, że się wydupca na linijce z zapytaniem. Usuwając ‚AS ip’ pomagał o tyle, że zapytanie nie pluło błędem, natomiast kolumna nie nazywała się IP, więc dalsza część skryptu jej nie łapała.

Szybki debug innych LMsów pokazał, że mam podobne zapytania z klauzulami AS cośtam, tyle, że nie są one na pierwszej pozycji zaraz za selectem. No to zmieniłem zapytanie na
SELECT mac, INET_NTOA(ipaddr) AS ip

i wygenerowało mi przepiękny plik.
Parser.so ty wuju ;->


Brak komentarzy »

No comments yet.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

sześćdziesiąt dziewięć + = siedemdziesiąt trzy