diff --git a/src/smtp.c b/src/smtp.c index fce3881..5dd801a 100644 --- a/src/smtp.c +++ b/src/smtp.c @@ -210,6 +210,7 @@ int smtp_session_continue (SMTPSession *session, int what) { char linea[8192]; size_t linea_size; int res; + int e; if (session->internal == SMTP_INTERNAL_FREE) { return SMTP_ERROR; @@ -285,6 +286,12 @@ smtp_continue_read_line_again: /* Linea buena, guardar el estado y el mensaje de la linea */ /* Estamos conectados */ strncpy (session->last_message, &linea[4], sizeof (session->last_message) - 1); + e = strlen (session->last_message) - 1; + while (e > 0 && (session->last_message[e] == '\r' || session->last_message[e] == '\n')) { + session->last_message[e] = 0; + e--; + } + session->last_code = ((linea[0] - '0') * 100) + ((linea[1] - '0') * 10) + (linea[2] - '0'); /* Correr la funciĆ³n correcta para pasar al siguiente estado */ switch (session->estado) {