Ошибка: Failed to parse the Currency Converter XML document.
$18 054.97


Ошибка: Failed to parse the Currency Converter XML document.
$913.12


Ошибка: Failed to parse the Currency Converter XML document.
$1 176.52


Unix+ Samba + ftpd, проблемы и решения

Есть такая проблема: сложно найти ftpd, понимающий перекодировку имен файлов. Если хранить файлы на сервере в koi8, то ftpшник выдает винде крякозябры. Если хранить в CP1251, то ftp не передает букву «Я», считая ее управляющим символом.
Как решать?
Проблема буквы я возникает в случае, если ftpd весь сетевой i/o пропускает через telnet-фильтр, где буква Я — управляющий символ.

В том числе к таким серверам относится ProFtpd

Решаем проблему на его примере:

1. Управляющие символы в телнете называются IAC (Is A Command)
2. Распаковываем исходники и делаем поиск по строке IAC


3. Находим 2 файла: netio.c и netio.h, где эта строка встречается.

4. Смотрим файл netio.c и находим там следующий код:

switch (mode) {
case IAC:
switch (cp) {
case WILL:
case WONT:
case DO:
case DONT:
mode = cp;
continue;

case IAC:
mode = 0;
break;

default:
/* Ignore */
mode = 0;
continue;
}
break;

case WILL:
case WONT:
pr_netio_printf(out_nstrm, «%c%c%c», IAC, DONT, cp);
mode = 0;
continue;

case DO:
case DONT:

pr_netio_printf(out_nstrm, «%c%c%c», IAC, WONT, cp);
mode = 0;
continue;

default:
if (cp == IAC) {
mode = cp;
continue;
}
break;
}

5. Путем вдумчивого рассматривания понимаем, что именно эти строчки отвечают за проверку на телнет-вшивость.

6. Удаляем все это безобразие.

7. Компилим и радуемся!

В итоге имеем:

Все названия лежат на юникс-машине в CP1251- кодировке. Для передачи их винде по фтп ничего не меняется, и буква «Я» исправлена. Для передаче по Самбе используем следующие настройки:

display charset = CP1251
unix charset = CP1251
dos charset = CP866

 

Интересное

Массовое удаление...
Нередко для повышения производительности компьютера (например, перед запуском ресурсоемкого приложения или игрушки) приходится прибегать к нетривиальному, но действенному методу — к...
Подробнее...
Вопросы по графике и...
Какой графический формат (GIF или JPEG) лучше использовать для графики в веб и почему? Если ваша картинка содержит немного цветов и/или четкие линии — лучше использовать GIF т.к. его палитра...
Подробнее...
Предварительная загрузка...
Если у вас есть серия изображений для предзагрузки, то вы можете воспользоваться функцией preLoad, которую я написал для подобных ситуаций, которая проста в работе и не требует каких-либо...
Подробнее...
Собираем Apache + PHP +...
Итак попробуем все это собрать. Для начала нам понадобиться apache, php, sablot, xpat, iconv. Последние три представляют собой программы для обработки XML/XSLT файлов.
Подробнее...
DOTNET - Да или Нет. С...
Руководитель IT департамента любой сколько-нибудь развившейся и вставшей на ноги компании почти наверняка имеет мечту. Мечту, в которой его предприятие совершает все деловые операции со всеми...
Подробнее...
Несколько простых способов...
Задумывались ли вы когда-то о том, может ли ваш компьютер быть более быстрым? Мы рассмотрим несколько простых способов увеличить скорость работы, получив максимум производительности от своего...
Подробнее...
Ввод ограничений на...
Введение: В среде домена централизованное управление рабочими станции можно осуществлять через групповые политики домена. Если же у вас нет сервера, всё равно можно использовать групповые политики...
Подробнее...
Оптимизация vs. здравый смысл
В этой статье я хотел бы обратиться к начинающим seo-специалистам и Интернет-маркетологам с просьбой... Занимайтесь своим делом осмысленно, рационально, используя научный подход и учитывая ошибки...
Подробнее...
Определение наличия...
По статистике, около 90% пользователей в наши дни пользуются Internet Explorer (5-й или 6-й версией). В этих браузерах Flash, как правило, уже установлен (если же нет, то, при наличии...
Подробнее...
Основы позиционирования блоков
Блоки — прямоугольные области, используемые в CSS для формирования и отображения документов. Это упрощенно, очень сильно упрощенно, но на первом этапе вполне может и хватить.С появлением нового...
Подробнее...