Такая вот задачка. Необходимо в freeBSD (старое ядро, оч древнее) реагировать на все сетевые запросы, желательно связанные с пересылкой данных.
Нужно это для того чтобы программно зажигать и гасить лампочку (не на сетевой карте) индикации работы сети.
Как сделано...
Есть загружаемый драйвер который может вкл или выкл лампочку. В нем перехватываются вызовы send() и recv() (sendto, recvfrom) — вроде работает, но многие программы (ftp, rcp...) этими вызовами не пользуются. Тогда я попробывал перехватывать read(), write(), ioctl() с проверкой являются ли дескрипторы в этих вызовах сокетами.Но сокет не обязательно имеет отношение тока к сети, поэтому в Х моя лампочка моргает как сумашедшая.
Стека драйверов (как в виндах) в этих freeBSD нет, поэтому стандартно подцепиться к драйверу сетевой карты не получается, а менять код ядра или драйвера сетевой карты незя.
Может кто знает как можно решить такую проблему. Вероятно можно сделать демона, который сможет работать напрямую с драйвером сетевой карты и с моим драйвером.