>Ещё раз и медленно. Попробуйте подумать над этим.
>
>cat somefile > /proc/net/ipt_recent/bad_guys отправляет в /proc/net/ipt_recent/bad_guys именно IP и ничего более. Все остальные данные рядом с IP во внутреннюю таблицу помещаются кодом, ответственным именно за ИНТЕРФЕЙС.
>Интерфейс между внешним миром и внутренними структурами. неа. За интерфейс тут отвечает VFS :)
open(2)
read(2)
write(2)
close(2)
Вот ЭТОТ интерфейс тут использован. Т.е. обычный, файловый.
>В случае же отсутствия интерфейса, в случае с cat,
не обижайся, плз, но я ж говорил: "деревня"...
ЛЮБОЕ взаимодействие происходит через какой-нибудь интерфейс :)
>никаких других данных
>в таблицу, кроме IP помещаться не должно.
Если модуль преследует собой цель хранить лишь ИП адреса - то да, не должно.
Но у нас модуль, который хранит их и предоставляет еще некий функционал.
(если не нравяться timestamps - их количество можно свести к минимуму - 1)
>Или мы будем должны помещать IP, ВРЕМЯ, etc. Что и будет называться "прямой доступ к
>внутренним структурам", без интерфейса.
без каментов про "без интерфейса"...
Также не понял связи между интерфейсом и набором помещаемых данных в список.
>В связи с этим, выглядит как минимум странно фраза "iptables/recent как раз
>это и есть, самое простое, без спец интерфейса ;) "
VFS - более чем _не_ специальный интерфейс. Без него не бывает линуха (говорим о современных версиях). За сим и вещаю, что взаимодействие источника списка ИПшников
(прога cat) и ядра происходит без специального интерфейса (но, безусловно, _с_ интерфейсом!!!), а через VFSные вызовы open()/RW()/close()
ipfw же работает с ядром при помощи своего _СПЕЦИАЛЬНОГО_ набора ioctl() запросов.
Выходит, что с ipt_recent таблицами может работать практически любой процесс, способный
открывать/писать/читать файл, а с ipfw таблицами лишь специально "обученные" проги
(ну, вроде этого же ipfw. немного тавталогии...)
Доступно?
>ИМХО бардак в голове.
Ну, бардак вытряхивай и читай маны. Они рулят.
>Вместо "простой интерфейс" говорят "без спец интерфейса".
Ну, не сказал бы, что ioctl(IP_FW_<GET/ADD>,... ) - это "сложный" интерфейс :)
он то простой. Тока вот и VFS интерфейс тоже весьма прост.
Но. Суть _именно_ в том, что один из них _специальный_ (т.е. только для каких-то вещей),
а другой - нет, т.е. справедливо сипользовать выражение "без специального интерфейса",
говоря о работе с ipt_recent.
А это доступно?
>Отсюда и спор раздули.
Как видишь, не совсем...