This is the qmail that we're currently running at antartida.xyz. We took the notqmail repository and essentially applied patches for AUTH, SPF and DKIM. The DKIM patch does not come from the notqmail repository. We took it from the excellent notes at https://www.memoryhole.net/qmail/ We also applied the any-to-cname patch. But we did not take the oversize-dns patch. Any mistakes here are mine---I had to merge it as best we could and resolve various conflicts. This is it. -- MAILER DAEMON :) (*) Commit message from the notqmail branch Remove FILES.auth, add new files to FILES. Realphabetize Makefile targets. Remove trailing whitespace variously. Remove duplication declaration of auth in qmail-smtpd.c Modification to Erwin Hoffmann's SMTP authentication for qmail-smtpd, qmail-remote. Apply Jana Saout's qmail-spf-rc5.patch From https://www.saout.de/misc/spf/ This is an SPF implementation for qmail. SPF is something like a DNS based "reverse MX" system to designate permitted senders for mails depending on the domain name. The goal is to disallow sender address forgery. The patch is entirely written using the qmail string and DNS functions, and thus completely integrated into qmail without external dependencies. It can check incoming mails inside the SMTP daemon, add Received-SPF lines and optionally block undesired transfers. The check is performed at the envelope level.
51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
/* GLOBAL.H - RSAREF types and constants */
|
|
|
|
#include <string.h>
|
|
#include "uint32.h"
|
|
|
|
/* Copyright (C) RSA Laboratories, a division of RSA Data Security,
|
|
Inc., created 1991. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _GLOBAL_H_
|
|
#define _GLOBAL_H_ 1
|
|
|
|
/* PROTOTYPES should be set to one if and only if the compiler supports
|
|
function argument prototyping.
|
|
The following makes PROTOTYPES default to 1 if it has not already been
|
|
defined as 0 with C compiler flags.
|
|
*/
|
|
#ifndef PROTOTYPES
|
|
#define PROTOTYPES 1
|
|
#endif
|
|
|
|
/* POINTER defines a generic pointer type */
|
|
typedef unsigned char *POINTER;
|
|
|
|
/* UINT2 defines a two byte word */
|
|
typedef unsigned short int UINT2;
|
|
|
|
/* UINT4 defines a four byte word */
|
|
#ifdef UINT32_H
|
|
#define UINT4 uint32
|
|
#endif
|
|
|
|
#ifndef NULL_PTR
|
|
#define NULL_PTR ((POINTER)0)
|
|
#endif
|
|
|
|
#ifndef UNUSED_ARG
|
|
#define UNUSED_ARG(x) x = *(&x);
|
|
#endif
|
|
|
|
/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
|
|
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
|
|
returns an empty list.
|
|
*/
|
|
#if PROTOTYPES
|
|
#define PROTO_LIST(list) list
|
|
#else
|
|
#define PROTO_LIST(list) ()
|
|
#endif
|
|
|
|
#endif /* end _GLOBAL_H_ */
|