The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Устранение ошибки "Unknown client EHLO" при использовании SSMTP в stunnel (patch ssmtp stunnel smtp)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: patch, ssmtp, stunnel, smtp,  (найти похожие документы)
From: Дмитрий Владимиров <dima@vladimirov.org.> Newsgroups: email Date: Mon, 12 Oct 2008 17:02:14 +0000 (UTC) Subject: Устранение ошибки "Unknown client EHLO" при использовании SSMTP в stunnel В некоторых случаях возникает проблема отправки почты при использовании ssmtp stunnel. Заключается она в недостаточном времени ожидания соединения клиента с сокетом. Данный патч устраняет проблему. В область глобальных переменных файла конфигурации добавлена переменная smtp_wait, значение по умолчанию 200, диапазон допустимых значений 200-900. Если в логах stunnel есть запись "Unknown client EHLO", значение переменной следует увеличить (в моем случае помогло значение 450). Загрузить патч можно по ссылке: vladimirov.org/stunnel_smtp.patch Код патча: *** src/options.c 2008-06-22 01:18:23.000000000 +0400 --- src/options.c 2008-10-01 11:06:26.000000000 +0400 *************** *** 131,136 **** --- 131,156 ---- break; } + /* smtp_wait */ + switch(cmd) { + case CMD_INIT: + options.smtp_wait=200; /* Set initial value inherited from maintainer */ + break; + case CMD_EXEC: + if(strcasecmp(opt, "smtp_wait")) + break; + options.smtp_wait=atoi(arg); + if((options.smtp_wait < 200) || (options.smtp_wait > 900)) + return "Value of smtp_wait should be between 200 and 900"; + return NULL; + case CMD_DEFAULT: + break; + case CMD_HELP: + s_log(LOG_RAW, "%-15s = the value should be between 200 and 900", + "smtp_wait"); + break; + } + /* debug */ switch(cmd) { case CMD_INIT: *** src/protocol.c 2008-03-26 22:07:51.000000000 +0300 --- src/protocol.c 2008-10-01 11:05:19.000000000 +0400 *************** *** 176,182 **** s_poll_zero(&c->fds); s_poll_add(&c->fds, c->local_rfd.fd, 1, 0); - switch(s_poll_wait(&c->fds, 0, 200)) { /* wait up to 200ms */ case 0: /* fd not ready to read */ s_log(LOG_DEBUG, "RFC 2487 detected"); break; --- 176,182 ---- s_poll_zero(&c->fds); s_poll_add(&c->fds, c->local_rfd.fd, 1, 0); + switch(s_poll_wait(&c->fds, 0, options.smtp_wait)) { /* wait */ case 0: /* fd not ready to read */ s_log(LOG_DEBUG, "RFC 2487 detected"); break; *** src/prototypes.h 2008-06-22 01:15:14.000000000 +0400 --- src/prototypes.h 2008-10-01 11:06:43.000000000 +0400 *************** *** 129,134 **** --- 129,135 ---- char *egd_sock; /* entropy gathering daemon socket */ char *rand_file; /* file with random data */ int random_bytes; /* how many random bytes to read */ + int smtp_wait; /* some global data for stunnel.c */ #ifndef USE_WIN32 *** tools/stunnel.conf 2006-01-07 16:58:15.000000000 +0300 --- tools/stunnel.conf 2008-10-01 10:52:36.000000000 +0400 *************** *** 32,37 **** --- 32,40 ---- ; Use it for client mode ;client = yes + ; Increase value (up to 900), if stunnel reports "Unknown client EHLO"^ + ^ + smtp_wait = 200^ ; Service-level configuration [pop3s] *** tools/stunnel.conf-sample.in 2007-11-02 21:22:32.000000000 +0300 --- tools/stunnel.conf-sample.in 2008-10-01 10:53:37.000000000 +0400 *************** *** 43,48 **** --- 43,50 ---- ; Use it for client mode ;client = yes + ; Increase value (up to 900), if stunnel reports "Unknown client EHLO" + ;smtp_wait = 200 ; Service-level configuration

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Дима (??), 11:18, 15/10/2008 [ответить]  
  • +/
    Исследовал вопрос дополнительно, чуть позже поправлю статью. Новый патч (для ssmtp/imaps) доступен по ссылке.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру