перекодировка русских символов в фтп-сервере на лету

Проблема такая:
у меня локаль - кои8-р. держу фтп. большая часть ресурсов на виндовых разделах. я вижу файлы с русскими именами, пользователи фтп - видят кракозябры. как бы настроить сабж?
З.Ы.: сейчас юзаю vsftpd

Есть патчи для

Есть патчи для vsftpd и для proftpd. Юзал оба, остался ими доволен.

cat vsftpd-2.0.3-koi2win.diff

diff -urN vsftpd-2.0.3.old/ftpcmdio.c vsftpd-2.0.3/ftpcmdio.c
--- vsftpd-2.0.3/ftpcmdio.c.orig	Fri Jul  2 18:23:02 2004
+++ vsftpd-2.0.3/ftpcmdio.c	Sun Feb 27 21:42:08 2005
@@ -198,6 +198,7 @@
     vsf_secbuf_alloc(&p_sess->p_control_line_buf, VSFTP_MAX_COMMAND_LINE);
   }
   ftp_getline(p_sess, p_str, p_sess->p_control_line_buf);
+  str_win2koi(p_str);
   /* As mandated by the FTP specifications.. */
   str_replace_char(p_str, '\0', '\n');
   /* If the last character is a \r, strip it */
diff -urN vsftpd-2.0.3/ls.c.orig vsftpd-2.0.3/ls.c
--- vsftpd-2.0.3.old/ls.c	Fri Jul  2 18:23:34 2004
+++ vsftpd-2.0.3/ls.c	Sun Feb 27 21:42:08 2005
@@ -432,6 +432,7 @@
                                                       tunable_use_localtime));
   str_append_char(p_str, ' ');
   /* Filename */
+  str_koi2win(p_filename_str);
   str_append_str(p_str, p_filename_str);
   str_append_text(p_str, "\r\n");
 }
diff -urN vsftpd-2.0.3.old/str.c vsftpd-2.0.3/str.c
--- vsftpd-2.0.3/str.c.orig	Fri Jul  2 18:25:43 2004
+++ vsftpd-2.0.3/str.c	Sun Feb 27 21:42:08 2005
@@ -660,3 +660,46 @@
   }
 }
 
+void
+str_win2koi(struct mystr* p_str)
+{
+  int i;
+  char wk[] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+               144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
+               160,161,162,163,164,165,166,167,179,169,170,171,172,173,174,175,
+               176,177,178,179,180,181,182,183,163,185,186,187,188,189,190,191,
+               225,226,247,231,228,229,246,250,233,234,235,236,237,238,239,240,
+               242,243,244,245,230,232,227,254,251,253,255,249,248,252,224,241,
+               193,194,215,199,196,197,214,218,201,202,203,204,205,206,207,208,
+               210,211,212,213,198,200,195,222,219,221,223,217,216,220,192,209};
+
+  for(i = 0; i < p_str->len; i++)
+  {
+    if(p_str->p_buf[i] & 0200)
+    {
+      p_str->p_buf[i] = wk[p_str->p_buf[i] & 0177];
+    }
+  }
+}
+
+void
+str_koi2win(struct mystr* p_str)
+{
+  int i;
+  char kw[] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+               144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
+               160,161,162,184,164,165,166,167,168,169,170,171,172,173,174,175,
+               176,177,178,168,180,181,182,183,184,185,186,187,188,189,190,191,
+               254,224,225,246,228,229,244,227,245,232,233,234,235,236,237,238,
+               239,255,240,241,242,243,230,226,252,251,231,248,253,249,247,250,
+               222,192,193,214,196,197,212,195,213,200,201,202,203,204,205,206,
+               207,223,208,209,210,211,198,194,220,219,199,216,221,217,215,218};
+
+  for(i = 0; i < p_str->len; i++)
+  {
+    if(p_str->p_buf[i] & 0200)
+    {
+      p_str->p_buf[i] = kw[p_str->p_buf[i] & 0177];
+    }
+  }
+}
diff -urN vsftpd-2.0.3.old/str.h vsftpd-2.0.3/str.h
--- vsftpd-2.0.3/str.h.orig	Fri Jun  4 23:35:00 2004
+++ vsftpd-2.0.3/str.h	Sun Feb 27 21:42:08 2005
@@ -120,5 +120,8 @@
 int str_contains_line(const struct mystr* p_str,
                       const struct mystr* p_line_str);
 
+void win2koi(struct mystr* p_str);  // Recode WIN to KOI;
+void koi2win(struct mystr* p_str);  // Recode KOI to WIN;
+
 #endif /* VSFTP_STR_H */

Я далал оверлейный ебилд для версии vsftpd-2.0.3.ebuild, добавив в него путь к патчу. Правда, этой версии уже нет в дереве портежей, а на более новую версию патч почему-то не становится, видимо конфликтует с другим(и) патчами, т.к. на голые исходники ставится без проблем. Из минусов - нет возможности отключить перекодировку без пересборки пакета. В патче для proftpd можно указать опции перекодировки в конфиге.

Спасибо

это случайно не тот патч что на opennet.ru выкладывали?
я его пробовал накладывать но фигня получилась...
но все равно спасибо. Видимо придется заняться написанием своего патча по мотивам этого но для свежих версий.
_________________
UNIX WAY -->200m

Да, патч с

Да, патч с opennet.ru. У меня работал нормально, на версии 2.0.3, глюков не заметил.

Уже патченный

На аглицком форуме наткнулся на вот эту ссылку: http://dev.gentoo.org/~uberlord/overlay/net-ftp/vsftpd-ext/vsftpd-ext-2.0.4.2.ebuild
Там упоминается сайтик http://vsftpd.devnet.ru/ , где есть vsFTPd с возможностью включения/отключения перекодировок. Плюс там еще какие-то мелкие фишки.
Если кто опробует, расскажите, как оно работает? Стоит ли замарачиваться?

Не юзай русские

Не юзай русские имена. Принципиально. Боль головная. Транслит тоже ничего.

(Из глубин инета ) Надысь расшарил /dev/random через самбу. Шару назвал krutoeporno.avi Судя по smbstatus руководств уже часа 2 как качает :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".