[smb] из nix запросы на сервер типа _NOTIFY_CHANGE (куда копать?)

markyzz

Столкнулся с проблемой: нужно из линуха мониторить виндо-шары на тему появления/исчезновения файлов в дереве папок.
В лоб задача решается элементарно тем же libsmbclient-ом. Тупо заход на шару, пробег по всему, что есть, снимок в памяти того, что получилось и потом через секунду то же самое и найди_десять_отличий. Короче, "сортировка пузырьком"(TM). В общем, не вариант, ибо трафик и бла-бла-бла...
Порылся в куче либ, и понял... Варианты следующие:
1) продолжать искать либу, где есть что-то вроде подписки на изменения типа NT_TRANSACT_NOTIFY_CHANGE (вот хоть убей, в клиентских самба-сорцах для никсов не нашел такого =( для сервера - есть, для клиента что-то поленились писать, либо, я не нашел)
2) трахаться с самим самба-протоколом... то есть опуститься до UDP и составлять/читать битики по MSDN-инструкциям... Уже кажется каким-то пиздецом заранее.
Может, кто сталкивался с таким, или хотя б какие размышления есть на данную тему или кто мастер гугла (а я рукожоп) и сходу все найдет....В общем, ю-ар-велком и заранее спасибо!

vall

трахаться с самим самба-протоколом
если всё-же надумаешь тут есть простенькая реализация http://code.google.com/p/cifscp/
вероятно к ней приделать нужный запрос будет проще

markyzz

Ага, спасибо! вроде, все собралось во всяком случае :)
Сейчас пытаюсь придумать что-то на libsmb++.
Если не выйдет, буду возиться с cifscp....

Maurog

продолжать искать либу, где есть что-то вроде подписки на изменения типа NT_TRANSACT_NOTIFY_CHANGE
склоняюсь к тому, что ты такого ничего не найдешь
шары дрючатся тупым поллингом и да, это небыстро, особенно если много шар
кроме (или вместо) содержимого файла можно цепляться к метаинфе (типа дата модификации, размеру и тд)
Оставить комментарий
Имя или ник:
Комментарий: