git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Experimental: ESMTP LIMITS extension
[exim.git]
/
src
/
src
/
dbstuff.h
diff --git
a/src/src/dbstuff.h
b/src/src/dbstuff.h
index a45874dc9fcece2f04cb1d240ac2095e4a706bf8..89934154a68e14736c188534cab2ff74c29e65f1 100644
(file)
--- a/
src/src/dbstuff.h
+++ b/
src/src/dbstuff.h
@@
-3,6
+3,7
@@
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
/* This header file contains macro definitions so that a variety of DBM
/* See the file NOTICE for conditions of use and distribution. */
/* This header file contains macro definitions so that a variety of DBM
@@
-435,9
+436,8
@@
before been able to pass successfully. */
#define EXIM_DBSCAN(db, key, data, first, cursor) \
((db)->seq(db, &key, &data, (first? R_FIRST : R_NEXT)) == 0)
#define EXIM_DBSCAN(db, key, data, first, cursor) \
((db)->seq(db, &key, &data, (first? R_FIRST : R_NEXT)) == 0)
-/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). Make it
-refer to cursor, to keep picky compilers happy. */
-#define EXIM_DBDELETE_CURSOR(cursor) { cursor = cursor; }
+/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). */
+#define EXIM_DBDELETE_CURSOR(cursor) { }
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) (db)->close(db)
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) (db)->close(db)
@@
-523,9
+523,8
@@
typedef struct {
(((db)->lkey.dptr != NULL)? (free((db)->lkey.dptr),1) : 1),\
db->lkey = key, key.dptr != NULL)
(((db)->lkey.dptr != NULL)? (free((db)->lkey.dptr),1) : 1),\
db->lkey = key, key.dptr != NULL)
-/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). Make it
-refer to cursor, to keep picky compilers happy. */
-#define EXIM_DBDELETE_CURSOR(cursor) { cursor = cursor; }
+/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). */
+#define EXIM_DBDELETE_CURSOR(cursor) { }
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) \
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) \
@@
-601,9
+600,8
@@
interface */
#define EXIM_DBSCAN(db, key, data, first, cursor) \
(key = (first? dbm_firstkey(db) : dbm_nextkey(db)), key.dptr != NULL)
#define EXIM_DBSCAN(db, key, data, first, cursor) \
(key = (first? dbm_firstkey(db) : dbm_nextkey(db)), key.dptr != NULL)
-/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). Make it
-refer to cursor, to keep picky compilers happy. */
-#define EXIM_DBDELETE_CURSOR(cursor) { cursor = cursor; }
+/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). */
+#define EXIM_DBDELETE_CURSOR(cursor) { }
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) dbm_close(db)
/* EXIM_DBCLOSE */
#define EXIM_DBCLOSE__(db) dbm_close(db)
@@
-794,13
+792,21
@@
typedef struct {
#ifndef DISABLE_PIPE_CONNECT
/* This structure records the EHLO responses, cleartext and crypted,
#ifndef DISABLE_PIPE_CONNECT
/* This structure records the EHLO responses, cleartext and crypted,
-for an IP, as bitmasks (cf. OPTION_TLS) */
+for an IP, as bitmasks (cf. OPTION_TLS). For LIMITS, also values
+advertised for MAILMAX, RCPTMAX and RCPTDOMAINMAX; zero meaning no
+value advertised. */
typedef struct {
unsigned short cleartext_features;
unsigned short crypted_features;
unsigned short cleartext_auths;
unsigned short crypted_auths;
typedef struct {
unsigned short cleartext_features;
unsigned short crypted_features;
unsigned short cleartext_auths;
unsigned short crypted_auths;
+
+# ifdef EXPERIMENTAL_ESMTP_LIMITS
+ unsigned int limit_mail;
+ unsigned int limit_rcpt;
+ unsigned int limit_rcptdom;
+# endif
} ehlo_resp_precis;
typedef struct {
} ehlo_resp_precis;
typedef struct {