LINUX.ORG.RU

Небольшие изменения в vsFTPd


0

0

Доброго времени суток!

Есть некоторая проблема: нужно перекомпилить vsftpd следующим образом -- чтобы после прохождения аутентификации, когда начинается запись пришедшего файлового потока в файловую систему сервера, этот файловый поток вместо файловой системы анализировался и немного изменялся. Вобщем: помогите плиз найти место в сорцах, где происходит эта самая запись в FS для дальнейшей работы.

Заранее спасибо! =)

> после прохождения аутентификации, когда начинается запись пришедшего файлового потока

Э, так таки сразу и "начинается запись пришедшего файлового потока"?
Ищи реализацию команды PUT

sdio ★★★★★
()
Ответ на: комментарий от MikeDM

Полностью согласен! Пока до конца не понял как же это работать будет, изложил ТЗ на пальцах, указав предполагаемое направление =)) Если ещё больше на пальцах, то нужно найти место в сорцах (скорее всего, это будет функция или несколько функций), где сервер записывает полученную инфу (файл) на диск, и заменить код этой функции на свой...

Есть пара нюансов: - процесс обмена "сообщенийми" клиента с сервером нужно оставить без изменения, чтобы для клиента это происходило как обычная загрузка файлов на сервер - если нет ф-ции, где присутствует весь уже собранный "файловый" поток приходящий на сервер (то что будет записано в FS), то можно будет сделать "сборку" всех полученных байт в памяти

Martiner
() автор топика
Ответ на: комментарий от Martiner

Как вариант можно не завязываться на vsftpd, а реализовать необходимое поведение на уровне FS. Смотреть в сторону FUSE.

Sectoid ★★★★★
()
Ответ на: комментарий от Martiner

Он имеет ввиду реализовать средствами FUSE некую надстройку над существующей файловой системой, которая будет специальным образом обрабатывать write(), мне кажеться так. Сам FTP-сервер как бы не причем

oc
()
Ответ на: комментарий от oc

>Он имеет ввиду реализовать средствами FUSE некую надстройку над существующей файловой системой, которая будет специальным образом обрабатывать write(), мне кажеться так. Сам FTP-сервер как бы не причем

Да, именно это я и имел в виду. Правда это возможно только в том случае, если топистартера устроит обработка файла частями, а не всего "скопом". Хотя и это можно обойти, например, если производить реальную запись файла (на низлежащую FS) по close().

Sectoid ★★★★★
()

Лучше попробовать прикрутить post-upload скрипт. Так логику изменения файла можно вынести за фтп-сервер (и написать, например, на sh + sed) -- более гибкое решение.

bvvv
()

Запись на FS - это write, или fwrite. Может быть writev или pwrite. Грепать умеем?

const86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.