[balsa] Adjust SMTP timeouts



commit d4d4b5697660f3f8fb457fd9eb7b466bf1589719
Author: Albrecht Dreß <albrecht dress arcor de>
Date:   Sun May 28 09:38:23 2017 -0400

    Adjust SMTP timeouts
    
        * libnetclient/net-client-smtp.c (net_client_smtp_connect),
          (net_client_smtp_send_msg): adjust all SMTP client transaction timeouts
          to the minimum values (which are *very* long imho!)
          required by RFC 5321, sect. 4.5.3.2.1. - 4.5.3.2.6.
    
    Signed-off-by: Peter Bloomfield <PeterBloomfield bellsouth net>

 ChangeLog                      |   10 ++++++++++
 libnetclient/net-client-smtp.c |    5 +++++
 2 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index bb2cb20..16b15f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2017-05-28  Albrecht Dreß
+
+       Adjust SMTP timeouts
+
+       * libnetclient/net-client-smtp.c (net_client_smtp_connect),
+         (net_client_smtp_send_msg): adjust all SMTP client transaction timeouts
+         to the minimum values (which are *very* long imho!)
+         required by RFC 5321, sect. 4.5.3.2.1. - 4.5.3.2.6.
+
+
 2017-05-27  Peter Bloomfield  <pbloomfield bellsouth net>
 
        Increase a timeout interval
diff --git a/libnetclient/net-client-smtp.c b/libnetclient/net-client-smtp.c
index 80ed064..98b6cbc 100644
--- a/libnetclient/net-client-smtp.c
+++ b/libnetclient/net-client-smtp.c
@@ -124,6 +124,7 @@ net_client_smtp_connect(NetClientSmtp *client, gchar **greeting, GError **error)
 
        /* get the greeting */
        if (result) {
+               net_client_set_timeout(NET_CLIENT(client), 5U * 60U);   /* RFC 5321, Sect. 4.5.3.2.1.: 5 
minutes timeout */
                result = net_client_smtp_read_reply(client, 220, greeting, error);
        }
 
@@ -190,6 +191,7 @@ net_client_smtp_send_msg(NetClientSmtp *client, const NetClientSmtpMessage *mess
                (message->recipients != NULL) && (message->data_callback != NULL), FALSE);
 
        /* set the RFC 5321 sender and recipient(s) */
+       net_client_set_timeout(NET_CLIENT(client), 5U * 60U);   /* RFC 5321, Sect. 4.5.3.2.2., 4.5.3.2.3.: 5 
minutes timeout */
        if (client->priv->can_dsn && message->have_dsn_rcpt) {
                if (message->dsn_envid != NULL) {
                        result = net_client_smtp_execute(client, "MAIL FROM:<%s> RET=%s ENVID=%s", NULL, 
error, message->sender,
@@ -215,6 +217,7 @@ net_client_smtp_send_msg(NetClientSmtp *client, const NetClientSmtpMessage *mess
 
        /* initialise sending the message data */
        if (result) {
+               net_client_set_timeout(NET_CLIENT(client), 2U * 60U);   /* RFC 5321, Sect. 4.5.3.2.4.: 2 
minutes timeout */
                result = net_client_smtp_execute(client, "DATA", NULL, error);
        }
 
@@ -224,6 +227,7 @@ net_client_smtp_send_msg(NetClientSmtp *client, const NetClientSmtpMessage *mess
                gssize count;
                gchar last_char = '\0';
 
+               net_client_set_timeout(NET_CLIENT(client), 3U * 60U);   /* RFC 5321, Sect. 4.5.3.2.5.: 3 
minutes timeout */
                client->priv->data_state = TRUE;
                do {
                        count = message->data_callback(buffer, SMTP_DATA_BUF_SIZE, message->user_data, error);
@@ -244,6 +248,7 @@ net_client_smtp_send_msg(NetClientSmtp *client, const NetClientSmtpMessage *mess
        }
 
        if (result) {
+               net_client_set_timeout(NET_CLIENT(client), 10U * 60U);  /* RFC 5321, Sect 4.5.3.2.6.: 10 
minutes timeout */
                result = net_client_smtp_read_reply(client, -1, NULL, error);
                client->priv->data_state = FALSE;
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]