![]() |
s/qmail 4.3.20
Next generation secure email transport
|
requires sslserver or tcpserver More...
#include <unistd.h>
#include "wildmat.h"
#include "buffer.h"
#include "stralloc.h"
#include "genalloc.h"
#include "alloc.h"
#include "qmail.h"
#include "auto_qmail.h"
#include "control.h"
#include "received.h"
#include "constmap.h"
#include "logmsg.h"
#include "ipme.h"
#include "fd.h"
#include "ip.h"
#include "str.h"
#include "fmt.h"
#include "scan.h"
#include "byte.h"
#include "case.h"
#include "env.h"
#include "now.h"
#include "exit.h"
#include "rcpthosts.h"
#include "recipients.h"
#include "mfrules.h"
#include "tls_start.h"
#include "smtpdlog.h"
#include "timeout.h"
#include "commands.h"
#include "cdbread.h"
#include "dns.h"
#include "wait.h"
#include "sig.h"
#include "close.h"
#include "open.h"
#include "base64.h"
#include "spf.h"
Go to the source code of this file.
Data Structures | |
struct | authcmd |
Macros | |
#define | PAM111421 |
#define | AUTHSLEEP 5 |
#define | PORT_SMTPS "465" |
#define | SMTP_TIMEOUT 1200 |
#define | MIMETYPE_LEN 9 |
#define | LOADER_LEN 5 |
#define | BASE64MESSAGE "content-transfer-encoding: base64" |
#define | FDIN 0 |
#define | FDOUT 1 |
#define | FDLOG 2 |
#define | FDAUTH 3 |
#define | MAXHOPS 100 |
Functions | |
int | modssl_info () |
ssize_t | safewrite (int fd, char *buf, int len) |
ssize_t | saferead (int fd, char *buf, int len) |
void | flush () |
void | out (char *s) |
int | bhelocheck (void) |
int | dnsq (char *arg, char type) |
void | smtp_greet (char *code) |
void | smtp_help () |
void | smtp_quit () |
void | dohelo (char *helo) |
void | setup () |
void | auth_info (char *method) |
int | addrparse (char *arg) |
int | bmfcheck () |
int | brtcheck () |
int | addrallowed (char *arg) |
int | rcptallowed () |
int | localaddr (char *mf) |
int | spf_check (int flag6) |
int | mailfrom_size (char *arg) |
void | mailfrom_auth (char *arg, int len) |
void | mailfrom_parms (char *arg) |
void | smtp_helo (char *arg) |
void | smtp_ehlo (char *arg) |
void | smtp_rset (void) |
void | smtp_starttls () |
void | smtp_mail (char *arg) |
int | postgrey_scanner () |
void | smtp_rcpt (char *arg) |
void | blast (int *hops) |
void | acceptmessage (unsigned long qp) |
void | smtp_data () |
int | authgetl (void) |
int | authenticate (void) |
int | auth_login (char *arg) |
int | auth_plain (char *arg) |
int | auth_cram () |
void | smtp_auth (char *arg) |
int | main (int argc, char *const *argv) |
Variables | |
unsigned long | databytes = 0 |
unsigned long | timeout = SMTP_TIMEOUT |
char | inbuf [BUFSIZE_MESS] |
buffer | bi = BUFFER_INIT(saferead,FDIN,inbuf,sizeof(inbuf)) |
char | outbuf [BUFSIZE_LINE] |
buffer | bo = BUFFER_INIT(safewrite,FDOUT,outbuf,sizeof(outbuf)) |
char | buflog [BUFSIZE_LOG] |
buffer | bl = BUFFER_INIT(buffer_unixwrite,FDLOG,buflog,sizeof(buflog)) |
stralloc | sa = {0} |
ipalloc | ia = {0} |
char * | remoteip |
char * | remotehost |
char * | remoteinfo |
char * | local |
char * | localport |
char * | relayclient |
int | flagutf8 = 0 |
int | flaglf = 0 |
stralloc | protocol = {0} |
stralloc | helohost = {0} |
char * | fakehelo |
stralloc | tlsinfo = {0} |
char * | helocheck |
int | flagbadhelo |
int | flagdnshelo |
int | seenhelo = 0 |
char * | badmailcond |
char * | badhelocond |
int | liphostok = 0 |
stralloc | liphost = {0} |
int | bmfok = 0 |
stralloc | bmf = {0} |
struct constmap | mapbmf |
int | brtok = 0 |
stralloc | brt = {0} |
struct constmap | mapbrt |
int | badhelook = 0 |
stralloc | badhelo = {0} |
struct constmap | mapbhlo |
int | flagmimetype = 0 |
char * | badmimeinit |
int | flagloadertype = 0 |
char * | badloaderinit |
int | flagmav = 0 |
int | localmf = 0 |
char * | localmfcheck |
char * | mfdnscheck |
char * | qhpsi |
char * | base64 |
int | maxrcptcount = 0 |
int | flagerrcpts = 0 |
int | flagnotorious = 0 |
int | tarpitcount = 0 |
int | tarpitdelay = 0 |
int | greylist = 0 |
stralloc | pgbind = {0} |
char * | auth |
int | smtpauth = 0 |
int | seenauth = 0 |
stralloc | authmethod = {0} |
int | starttls = 0 |
int | seentls = 0 |
char * | ucspitls = 0 |
char * | tlsversion |
char * | cipher |
char * | cipherperm |
char * | cipherused |
char * | clientdn = 0 |
char * | clientcn = 0 |
char * | dnemail |
stralloc | mailto = {0} |
stralloc | deliverto = {0} |
char * | delivermailto |
stralloc | rblinfo = {0} |
char * | rblsmtpd |
int | flagspf = 0 |
stralloc | addr = {0} |
stralloc | eddr = {0} |
stralloc | rddr = {0} |
stralloc | mailfrom = {0} |
stralloc | rcptto = {0} |
stralloc | user = {0} |
stralloc | fuser = {0} |
stralloc | mfparms = {0} |
int | seenmail = 0 |
int | flagaddr |
int | flagrcpt |
int | flagdnsmf = 0 |
int | flagsize |
int | rcptcount = 0 |
struct qmail | qqt |
unsigned long | bytestooverflow = 0 |
stralloc | line = {0} |
stralloc | base64types = {0} |
stralloc | badmimetype = {0} |
stralloc | badloadertype = {0} |
unsigned int | nolines = 0 |
unsigned int | flagb64 = 0 |
unsigned int | flagbase = 0 |
unsigned int | flagblank = 0 |
char | accept_buf [FMT_ULONG] |
char | unique [FMT_ULONG+FMT_ULONG+3] |
char ** | childargs |
char | authbuf [BUFSIZE_AUTH] |
buffer | ba = BUFFER_INIT(safewrite,FDAUTH,authbuf,sizeof(authbuf)) |
struct authcmd | authcmds [] |
struct commands | smtpcommands [] |
requires sslserver or tcpserver
-- authenticating ESMTP/ESMTPS server
Definition in file qmail-smtpd.c.
#define AUTHSLEEP 5 |
Definition at line 46 of file qmail-smtpd.c.
#define BASE64MESSAGE "content-transfer-encoding: base64" |
Definition at line 52 of file qmail-smtpd.c.
#define FDAUTH 3 |
Definition at line 56 of file qmail-smtpd.c.
#define FDIN 0 |
Definition at line 53 of file qmail-smtpd.c.
#define FDLOG 2 |
Definition at line 55 of file qmail-smtpd.c.
#define FDOUT 1 |
Definition at line 54 of file qmail-smtpd.c.
#define LOADER_LEN 5 |
Definition at line 51 of file qmail-smtpd.c.
#define MAXHOPS 100 |
Definition at line 58 of file qmail-smtpd.c.
#define MIMETYPE_LEN 9 |
Definition at line 50 of file qmail-smtpd.c.
#define PAM111421 |
Definition at line 45 of file qmail-smtpd.c.
#define PORT_SMTPS "465" |
Definition at line 47 of file qmail-smtpd.c.
#define SMTP_TIMEOUT 1200 |
Definition at line 48 of file qmail-smtpd.c.
void acceptmessage | ( | unsigned long | qp | ) |
Definition at line 1364 of file qmail-smtpd.c.
int addrallowed | ( | char * | arg | ) |
Definition at line 764 of file qmail-smtpd.c.
int addrparse | ( | char * | arg | ) |
Definition at line 545 of file qmail-smtpd.c.
int auth_cram | ( | ) |
Definition at line 1574 of file qmail-smtpd.c.
void auth_info | ( | char * | method | ) |
Definition at line 469 of file qmail-smtpd.c.
int auth_login | ( | char * | arg | ) |
int auth_plain | ( | char * | arg | ) |
int authenticate | ( | void | ) |
Definition at line 1483 of file qmail-smtpd.c.
int authgetl | ( | void | ) |
Definition at line 1463 of file qmail-smtpd.c.
int bhelocheck | ( | void | ) |
Definition at line 610 of file qmail-smtpd.c.
void blast | ( | int * | hops | ) |
int bmfcheck | ( | ) |
Definition at line 638 of file qmail-smtpd.c.
int brtcheck | ( | ) |
Definition at line 727 of file qmail-smtpd.c.
int dnsq | ( | char * | arg, |
char | type | ||
) |
Definition at line 101 of file qmail-smtpd.c.
void dohelo | ( | char * | helo | ) |
Definition at line 176 of file qmail-smtpd.c.
void flush | ( | void | ) |
int localaddr | ( | char * | mf | ) |
Definition at line 785 of file qmail-smtpd.c.
void mailfrom_auth | ( | char * | arg, |
int | len | ||
) |
Definition at line 878 of file qmail-smtpd.c.
void mailfrom_parms | ( | char * | arg | ) |
Definition at line 911 of file qmail-smtpd.c.
int mailfrom_size | ( | char * | arg | ) |
int modssl_info | ( | ) |
Definition at line 481 of file qmail-smtpd.c.
void out | ( | char * | s | ) |
Definition at line 92 of file qmail-smtpd.c.
int postgrey_scanner | ( | ) |
Definition at line 1032 of file qmail-smtpd.c.
int rcptallowed | ( | ) |
Definition at line 772 of file qmail-smtpd.c.
Definition at line 72 of file qmail-smtpd.c.
void setup | ( | ) |
Definition at line 277 of file qmail-smtpd.c.
void smtp_auth | ( | char * | arg | ) |
void smtp_data | ( | ) |
void smtp_ehlo | ( | char * | arg | ) |
void smtp_greet | ( | char * | code | ) |
void smtp_helo | ( | char * | arg | ) |
void smtp_help | ( | ) |
Definition at line 145 of file qmail-smtpd.c.
void smtp_mail | ( | char * | arg | ) |
void smtp_quit | ( | ) |
void smtp_rcpt | ( | char * | arg | ) |
void smtp_rset | ( | void | ) |
void smtp_starttls | ( | ) |
Definition at line 814 of file qmail-smtpd.c.
char accept_buf[FMT_ULONG] |
Definition at line 1362 of file qmail-smtpd.c.
stralloc addr = {0} |
Definition at line 529 of file qmail-smtpd.c.
char* auth |
Definition at line 252 of file qmail-smtpd.c.
char authbuf[BUFSIZE_AUTH] |
Definition at line 1460 of file qmail-smtpd.c.
struct authcmd authcmds[] |
stralloc authmethod = {0} |
Definition at line 255 of file qmail-smtpd.c.
Definition at line 1461 of file qmail-smtpd.c.
stralloc badhelo = {0} |
Definition at line 219 of file qmail-smtpd.c.
char* badhelocond |
Definition at line 174 of file qmail-smtpd.c.
int badhelook = 0 |
Definition at line 218 of file qmail-smtpd.c.
char* badloaderinit |
Definition at line 231 of file qmail-smtpd.c.
stralloc badloadertype = {0} |
Definition at line 1216 of file qmail-smtpd.c.
char* badmailcond |
Definition at line 173 of file qmail-smtpd.c.
char* badmimeinit |
Definition at line 227 of file qmail-smtpd.c.
stralloc badmimetype = {0} |
Definition at line 1215 of file qmail-smtpd.c.
char* base64 |
Definition at line 240 of file qmail-smtpd.c.
stralloc base64types = {0} |
Definition at line 1214 of file qmail-smtpd.c.
Definition at line 83 of file qmail-smtpd.c.
Definition at line 89 of file qmail-smtpd.c.
stralloc bmf = {0} |
Definition at line 211 of file qmail-smtpd.c.
int bmfok = 0 |
Definition at line 210 of file qmail-smtpd.c.
Definition at line 86 of file qmail-smtpd.c.
stralloc brt = {0} |
Definition at line 215 of file qmail-smtpd.c.
int brtok = 0 |
Definition at line 214 of file qmail-smtpd.c.
char buflog[BUFSIZE_LOG] |
Definition at line 88 of file qmail-smtpd.c.
unsigned long bytestooverflow = 0 |
Definition at line 1211 of file qmail-smtpd.c.
char** childargs |
Definition at line 1459 of file qmail-smtpd.c.
char* cipher |
Definition at line 261 of file qmail-smtpd.c.
char* cipherperm |
Definition at line 262 of file qmail-smtpd.c.
char* cipherused |
Definition at line 263 of file qmail-smtpd.c.
char* clientcn = 0 |
Definition at line 265 of file qmail-smtpd.c.
char* clientdn = 0 |
Definition at line 264 of file qmail-smtpd.c.
unsigned long databytes = 0 |
Definition at line 59 of file qmail-smtpd.c.
char* delivermailto |
Definition at line 270 of file qmail-smtpd.c.
stralloc deliverto = {0} |
Definition at line 269 of file qmail-smtpd.c.
char* dnemail |
Definition at line 266 of file qmail-smtpd.c.
stralloc eddr = {0} |
Definition at line 530 of file qmail-smtpd.c.
char* fakehelo |
Definition at line 165 of file qmail-smtpd.c.
int flagaddr |
Definition at line 539 of file qmail-smtpd.c.
unsigned int flagb64 = 0 |
Definition at line 1219 of file qmail-smtpd.c.
int flagbadhelo |
Definition at line 169 of file qmail-smtpd.c.
unsigned int flagbase = 0 |
Definition at line 1220 of file qmail-smtpd.c.
unsigned int flagblank = 0 |
Definition at line 1221 of file qmail-smtpd.c.
int flagdnshelo |
Definition at line 170 of file qmail-smtpd.c.
int flagdnsmf = 0 |
Definition at line 541 of file qmail-smtpd.c.
int flagerrcpts = 0 |
Definition at line 243 of file qmail-smtpd.c.
int flaglf = 0 |
Definition at line 161 of file qmail-smtpd.c.
int flagloadertype = 0 |
Definition at line 230 of file qmail-smtpd.c.
int flagmav = 0 |
Definition at line 234 of file qmail-smtpd.c.
int flagmimetype = 0 |
Definition at line 226 of file qmail-smtpd.c.
int flagnotorious = 0 |
Definition at line 244 of file qmail-smtpd.c.
int flagrcpt |
Definition at line 540 of file qmail-smtpd.c.
int flagsize |
Definition at line 542 of file qmail-smtpd.c.
int flagspf = 0 |
Definition at line 274 of file qmail-smtpd.c.
int flagutf8 = 0 |
Definition at line 160 of file qmail-smtpd.c.
stralloc fuser = {0} |
Definition at line 535 of file qmail-smtpd.c.
int greylist = 0 |
Definition at line 249 of file qmail-smtpd.c.
char* helocheck |
Definition at line 168 of file qmail-smtpd.c.
stralloc helohost = {0} |
Definition at line 164 of file qmail-smtpd.c.
ipalloc ia = {0} |
Definition at line 95 of file qmail-smtpd.c.
char inbuf[BUFSIZE_MESS] |
Definition at line 82 of file qmail-smtpd.c.
stralloc line = {0} |
Definition at line 1213 of file qmail-smtpd.c.
stralloc liphost = {0} |
Definition at line 208 of file qmail-smtpd.c.
int liphostok = 0 |
Definition at line 207 of file qmail-smtpd.c.
char* local |
Definition at line 157 of file qmail-smtpd.c.
int localmf = 0 |
Definition at line 235 of file qmail-smtpd.c.
char* localmfcheck |
Definition at line 236 of file qmail-smtpd.c.
char* localport |
Definition at line 158 of file qmail-smtpd.c.
stralloc mailfrom = {0} |
Definition at line 532 of file qmail-smtpd.c.
stralloc mailto = {0} |
Definition at line 268 of file qmail-smtpd.c.
struct constmap mapbhlo |
Definition at line 220 of file qmail-smtpd.c.
struct constmap mapbmf |
Definition at line 212 of file qmail-smtpd.c.
struct constmap mapbrt |
Definition at line 216 of file qmail-smtpd.c.
int maxrcptcount = 0 |
Definition at line 242 of file qmail-smtpd.c.
char* mfdnscheck |
Definition at line 238 of file qmail-smtpd.c.
stralloc mfparms = {0} |
Definition at line 536 of file qmail-smtpd.c.
unsigned int nolines = 0 |
Definition at line 1218 of file qmail-smtpd.c.
char outbuf[BUFSIZE_LINE] |
Definition at line 85 of file qmail-smtpd.c.
stralloc pgbind = {0} |
Definition at line 250 of file qmail-smtpd.c.
stralloc protocol = {0} |
Definition at line 163 of file qmail-smtpd.c.
char* qhpsi |
Definition at line 239 of file qmail-smtpd.c.
struct qmail qqt |
Definition at line 1210 of file qmail-smtpd.c.
stralloc rblinfo = {0} |
Definition at line 271 of file qmail-smtpd.c.
char* rblsmtpd |
Definition at line 272 of file qmail-smtpd.c.
int rcptcount = 0 |
Definition at line 543 of file qmail-smtpd.c.
stralloc rcptto = {0} |
Definition at line 533 of file qmail-smtpd.c.
stralloc rddr = {0} |
Definition at line 531 of file qmail-smtpd.c.
char* relayclient |
Definition at line 159 of file qmail-smtpd.c.
char* remotehost |
Definition at line 155 of file qmail-smtpd.c.
char* remoteinfo |
Definition at line 156 of file qmail-smtpd.c.
char* remoteip |
Definition at line 154 of file qmail-smtpd.c.
stralloc sa = {0} |
Definition at line 94 of file qmail-smtpd.c.
int seenauth = 0 |
Definition at line 254 of file qmail-smtpd.c.
int seenhelo = 0 |
Definition at line 171 of file qmail-smtpd.c.
int seenmail = 0 |
Definition at line 538 of file qmail-smtpd.c.
int seentls = 0 |
Definition at line 258 of file qmail-smtpd.c.
int smtpauth = 0 |
Definition at line 253 of file qmail-smtpd.c.
struct commands smtpcommands[] |
Definition at line 1693 of file qmail-smtpd.c.
int starttls = 0 |
Definition at line 257 of file qmail-smtpd.c.
int tarpitcount = 0 |
Definition at line 246 of file qmail-smtpd.c.
int tarpitdelay = 0 |
Definition at line 247 of file qmail-smtpd.c.
unsigned long timeout = SMTP_TIMEOUT |
Definition at line 60 of file qmail-smtpd.c.
stralloc tlsinfo = {0} |
Definition at line 166 of file qmail-smtpd.c.
char* tlsversion |
Definition at line 260 of file qmail-smtpd.c.
char* ucspitls = 0 |
Definition at line 259 of file qmail-smtpd.c.
char unique[FMT_ULONG+FMT_ULONG+3] |
Definition at line 1452 of file qmail-smtpd.c.
stralloc user = {0} |
Definition at line 534 of file qmail-smtpd.c.