Страница 1 из 1

ftp

Добавлено: 2008-08-28 20:54:04
DeNn
Вот появился такой вопрос: когда в папке есть вложенная папка, то обновления вложенной папки не указываются как обновления родительской папки. Можно ли как то указывать, что б он обновлял дату и на ней? ФТП сервер proftpd

Re: ftp

Добавлено: 2008-08-28 21:17:45
zg
man touch ?

Re: ftp

Добавлено: 2008-08-28 22:18:46
DeNn
Так это ж для файла?

Re: ftp

Добавлено: 2008-08-28 22:41:35
Alex Keda
в юниксах - всё файлы.

Re: ftp

Добавлено: 2008-08-29 0:12:18
DeNn
Так будьте добры подскажите как это сделать?

Re: ftp

Добавлено: 2008-08-29 0:34:37
Alex Keda
ну, если способ и есть - то это хак.
ибо вышестоящая директория при этом не меняется - значит дата меняться и не должна

Re: ftp

Добавлено: 2008-08-29 9:02:45
zg
DeNn писал(а):Так будьте добры подскажите как это сделать?
если C знаешь, то нужно слегка подправить исходники, или лучше патч написать :smile:

для fsftpd я как-то писал патч, чтобы логи на удаление файлов велись, поковырялся день и всё заработало, сложного особо ничего нет.

Re: ftp

Добавлено: 2008-08-29 12:08:47
zingel
DeNn писал(а):Вот появился такой вопрос: когда в папке есть вложенная папка, то обновления вложенной папки не указываются как обновления родительской папки. Можно ли как то указывать, что б он обновлял дату и на ней? ФТП сервер proftpd
с чего такой вывод, родительский каталог также юзает stat() && fstat() как и дочерний, это у тебя так потому, что группы на папки разные =) Вот кусок из dirent.h

Код: Выделить всё

/* structure describing an open directory. */
typedef struct _dirdesc {
        int     dd_fd;          /* file descriptor associated with directory */
        long    dd_loc;         /* offset in current buffer */
        long    dd_size;        /* amount of data returned by getdirentries */
        char    *dd_buf;        /* data buffer */
        int     dd_len;         /* size of data buffer */
        long    dd_seek;        /* magic cookie returned by getdirentries */
        long    dd_rewind;      /* magic cookie for rewinding */
        int     dd_flags;       /* flags for readdir */
        void    *dd_lock;       /* hack to avoid including <pthread.h> */
        struct _telldir *dd_td; /* telldir position recording */
} DIR;
проверь группы у родительских папок