diff --git a/src/session.c b/src/session.c index c3e15bf..804caa2 100644 --- a/src/session.c +++ b/src/session.c @@ -391,14 +391,13 @@ state = SMTP_STATE_FINISHED; snprintf(buf, MAXBUFSIZE-1, SMTP_RESP_221_GOODBYE, cfg->hostid); - send(new_sd, buf, strlen(buf), 0); - if(cfg->verbosity >= _LOG_DEBUG) syslog(LOG_PRIORITY, "%s: sent: %s", sdata.ttmpfile, buf); + strncat(resp, buf, MAXBUFSIZE-1); unlink(sdata.ttmpfile); unlink(sdata.tmpframe); if(cfg->verbosity >= _LOG_DEBUG) syslog(LOG_PRIORITY, "%s: removed", sdata.ttmpfile); - goto QUITTING; + continue; } @@ -438,6 +437,10 @@ memset(resp, 0, MAXBUFSIZE); } + if(state == SMTP_STATE_FINISHED){ + goto QUITTING; + } + } /* while */ /*