X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtp.c;h=d4da34c0fe42e64fc99e959811a4c45a22834125;hb=7a9b0685e406cc83597171cc39d008c7e5459ca8;hp=fc6814f602ab1748f318fa9ce2fe51a3aabd1b58;hpb=07a2459e8adcace90dfa3c36be48a606ac2bf511;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtp.c b/citadel/modules/smtp/serv_smtp.c index fc6814f60..d4da34c0f 100644 --- a/citadel/modules/smtp/serv_smtp.c +++ b/citadel/modules/smtp/serv_smtp.c @@ -20,7 +20,7 @@ * The VRFY and EXPN commands have been removed from this implementation * because nobody uses these commands anymore, except for spammers. * - * Copyright (c) 1998-2015 by the citadel.org team + * Copyright (c) 1998-2021 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -42,18 +42,7 @@ #include #include #include - -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - +#include #include #include #include @@ -116,7 +105,9 @@ void registerSmtpCMD(const char *First, long FLen, smtp_handler_hook *h; if (FLen >= MaxSMTPCmdLen) - cit_panic_backtrace (0); + { + abort(); + } h = (smtp_handler_hook*) malloc(sizeof(smtp_handler_hook)); memset(h, 0, sizeof(smtp_handler_hook)); @@ -127,11 +118,6 @@ void registerSmtpCMD(const char *First, long FLen, } -void smtp_cleanup(void) -{ - DeleteHash(&SMTPCmds); -} - /* * Here's where our SMTP session begins its happy day. */ @@ -159,7 +145,7 @@ void smtp_greeting(int is_msa) * addresses immediately instead of after they execute a RCPT */ if ( (CtdlGetConfigInt("c_rbl_at_greeting")) && (sSMTP->is_msa == 0) ) { - if (rbl_check(message_to_spammer)) { + if (rbl_check(CC->cs_addr, message_to_spammer)) { if (server_shutting_down) cprintf("421 %s\r\n", message_to_spammer); else @@ -324,7 +310,7 @@ void smtp_webcit_preferences_hack_backend(long msgnum, void *userdata) { return; // already got it } - msg = CtdlFetchMessage(msgnum, 1, 1); + msg = CtdlFetchMessage(msgnum, 1); if (msg == NULL) { return; } @@ -405,7 +391,7 @@ void smtp_get_user(long offset) StrBufDecodeBase64(sSMTP->Cmd); - if (CtdlLoginExistingUser(NULL, ChrPtr(sSMTP->Cmd)) == login_ok) { + if (CtdlLoginExistingUser(ChrPtr(sSMTP->Cmd)) == login_ok) { size_t len = CtdlEncodeBase64(buf, "Password:", 9, 0); if (buf[len - 1] == '\n') { @@ -490,10 +476,10 @@ void smtp_try_plain(long offset, long Flags) sSMTP->command_state = smtp_command; if (!IsEmptyStr(ident)) { - result = CtdlLoginExistingUser(user, ident); + result = CtdlLoginExistingUser(ident); } else { - result = CtdlLoginExistingUser(NULL, user); + result = CtdlLoginExistingUser(user); } if (result == login_ok) { @@ -739,7 +725,7 @@ void smtp_rcpt(long offset, long flags) if ( (!CCC->logged_in) /* Don't RBL authenticated users */ && (!sSMTP->is_lmtp) ) { /* Don't RBL LMTP clients */ if (CtdlGetConfigInt("c_rbl_at_greeting") == 0) { /* Don't RBL again if we already did it */ - if (rbl_check(message_to_spammer)) { + if (rbl_check(CC->cs_addr, message_to_spammer)) { if (server_shutting_down) cprintf("421 %s\r\n", message_to_spammer); else @@ -898,8 +884,6 @@ void smtp_data(long offset, long flags) return; } - CM_SetField(msg, eNodeName, CtdlGetConfigStr("c_nodename"), strlen(CtdlGetConfigStr("c_nodename"))); - CM_SetField(msg, eHumanNode, CtdlGetConfigStr("c_humannode"), strlen(CtdlGetConfigStr("c_humannode"))); CM_SetField(msg, eOriginalRoom, HKEY(MAILROOM)); if (sSMTP->preferred_sender_name != NULL) CM_SetField(msg, eAuthor, SKEY(sSMTP->preferred_sender_name)); @@ -948,7 +932,7 @@ void smtp_data(long offset, long flags) } else { /* Ok, we'll accept this message. */ - msgnum = CtdlSubmitMsg(msg, valid, "", 0); + msgnum = CtdlSubmitMsg(msg, valid, ""); if (msgnum > 0L) { StrBufPrintf(sSMTP->OneRcpt, "250 Message accepted.\r\n"); } @@ -1023,7 +1007,7 @@ void smtp_command_loop(void) if (sSMTP == NULL) { syslog(LOG_EMERG, "Session SMTP data is null. WTF? We will crash now."); - return cit_panic_backtrace (0); + abort(); } time(&CCC->lastcmd); @@ -1190,7 +1174,6 @@ CTDL_MODULE_INIT(smtp) NULL, CitadelServiceSMTP_LMTP_UNF); - CtdlRegisterCleanupHook(smtp_cleanup); CtdlRegisterSessionHook(smtp_cleanup_function, EVT_STOP, PRIO_STOP + 250); }