![]() |
s/qmail 4.3.23
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, size_t len) |
| ssize_t | saferead (int fd, char *buf, size_t len) |
| void | flush () |
| void | out (char *s) |
| int | bhelocheck (void) |
| int | dnsq (char *arg, char type) |
| void | smtp_greet (char *code) |
| void | smtp_help (char *d) |
| void | smtp_quit (char *d) |
| 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) |
| int | postgrey_scanner () |
| void | smtp_noop (char *d) |
| void | smtp_vrfy (char *d) |
| void | smtp_helo (char *arg) |
| void | smtp_ehlo (char *arg) |
| void | smtp_rset (char *d) |
| void | smtp_starttls (char *d) |
| void | smtp_mail (char *arg) |
| void | smtp_rcpt (char *arg) |
| void | blast (int *hops) |
| void | acceptmessage (unsigned long qp) |
| void | smtp_data (char *d) |
| int | authgetl (void) |
| int | authenticate (void) |
| int | auth_login (char *arg) |
| int | auth_plain (char *arg) |
| int | auth_cram (char *d) |
| 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 1370 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 | ( | char * | d | ) |
| 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 1476 of file qmail-smtpd.c.


| int authgetl | ( | void | ) |
Definition at line 1456 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 933 of file qmail-smtpd.c.


| int rcptallowed | ( | ) |
Definition at line 772 of file qmail-smtpd.c.


| ssize_t saferead | ( | int | fd, |
| char * | buf, | ||
| size_t | len ) |
| ssize_t safewrite | ( | int | fd, |
| char * | buf, | ||
| size_t | len ) |
| void setup | ( | ) |
Definition at line 277 of file qmail-smtpd.c.


| void smtp_auth | ( | char * | arg | ) |
| void smtp_data | ( | char * | d | ) |
| void smtp_ehlo | ( | char * | arg | ) |
| void smtp_greet | ( | char * | code | ) |
| void smtp_helo | ( | char * | arg | ) |
| void smtp_help | ( | char * | d | ) |
Definition at line 145 of file qmail-smtpd.c.
| void smtp_mail | ( | char * | arg | ) |
| void smtp_noop | ( | char * | d | ) |
Definition at line 959 of file qmail-smtpd.c.
| void smtp_quit | ( | char * | d | ) |
| void smtp_rcpt | ( | char * | arg | ) |
| void smtp_rset | ( | char * | d | ) |
| void smtp_starttls | ( | char * | d | ) |
| void smtp_vrfy | ( | char * | d | ) |
Definition at line 960 of file qmail-smtpd.c.
Definition at line 814 of file qmail-smtpd.c.


| char accept_buf[FMT_ULONG] |
Definition at line 1368 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 1453 of file qmail-smtpd.c.
| struct authcmd authcmds[] |
| stralloc authmethod = {0} |
Definition at line 255 of file qmail-smtpd.c.
Definition at line 1454 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 1222 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 1221 of file qmail-smtpd.c.
| char* base64 |
Definition at line 240 of file qmail-smtpd.c.
| stralloc base64types = {0} |
Definition at line 1220 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 1217 of file qmail-smtpd.c.
| char** childargs |
Definition at line 1452 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 1225 of file qmail-smtpd.c.
| int flagbadhelo |
Definition at line 169 of file qmail-smtpd.c.
| unsigned int flagbase = 0 |
Definition at line 1226 of file qmail-smtpd.c.
| unsigned int flagblank = 0 |
Definition at line 1227 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 1219 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 1224 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 1216 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 1686 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 1445 of file qmail-smtpd.c.
| stralloc user = {0} |
Definition at line 534 of file qmail-smtpd.c.