Parcho el último mensaje tomado de las lineas de estatus.

master
Félix Arreola Rodríguez 2022-10-29 21:53:20 -05:00
parent 83f4d50846
commit a965af97b4
1 changed files with 7 additions and 0 deletions

View File

@ -210,6 +210,7 @@ int smtp_session_continue (SMTPSession *session, int what) {
char linea[8192]; char linea[8192];
size_t linea_size; size_t linea_size;
int res; int res;
int e;
if (session->internal == SMTP_INTERNAL_FREE) { if (session->internal == SMTP_INTERNAL_FREE) {
return SMTP_ERROR; return SMTP_ERROR;
@ -285,6 +286,12 @@ smtp_continue_read_line_again:
/* Linea buena, guardar el estado y el mensaje de la linea */ /* Linea buena, guardar el estado y el mensaje de la linea */
/* Estamos conectados */ /* Estamos conectados */
strncpy (session->last_message, &linea[4], sizeof (session->last_message) - 1); 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'); session->last_code = ((linea[0] - '0') * 100) + ((linea[1] - '0') * 10) + (linea[2] - '0');
/* Correr la función correcta para pasar al siguiente estado */ /* Correr la función correcta para pasar al siguiente estado */
switch (session->estado) { switch (session->estado) {