![]() |
s/qmail 4.3.20
Next generation secure email transport
|
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include "sig.h"
#include "stralloc.h"
#include "buffer.h"
#include "scan.h"
#include "case.h"
#include "byte.h"
#include "qmail.h"
#include "auto_qmail.h"
#include "control.h"
#include "dns.h"
#include "alloc.h"
#include "genalloc.h"
#include "quote.h"
#include "fmt.h"
#include "ip.h"
#include "ipalloc.h"
#include "ipme.h"
#include "str.h"
#include "now.h"
#include "exit.h"
#include "constmap.h"
#include "tcpto.h"
#include "timeout.h"
#include "timeoutconn.h"
#include "base64.h"
#include "socket_if.h"
#include "ucspissl.h"
#include "tls_remote.h"
#include "tls_errors.h"
#include "tls_timeoutio.h"
#include "uint_t.h"
#include "hmac_md5.h"
Go to the source code of this file.
Macros | |
#define | WHO "qmail-remote" |
#define | QMTP_MAX 200000000 /* 190 MB for QMTP */ |
#define | HUGESMTPTEXT 1000 /* RFC 5322; was 5000 chars/line */ |
#define | PORT_SMTP 25 /* silly rabbit, /etc/services is for users */ |
#define | PORT_QMTP 209 |
#define | PORT_SMTPS 465 |
#define | PORT_SUBMISSION 587 |
#define | PORT_QMTPS 6209 |
#define | VERIFYDEPTH 1 |
#define | TCP_TIMEOUT 60 |
#define | SMTP_TIMEOUT 1200 |
Variables | |
unsigned long | port = PORT_SMTP |
int | flagauth = 0 |
int | flagsmtps = 0 |
int | flagtlsdomain = 0 |
int | flagtls = 0 |
int | flagverify = 0 |
int | flagutf8 = 0 |
stralloc | helohost = {0} |
stralloc | eaihost = {0} |
stralloc | host = {0} |
stralloc | idnhost = {0} |
stralloc | sender = {0} |
stralloc | canonhost = {0} |
stralloc | remotehost = {0} |
stralloc | canonbox = {0} |
stralloc | senddomain = {0} |
stralloc | sendip = {0} |
stralloc | domainips = {0} |
struct constmap | mapdomainips |
char | ip4 [4] |
char | ip6 [16] |
uint32 | ifidx = 0 |
char * | authsender = 0 |
stralloc | smtproutes = {0} |
struct constmap | mapsmtproutes |
stralloc | qmtproutes = {0} |
struct constmap | mapqmtproutes |
saa | reciplist = {0} |
stralloc | recip = {0} |
char | msgsize [FMT_ULONG] |
unsigned long | msize = 0 |
struct ip_mx | partner |
SSL * | ssl |
SSL_CTX * | ctx |
char | bufsmall [BUFFER_SMALL] |
buffer | bs = BUFFER_INIT(buffer_unixwrite,1,bufsmall,sizeof(bufsmall)) |
int | flagcritical = 0 |
unsigned long | timeoutconnect = TCP_TIMEOUT |
unsigned long | timeout = SMTP_TIMEOUT |
int | smtpfd |
char | inbuf [BUFFER_MTUSIZE] |
buffer | bi = BUFFER_INIT(buffer_unixread,0,inbuf,sizeof(inbuf)) |
char | outbuf [BUFFER_MTUSIZE] |
buffer | bo = BUFFER_INIT(safewrite,-1,outbuf,sizeof(outbuf)) |
char | frombuf [BUFFER_SMALL] |
buffer | bf = BUFFER_INIT(saferead,-1,frombuf,sizeof(frombuf)) |
stralloc | cafile = {0} |
stralloc | cadir = {0} |
stralloc | certfile = {0} |
stralloc | keyfile = {0} |
stralloc | keypwd = {0} |
stralloc | ciphers = {0} |
char * | tlsdestinfo = 0 |
char * | tlsdomaininfo = 0 |
stralloc | domaincerts = {0} |
struct constmap | mapdomaincerts |
stralloc | tlsdestinations = {0} |
struct constmap | maptlsdestinations |
unsigned long | verifydepth = VERIFYDEPTH |
unsigned long | code |
int | flagsize = 0 |
stralloc | authsenders = {0} |
struct constmap | mapauthsenders |
stralloc | user = {0} |
stralloc | pass = {0} |
stralloc | auth = {0} |
stralloc | chal = {0} |
stralloc | slop = {0} |
stralloc | plain = {0} |
stralloc | xuser = {0} |
int | qmtpsend = 0 |
-- versatile SMTP(S)/QMTP(S) client
Definition in file qmail-remote.c.
#define HUGESMTPTEXT 1000 /* RFC 5322; was 5000 chars/line */ |
Definition at line 46 of file qmail-remote.c.
#define PORT_QMTP 209 |
Definition at line 48 of file qmail-remote.c.
#define PORT_QMTPS 6209 |
Definition at line 51 of file qmail-remote.c.
#define PORT_SMTP 25 /* silly rabbit, /etc/services is for users */ |
Definition at line 47 of file qmail-remote.c.
#define PORT_SMTPS 465 |
Definition at line 49 of file qmail-remote.c.
#define PORT_SUBMISSION 587 |
Definition at line 50 of file qmail-remote.c.
#define QMTP_MAX 200000000 /* 190 MB for QMTP */ |
Definition at line 45 of file qmail-remote.c.
#define SMTP_TIMEOUT 1200 |
Definition at line 54 of file qmail-remote.c.
#define TCP_TIMEOUT 60 |
Definition at line 53 of file qmail-remote.c.
#define VERIFYDEPTH 1 |
Definition at line 52 of file qmail-remote.c.
#define WHO "qmail-remote" |
Definition at line 43 of file qmail-remote.c.
Definition at line 1055 of file qmail-remote.c.
void blast | ( | ) |
Definition at line 385 of file qmail-remote.c.
void dropped | ( | ) |
Definition at line 280 of file qmail-remote.c.
void ehlo_auth | ( | ) |
Definition at line 824 of file qmail-remote.c.
int ehlo_size | ( | ) |
int ehlo_starttls | ( | ) |
void err_authprot | ( | ) |
Definition at line 258 of file qmail-remote.c.
GEN_ALLOC_typedef | ( | GEN_ALLOC_readyplus( | saa, |
GEN_ALLOC_readyplus( | stralloc, | ||
GEN_ALLOC_readyplus( | sa, | ||
GEN_ALLOC_readyplus( | len, | ||
GEN_ALLOC_readyplus( | a | ||
) |
Definition at line 73 of file qmail-remote.c.
void get | ( | char * | ch | ) |
Definition at line 330 of file qmail-remote.c.
void getcontrols | ( | void | ) |
Definition at line 1089 of file qmail-remote.c.
void mailfrom | ( | ) |
Definition at line 655 of file qmail-remote.c.
int mailfrom_cram | ( | ) |
Definition at line 779 of file qmail-remote.c.
int mailfrom_login | ( | ) |
Definition at line 749 of file qmail-remote.c.
int mailfrom_plain | ( | ) |
Definition at line 723 of file qmail-remote.c.
void mailfrom_xtext | ( | ) |
Definition at line 706 of file qmail-remote.c.
void out | ( | char * | s | ) |
void outhost | ( | ) |
Definition at line 264 of file qmail-remote.c.
void outsafe | ( | stralloc * | sa | ) |
void outsmtptext | ( | ) |
Definition at line 361 of file qmail-remote.c.
void perm_ambigmx | ( | ) |
Definition at line 252 of file qmail-remote.c.
void perm_dns | ( | ) |
Definition at line 231 of file qmail-remote.c.
void perm_nomx | ( | ) |
Definition at line 238 of file qmail-remote.c.
void perm_nullmx | ( | ) |
Definition at line 245 of file qmail-remote.c.
void perm_partialline | ( | ) |
Definition at line 216 of file qmail-remote.c.
void perm_usage | ( | ) |
Definition at line 226 of file qmail-remote.c.
void qmtp | ( | ) |
Definition at line 940 of file qmail-remote.c.
void quit | ( | char * | prepend, |
char * | append | ||
) |
Definition at line 373 of file qmail-remote.c.
void smtp | ( | ) |
Definition at line 847 of file qmail-remote.c.
void smtp_greeting | ( | ) |
Definition at line 618 of file qmail-remote.c.
void smtp_starttls | ( | ) |
Definition at line 639 of file qmail-remote.c.
unsigned long smtpcode | ( | ) |
Definition at line 338 of file qmail-remote.c.
void temp_chdir | ( | ) |
Definition at line 206 of file qmail-remote.c.
void temp_control | ( | ) |
Definition at line 211 of file qmail-remote.c.
void temp_dns | ( | ) |
Definition at line 192 of file qmail-remote.c.
void temp_dnscanon | ( | ) |
Definition at line 185 of file qmail-remote.c.
void temp_noconn | ( | ) |
Definition at line 166 of file qmail-remote.c.
void temp_noip | ( | ) |
Definition at line 144 of file qmail-remote.c.
void temp_nomem | ( | void | ) |
Definition at line 149 of file qmail-remote.c.
void temp_nomx | ( | ) |
Definition at line 199 of file qmail-remote.c.
void temp_oserr | ( | ) |
Definition at line 154 of file qmail-remote.c.
void temp_osip | ( | ) |
Definition at line 159 of file qmail-remote.c.
void temp_proto | ( | ) |
Definition at line 221 of file qmail-remote.c.
void temp_qmtpnoc | ( | ) |
Definition at line 173 of file qmail-remote.c.
void temp_read | ( | ) |
Definition at line 180 of file qmail-remote.c.
void tls_init | ( | ) |
Definition at line 443 of file qmail-remote.c.
void tls_peercheck | ( | ) |
Definition at line 495 of file qmail-remote.c.
int utf8received | ( | ) |
Definition at line 563 of file qmail-remote.c.
Definition at line 685 of file qmail-remote.c.
void zero | ( | ) |
Definition at line 118 of file qmail-remote.c.
void zerodie | ( | void | ) |
stralloc auth = {0} |
Definition at line 677 of file qmail-remote.c.
char* authsender = 0 |
Definition at line 93 of file qmail-remote.c.
stralloc authsenders = {0} |
Definition at line 672 of file qmail-remote.c.
Definition at line 325 of file qmail-remote.c.
Definition at line 321 of file qmail-remote.c.
Definition at line 323 of file qmail-remote.c.
Definition at line 111 of file qmail-remote.c.
char bufsmall[BUFFER_SMALL] |
Definition at line 110 of file qmail-remote.c.
stralloc cadir = {0} |
Definition at line 428 of file qmail-remote.c.
stralloc cafile = {0} |
Definition at line 427 of file qmail-remote.c.
stralloc canonbox = {0} |
Definition at line 84 of file qmail-remote.c.
stralloc canonhost = {0} |
Definition at line 82 of file qmail-remote.c.
stralloc certfile = {0} |
Definition at line 429 of file qmail-remote.c.
stralloc chal = {0} |
Definition at line 678 of file qmail-remote.c.
stralloc ciphers = {0} |
Definition at line 432 of file qmail-remote.c.
unsigned long code |
Definition at line 603 of file qmail-remote.c.
SSL_CTX* ctx |
Definition at line 108 of file qmail-remote.c.
stralloc domaincerts = {0} |
Definition at line 437 of file qmail-remote.c.
stralloc domainips = {0} |
Definition at line 88 of file qmail-remote.c.
stralloc eaihost = {0} |
Definition at line 78 of file qmail-remote.c.
int flagauth = 0 |
Definition at line 60 of file qmail-remote.c.
int flagcritical = 0 |
Definition at line 278 of file qmail-remote.c.
int flagsize = 0 |
Definition at line 604 of file qmail-remote.c.
int flagsmtps = 0 |
Definition at line 61 of file qmail-remote.c.
int flagtls = 0 |
Definition at line 63 of file qmail-remote.c.
int flagtlsdomain = 0 |
Definition at line 62 of file qmail-remote.c.
int flagutf8 = 0 |
Definition at line 71 of file qmail-remote.c.
int flagverify = 0 |
Definition at line 69 of file qmail-remote.c.
char frombuf[BUFFER_SMALL] |
Definition at line 324 of file qmail-remote.c.
stralloc helohost = {0} |
Definition at line 77 of file qmail-remote.c.
stralloc host = {0} |
Definition at line 79 of file qmail-remote.c.
stralloc idnhost = {0} |
Definition at line 80 of file qmail-remote.c.
uint32 ifidx = 0 |
Definition at line 92 of file qmail-remote.c.
char inbuf[BUFFER_MTUSIZE] |
Definition at line 320 of file qmail-remote.c.
char ip4[4] |
Definition at line 90 of file qmail-remote.c.
char ip6[16] |
Definition at line 91 of file qmail-remote.c.
stralloc keyfile = {0} |
Definition at line 430 of file qmail-remote.c.
stralloc keypwd = {0} |
Definition at line 431 of file qmail-remote.c.
struct constmap mapauthsenders |
Definition at line 673 of file qmail-remote.c.
struct constmap mapdomaincerts |
Definition at line 438 of file qmail-remote.c.
struct constmap mapdomainips |
Definition at line 89 of file qmail-remote.c.
struct constmap mapqmtproutes |
Definition at line 98 of file qmail-remote.c.
struct constmap mapsmtproutes |
Definition at line 96 of file qmail-remote.c.
struct constmap maptlsdestinations |
Definition at line 440 of file qmail-remote.c.
char msgsize[FMT_ULONG] |
Definition at line 103 of file qmail-remote.c.
unsigned long msize = 0 |
Definition at line 104 of file qmail-remote.c.
char outbuf[BUFFER_MTUSIZE] |
Definition at line 322 of file qmail-remote.c.
struct ip_mx partner |
Definition at line 105 of file qmail-remote.c.
stralloc pass = {0} |
Definition at line 676 of file qmail-remote.c.
stralloc plain = {0} |
Definition at line 680 of file qmail-remote.c.
unsigned long port = PORT_SMTP |
Definition at line 56 of file qmail-remote.c.
stralloc qmtproutes = {0} |
Definition at line 97 of file qmail-remote.c.
int qmtpsend = 0 |
Definition at line 938 of file qmail-remote.c.
stralloc recip = {0} |
Definition at line 101 of file qmail-remote.c.
saa reciplist = {0} |
Definition at line 100 of file qmail-remote.c.
stralloc remotehost = {0} |
Definition at line 83 of file qmail-remote.c.
stralloc senddomain = {0} |
Definition at line 85 of file qmail-remote.c.
stralloc sender = {0} |
Definition at line 81 of file qmail-remote.c.
stralloc sendip = {0} |
Definition at line 86 of file qmail-remote.c.
stralloc slop = {0} |
Definition at line 679 of file qmail-remote.c.
int smtpfd |
Definition at line 292 of file qmail-remote.c.
stralloc smtproutes = {0} |
Definition at line 95 of file qmail-remote.c.
SSL* ssl |
Definition at line 107 of file qmail-remote.c.
unsigned long timeout = SMTP_TIMEOUT |
Definition at line 291 of file qmail-remote.c.
unsigned long timeoutconnect = TCP_TIMEOUT |
Definition at line 290 of file qmail-remote.c.
stralloc tlsdestinations = {0} |
Definition at line 439 of file qmail-remote.c.
char* tlsdestinfo = 0 |
Definition at line 434 of file qmail-remote.c.
char* tlsdomaininfo = 0 |
Definition at line 435 of file qmail-remote.c.
stralloc user = {0} |
Definition at line 675 of file qmail-remote.c.
unsigned long verifydepth = VERIFYDEPTH |
Definition at line 441 of file qmail-remote.c.
stralloc xuser = {0} |
Definition at line 681 of file qmail-remote.c.