Всем привет!
Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make install лезут ошибки.
Для proftpd-1.3.0rc3 описано в http://www.pc-info.in.ua/content/view/1409/288/
Но для 1.3.1rc2 не проходит.
HELP...
>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>install лезут ошибки.
а если руками установить?\^P^/
>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>install лезут ошибки.
>а если руками установить?
>
>\^P^/
netio ----->
--- netio.c 2006-11-01 09:35:13.000000000 +0700
+++ netio.c2 2007-06-28 00:36:18.000000000 +0800
@@ -523,9 +523,12 @@
return -1;
}+extern char* local2remote(char* local);
+
int pr_netio_printf(pr_netio_stream_t *nstrm, const char *fmt, ...) {
va_list msg;
char buf[PR_RESPONSE_BUFFER_SIZE] = {'\0'};
+ char* p;if (!nstrm) {
errno = EINVAL;
@@ -537,6 +540,13 @@
va_end(msg);
buf[sizeof(buf)-1] = '\0';+ if (buf[0]) {
+ p = local2remote(buf);
+ if (p) {
+ strcpy(buf, p); free(p);
+ }
+ }
+
return pr_netio_write(nstrm, buf, strlen(buf));
}<-----------
mod_ls ----->
--- mod_ls.c 2006-12-16 05:25:31.000000000 +0700
+++ mod_ls.c2 2007-06-28 00:43:53.000000000 +0800
@@ -244,12 +244,15 @@
return res;
}+extern char* local2remote(char*);
+
/* sendline() now has an internal buffer, to help speed up LIST output. */
static int sendline(int flags, char *fmt, ...) {
static char listbuf[PR_TUNABLE_BUFFER_SIZE] = {'\0'};
va_list msg;
char buf[PR_TUNABLE_BUFFER_SIZE+1] = {'\0'};
int res = 0;
+ char* buf2;if (flags & LS_SENDLINE_FL_FLUSH) {
res = pr_data_xfer(listbuf, strlen(listbuf));
@@ -268,6 +271,13 @@buf[sizeof(buf)-1] = '\0';
+ if (buf[0]) {
+ buf2 = local2remote(buf);
+ if (buf2) {
+ strcpy(buf, buf2); free(buf2);
+ }
+ }
+
/* If buf won't fit completely into listbuf, flush listbuf */
if (strlen(buf) >= (sizeof(listbuf) - strlen(listbuf))) {
res = pr_data_xfer(listbuf, strlen(listbuf));
<-----------
>>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>>install лезут ошибки.В портах FreeBSD есть новый 1.3.1rc3
В конфиг порта включить:
[ ] CYRFIX Use patch for fix cyrillic encoding
[ ] CODECONV Use charset conversion (mod_codeconv)И все.
>>>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>>>install лезут ошибки.
>
>В портах FreeBSD есть новый 1.3.1rc3
>В конфиг порта включить:
>[ ] CYRFIX Use patch for fix cyrillic encoding
>[ ] CODECONV Use charset conversion (mod_codeconv)
>
>И все.
Обновил дерево портов. Включил эти опции. В конфиге прописал
CharsetLocal KOI8-R
CharsetRemote CP1251
Но не работает перекодировка почему-то. Может еще что нужно?
>>>>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>>>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>>>>install лезут ошибки.
>>
>>В портах FreeBSD есть новый 1.3.1rc3
>>В конфиг порта включить:
>>[ ] CYRFIX Use patch for fix cyrillic encoding
>>[ ] CODECONV Use charset conversion (mod_codeconv)
>>
>>И все.
>
>
>Обновил дерево портов. Включил эти опции. В конфиге прописал
>CharsetLocal KOI8-R
>CharsetRemote CP1251
>Но не работает перекодировка почему-то. Может еще что нужно?Вопрос снят!
CharsetLocal KOI8-R
CharsetRemote CP1251
Был прописан в глобальной секции.
Прописал в VirtualHost и все пучком
Спасибо за помощь!!!
если я с под unix захожу на ftp. Моя локальная кодировка KOI8-R. Я отправляю файл на сервер, он думает что я посылаю в 1251 и делает переконвертацию. В итоге когда виндовый клиент заходит на сервер он видит крякозябры.
>если я с под unix захожу на ftp. Моя локальная кодировка KOI8-R.
>Я отправляю файл на сервер, он думает что я посылаю в
>1251 и делает переконвертацию. В итоге когда виндовый клиент заходит на
>сервер он видит крякозябры.Можно описать класами пользователей и забить туда какую кодировку им использовать динамического определения от клиента я пока не встречал такшто приходится прописывать на подсети либо на отдельные машины
>>>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>>>install лезут ошибки.
>
>В портах FreeBSD есть новый 1.3.1rc3
>В конфиг порта включить:
>[ ] CYRFIX Use patch for fix cyrillic encoding
>[ ] CODECONV Use charset conversion (mod_codeconv)
>
>И все.В proftpd 1.3.1.r3_4
[ ] CODECONV Use charset conversion (mod_codeconv)
данная функция отсутствует Ниужель придётся в ручную собирать всё? или откатываться? ктонить знает решение проблемки? как я понял патч удлили из за несовместимости с UTF8 новыми замарочками хотя возможно я и ошибаюсь
>[оверквотинг удален]
>>
>>И все.
>
>В proftpd 1.3.1.r3_4
>
>[ ] CODECONV Use charset conversion (mod_codeconv)
>
>данная функция отсутствует Ниужель придётся в ручную собирать всё? или откатываться? ктонить
>знает решение проблемки? как я понял патч удлили из за несовместимости
>с UTF8 новыми замарочками хотя возможно я и ошибаюсьВнимание (для гугла и прочих) - модуля CYRFIX больше не существует, вместо него CODECONV (если порты обновлены конечно).
Если кого-то интересуют подробности, то вот:
beech 2008-04-02 01:15:47 UTC
FreeBSD ports repository
Modified files:
ftp/proftpd Makefile
ftp/proftpd/files extra-patch-mod-codeconv
Removed files:
ftp/proftpd/files extra-patch-cyrillic-fix-netio.c
Log:
- Remove cyrillic-fix-netio.c (handled by CODECONV)
- Bump portrevisionPR: ports/122355
Submitted by: Alex KedaRevision Changes Path
1.132 +1 -6 ports/ftp/proftpd/Makefile
1.2 +0 -50 ports/ftp/proftpd/files/extra-patch-cyrillic-fix-netio.c (dead)
1.5 +1 -131 ports/ftp/proftpd/files/extra-patch-mod-codeconv
>[оверквотинг удален]
>+ if (buf2) {
>+ strcpy(buf, buf2); free(buf2);
>+ }
>+ }
>+
> /* If buf won't fit completely into listbuf, flush
>listbuf */
> if (strlen(buf) >= (sizeof(listbuf) - strlen(listbuf))) {
> res = pr_data_xfer(listbuf, strlen(listbuf));
><-----------по-видимому он патчит файл src/netio.c
кидай этат патч прям в эту папочку с netio.c
даю ему команду patch -p0 < patch_file а он выдает ошибку:patch: **** malformed patch at line 6: }
Далее открываю патч, смотрю на 6 строчку и ставлю передней пробел, снова патчу и получаю следующую ошибку:
patch: **** malformed patch at line 10: int pr_netio_printf(pr_netio_stream_t *nstrm, const char *fmt, ...) {Как с его все-таки пропатчить? proftpd-1.3.1rc2
>[оверквотинг удален]
>даю ему команду patch -p0 < patch_file а он выдает ошибку:
>
>patch: **** malformed patch at line 6: }
>
>Далее открываю патч, смотрю на 6 строчку и ставлю передней пробел, снова
>патчу и получаю следующую ошибку:
>patch: **** malformed patch at line 10: int pr_netio_printf(pr_netio_stream_t *nstrm, const char
>*fmt, ...) {
>
>Как с его все-таки пропатчить? proftpd-1.3.1rc2Никто так и не знает как решить проблему?
>В портах FreeBSD есть новый 1.3.1rc3
>В конфиг порта включить:
>[ ] CYRFIX Use patch for fix cyrillic encoding
>[ ] CODECONV Use charset conversion (mod_codeconv)А где новый порт то, обновзяю дерево - обновляется только до 1.3.1rc2
на freebsd.org/ports тоже он proftpd-1.3.1_2
http://www.freebsd.org/cgi/ports.cgi?query=proftpd&stype=allВсе патчи перепробывал - не собирается
>[оверквотинг удален]
>>В конфиг порта включить:
>>[ ] CYRFIX Use patch for fix cyrillic encoding
>>[ ] CODECONV Use charset conversion (mod_codeconv)
>
>А где новый порт то, обновзяю дерево - обновляется только до 1.3.1rc2
>
>на freebsd.org/ports тоже он proftpd-1.3.1_2
>http://www.freebsd.org/cgi/ports.cgi?query=proftpd&stype=all
>
>Все патчи перепробывал - не собираетсяНа lissyara.su лежит порт для сборки с поддержкой конвертации.
>[оверквотинг удален]
>>>[ ] CODECONV Use charset conversion (mod_codeconv)
>>
>>А где новый порт то, обновзяю дерево - обновляется только до 1.3.1rc2
>>
>>на freebsd.org/ports тоже он proftpd-1.3.1_2
>>http://www.freebsd.org/cgi/ports.cgi?query=proftpd&stype=all
>>
>>Все патчи перепробывал - не собирается
>
>На lissyara.su лежит порт для сборки с поддержкой конвертации.Думаю тема может быть закрыта т.к. в новой версии портов идет уже готовый модуль CODECONV
Существует другая проблемма, на сей раз с mod_clamav т.е. модулем для работы с антивирусом Clamav. Проблема заключается в следующем, после установки связки proftpd + mod_clamav + Clamav, если закачивать на фтп файл с вирусом в корень (т.е. в ту директории в которую зашел посли логина), то все работает корректно, файл автоматически удаляется, но в случае если зайти в какую либо директорию (не важно какую) и скопировать туда, то в логах будет запись что Clamav не нашел путь к файлу и файл с вирусом останется, т.е. видемо на сокет Clamav сообщается неверный путь к файлу. В инете были примеры патчей, но ни один так и не смог устранить данную проблемму.
Если кто нашел решение, просьба поделится. Заранее благодарен.
>Всем привет!
>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>install лезут ошибки.
>Для proftpd-1.3.0rc3 описано в http://www.pc-info.in.ua/content/view/1409/288/
>Но для 1.3.1rc2 не проходит.
>HELP...Для гугла: Копаясь в коде, нашел способ включить перекодировку в proftpd-1.3.2rc1:
Там это делается директивой
UseEncoding <from> <to>
например
UseEncoding UTF8 CP1251