From: Jean-Marc Pigeon (Delson) Date: Mon, 5 May 2025 19:06:08 +0000 (-0400) Subject: Adding "noop" smtp command X-Git-Tag: tag-0.8~139 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=c8b228189e3bccc762b58f4bf6925abf6a1cb750;p=jmp%2Fmailleur Adding "noop" smtp command --- diff --git a/lib/lvleml.c b/lib/lvleml.c index 0752e44..72b6f07 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -403,6 +403,10 @@ while (proceed==true) { case c_ehlo : //EHLO SMTP protocol proceed=doehlo(contact,line); break; + case c_noop : //No Operation + (void) transmit(contact,"%d 2.0.0 OK, %s", + CMDOK,contact->mainsesid); + break; case c_quit : //QUIT SMTP protocol (void) transmit(contact,"%d 2.0.0 Bye, closing connection %s", QUITOK,contact->mainsesid); @@ -430,17 +434,19 @@ while (proceed==true) { break; } break; - case c_unknown : //uknown keyword - (void) rou_alert(0,"Command <%s> from [%s] is unknown (config?)", + case c_unknown : //unknown keyword + (void) rou_alert(0,"SMTP Command <%s> from [%s] is unknown (config?)", line,contact->peerip); - (void) transmit(contact,"%d-5.5.1 command <%s> is unknown",CMDBAD,line); - (void) transmit(contact,"%d 2.0.0 Bye, closing connection %s", - QUITOK,contact->mainsesid); - status=-1; //remote is a trouble maker - proceed=false; + (void) transmit(contact,"%d-5.5.1 Unrecognized command, see RFC 5321",CMDBAD); + (void) transmit(contact,"%d-5.5.1 https://www.rfc-editor.org",CMDBAD); + (void) transmit(contact,"%d 5.5.1 session %s is still running", + CMDBAD,contact->mainsesid); break; default : (void) rou_alert(0,"Unable to find keyword for <%s> (Bug?)",OPEP,line); + (void) transmit(contact,"%d 2.0.0 Bye, closing connection %s", + QUITOK,contact->mainsesid); + status=-1; //remote is a trouble maker status=-3; proceed=false; break; diff --git a/lib/unieml.c b/lib/unieml.c index 1a3fa0e..148d779 100644 --- a/lib/unieml.c +++ b/lib/unieml.c @@ -22,6 +22,7 @@ typedef struct { static VOCTYP vocsmtp[]={ {c_helo,"HELO"}, {c_ehlo,"EHLO"}, + {c_noop,"NOOP"}, {c_quit,"QUIT"}, {c_rset,"RSET"}, {c_mail,MAILF}, diff --git a/lib/unieml.h b/lib/unieml.h index be4e9a6..17f56e5 100644 --- a/lib/unieml.h +++ b/lib/unieml.h @@ -25,6 +25,7 @@ typedef enum { //list of SMTP protocol keyword c_helo, //Basic Helo command c_ehlo, //EHLO command + c_noop, //No Operation request c_quit, //quit exchange c_rset, //resetting session c_mail, //mail from sequence detected diff --git a/lib/unitls.c b/lib/unitls.c index 1f57e68..d7defb7 100644 --- a/lib/unitls.c +++ b/lib/unitls.c @@ -389,10 +389,10 @@ while (proceed==true) { char *line; line=X509_NAME_oneline(X509_get_subject_name(peer),0,0); - (void) rou_alert(2,"Certificate subject=<%s>",line); + (void) rou_alert(4,"Certificate subject=<%s>",line); line=rou_freestr(line); line=X509_NAME_oneline(X509_get_issuer_name(peer),0,0); - (void) rou_alert(2,"Certificate issuer=<%s>",line); + (void) rou_alert(4,"Certificate issuer=<%s>",line); line=rou_freestr(line); } break;