s/qmail 4.2.29a
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 "logmsg.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 "hmac_md5.h"
#include "tls_remote.h"
#include "tls_errors.h"
#include "tls_timeoutio.h"
#include "uint_t.h"
Go to the source code of this file.
Macros | |
#define | WHO "qmail-remote" |
#define | MAX_SIZE 200000000 |
#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 |
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 | smallbuf [BUFFER_SMALL] |
buffer | bs = BUFFER_INIT(write,1,smallbuf,sizeof(smallbuf)) |
int | flagcritical = 0 |
int | timeoutconnect = 60 |
int | smtpfd |
int | timeout = 1200 |
char | inbuf [BUFFER_MTUSIZE] |
buffer | bi = BUFFER_INIT(read,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 MAX_SIZE 200000000 |
Definition at line 45 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 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 1016 of file qmail-remote.c.
void blast | ( | ) |
Definition at line 375 of file qmail-remote.c.
void dropped | ( | ) |
Definition at line 270 of file qmail-remote.c.
void err_authprot | ( | ) |
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 71 of file qmail-remote.c.
void get | ( | char * | ch | ) |
Definition at line 320 of file qmail-remote.c.
void getcontrols | ( | void | ) |
Definition at line 1050 of file qmail-remote.c.
void mailfrom | ( | ) |
Definition at line 626 of file qmail-remote.c.
int mailfrom_cram | ( | ) |
Definition at line 750 of file qmail-remote.c.
int mailfrom_login | ( | ) |
Definition at line 720 of file qmail-remote.c.
int mailfrom_plain | ( | ) |
Definition at line 694 of file qmail-remote.c.
void mailfrom_xtext | ( | ) |
Definition at line 677 of file qmail-remote.c.
void out | ( | char * | s | ) |
void outhost | ( | ) |
Definition at line 254 of file qmail-remote.c.
void outsafe | ( | stralloc * | sa | ) |
void outsmtptext | ( | ) |
Definition at line 351 of file qmail-remote.c.
void perm_ambigmx | ( | ) |
Definition at line 243 of file qmail-remote.c.
void perm_dns | ( | ) |
Definition at line 229 of file qmail-remote.c.
void perm_nomx | ( | ) |
Definition at line 236 of file qmail-remote.c.
void perm_partialline | ( | ) |
Definition at line 214 of file qmail-remote.c.
void perm_usage | ( | ) |
Definition at line 224 of file qmail-remote.c.
void qmtp | ( | ) |
Definition at line 907 of file qmail-remote.c.
void quit | ( | char * | prepend, |
char * | append | ||
) |
Definition at line 363 of file qmail-remote.c.
void smtp | ( | ) |
Definition at line 814 of file qmail-remote.c.
void smtp_auth | ( | ) |
Definition at line 795 of file qmail-remote.c.
void smtp_greeting | ( | ) |
Definition at line 589 of file qmail-remote.c.
int smtp_size | ( | ) |
void smtp_starttls | ( | ) |
Definition at line 610 of file qmail-remote.c.
unsigned long smtpcode | ( | ) |
Definition at line 328 of file qmail-remote.c.
int starttls_peer | ( | ) |
void temp_chdir | ( | ) |
Definition at line 204 of file qmail-remote.c.
void temp_control | ( | ) |
Definition at line 209 of file qmail-remote.c.
void temp_dns | ( | ) |
Definition at line 190 of file qmail-remote.c.
void temp_dnscanon | ( | ) |
Definition at line 183 of file qmail-remote.c.
void temp_noconn | ( | ) |
Definition at line 164 of file qmail-remote.c.
void temp_noip | ( | ) |
Definition at line 142 of file qmail-remote.c.
void temp_nomem | ( | void | ) |
Definition at line 147 of file qmail-remote.c.
void temp_nomx | ( | ) |
Definition at line 197 of file qmail-remote.c.
void temp_oserr | ( | ) |
Definition at line 152 of file qmail-remote.c.
void temp_osip | ( | ) |
Definition at line 157 of file qmail-remote.c.
void temp_proto | ( | ) |
Definition at line 219 of file qmail-remote.c.
void temp_qmtpnoc | ( | ) |
Definition at line 171 of file qmail-remote.c.
void temp_read | ( | ) |
Definition at line 178 of file qmail-remote.c.
void tls_init | ( | ) |
Definition at line 419 of file qmail-remote.c.
void tls_peercheck | ( | ) |
Definition at line 470 of file qmail-remote.c.
int utf8received | ( | ) |
Definition at line 536 of file qmail-remote.c.
Definition at line 656 of file qmail-remote.c.
void zero | ( | ) |
Definition at line 116 of file qmail-remote.c.
void zerodie | ( | void | ) |
Definition at line 121 of file qmail-remote.c.
stralloc auth = {0} |
Definition at line 648 of file qmail-remote.c.
char* authsender = 0 |
Definition at line 91 of file qmail-remote.c.
stralloc authsenders = {0} |
Definition at line 643 of file qmail-remote.c.
Definition at line 315 of file qmail-remote.c.
Definition at line 311 of file qmail-remote.c.
Definition at line 313 of file qmail-remote.c.
Definition at line 109 of file qmail-remote.c.
stralloc cadir = {0} |
Definition at line 404 of file qmail-remote.c.
stralloc cafile = {0} |
Definition at line 403 of file qmail-remote.c.
stralloc canonbox = {0} |
Definition at line 82 of file qmail-remote.c.
stralloc canonhost = {0} |
Definition at line 80 of file qmail-remote.c.
stralloc certfile = {0} |
Definition at line 405 of file qmail-remote.c.
stralloc chal = {0} |
Definition at line 649 of file qmail-remote.c.
stralloc ciphers = {0} |
Definition at line 408 of file qmail-remote.c.
unsigned long code |
Definition at line 576 of file qmail-remote.c.
SSL_CTX* ctx |
Definition at line 106 of file qmail-remote.c.
stralloc domaincerts = {0} |
Definition at line 413 of file qmail-remote.c.
stralloc domainips = {0} |
Definition at line 86 of file qmail-remote.c.
stralloc eaihost = {0} |
Definition at line 76 of file qmail-remote.c.
int flagauth = 0 |
Definition at line 58 of file qmail-remote.c.
int flagcritical = 0 |
Definition at line 268 of file qmail-remote.c.
int flagsize = 0 |
Definition at line 577 of file qmail-remote.c.
int flagsmtps = 0 |
Definition at line 59 of file qmail-remote.c.
int flagtls = 0 |
Definition at line 61 of file qmail-remote.c.
int flagtlsdomain = 0 |
Definition at line 60 of file qmail-remote.c.
int flagutf8 = 0 |
Definition at line 69 of file qmail-remote.c.
int flagverify = 0 |
Definition at line 67 of file qmail-remote.c.
char frombuf[BUFFER_SMALL] |
Definition at line 314 of file qmail-remote.c.
stralloc helohost = {0} |
Definition at line 75 of file qmail-remote.c.
stralloc host = {0} |
Definition at line 77 of file qmail-remote.c.
stralloc idnhost = {0} |
Definition at line 78 of file qmail-remote.c.
uint32 ifidx = 0 |
Definition at line 90 of file qmail-remote.c.
char inbuf[BUFFER_MTUSIZE] |
Definition at line 310 of file qmail-remote.c.
char ip4[4] |
Definition at line 88 of file qmail-remote.c.
char ip6[16] |
Definition at line 89 of file qmail-remote.c.
stralloc keyfile = {0} |
Definition at line 406 of file qmail-remote.c.
stralloc keypwd = {0} |
Definition at line 407 of file qmail-remote.c.
struct constmap mapauthsenders |
Definition at line 644 of file qmail-remote.c.
struct constmap mapdomaincerts |
Definition at line 414 of file qmail-remote.c.
struct constmap mapdomainips |
Definition at line 87 of file qmail-remote.c.
struct constmap mapqmtproutes |
Definition at line 96 of file qmail-remote.c.
struct constmap mapsmtproutes |
Definition at line 94 of file qmail-remote.c.
struct constmap maptlsdestinations |
Definition at line 416 of file qmail-remote.c.
char msgsize[FMT_ULONG] |
Definition at line 101 of file qmail-remote.c.
unsigned long msize = 0 |
Definition at line 102 of file qmail-remote.c.
char outbuf[BUFFER_MTUSIZE] |
Definition at line 312 of file qmail-remote.c.
struct ip_mx partner |
Definition at line 103 of file qmail-remote.c.
stralloc pass = {0} |
Definition at line 647 of file qmail-remote.c.
stralloc plain = {0} |
Definition at line 651 of file qmail-remote.c.
unsigned long port = PORT_SMTP |
Definition at line 54 of file qmail-remote.c.
stralloc qmtproutes = {0} |
Definition at line 95 of file qmail-remote.c.
int qmtpsend = 0 |
Definition at line 905 of file qmail-remote.c.
stralloc recip = {0} |
Definition at line 99 of file qmail-remote.c.
saa reciplist = {0} |
Definition at line 98 of file qmail-remote.c.
stralloc remotehost = {0} |
Definition at line 81 of file qmail-remote.c.
stralloc senddomain = {0} |
Definition at line 83 of file qmail-remote.c.
stralloc sender = {0} |
Definition at line 79 of file qmail-remote.c.
stralloc sendip = {0} |
Definition at line 84 of file qmail-remote.c.
stralloc slop = {0} |
Definition at line 650 of file qmail-remote.c.
char smallbuf[BUFFER_SMALL] |
Definition at line 108 of file qmail-remote.c.
int smtpfd |
Definition at line 281 of file qmail-remote.c.
stralloc smtproutes = {0} |
Definition at line 93 of file qmail-remote.c.
SSL* ssl |
Definition at line 105 of file qmail-remote.c.
int timeout = 1200 |
Definition at line 282 of file qmail-remote.c.
int timeoutconnect = 60 |
Definition at line 280 of file qmail-remote.c.
stralloc tlsdestinations = {0} |
Definition at line 415 of file qmail-remote.c.
char* tlsdestinfo = 0 |
Definition at line 410 of file qmail-remote.c.
char* tlsdomaininfo = 0 |
Definition at line 411 of file qmail-remote.c.
stralloc user = {0} |
Definition at line 646 of file qmail-remote.c.
unsigned long verifydepth = VERIFYDEPTH |
Definition at line 417 of file qmail-remote.c.
stralloc xuser = {0} |
Definition at line 652 of file qmail-remote.c.