Приветствую всех, коллеги! Столкнулся с такой проблемой: в patch-o-matic-ng почему-то перестали поддерживать модуль ipt_time. Хотя, в основной сборке iptables 1.3.7 он уже есть как стандартное расширение (libipt_time.c). Я нашел реализацию модуля ipt_time для ядра в старых снапшотах patch-o-matic-ng, модуль без особых проблем собирается в ядре любой версии 2.6.x.x, которые я пробовал собирать. Но, реально он работает только с ядрами 2.6.16.x, если брать ядро 2.6.20.x, то происходит непонятное. Модуль собирается, загружается, но если дать команду типа iptables -A FORWARD -m time --timestart 8:00 --timestop 18:00 -j RETURN, то происходит ошибка Invalid argument, а ядро выдает следующее сообщение: ip_tables: time match: invalid size 0 != 24 Трассировка выдает, что вылет происходит на вызове setsockopt. Я прошел дебаггером iptables и выяснил, что память, в которой формируется правило, освобождается ДО вызова setsockopt(), приводящего к вылету и сообщению ядра. Однако, с ядром 2.6.16.27 все точно так же, но вылета не происходит, и все работает, в т.ч. действует добавленное правило. Из этого я сделал вывод, что в ядрах больше 2.6.16 в модулях netfilter что-то в корне поменялось... Никто не знает, с какой стороны копать, что переписывать в модуле ipt_time, чтобы он стал работоспособен в версиях 2.6.20? Или где почитать в чем, блин, разница между netfilter в 2.6.16 и 2.6.20? А то на netfilter.org вообще ничего не понятно, ни где искать, ни чего делать... Всем заранее огромное спасибо за помощь!
|