diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2018-07-28 18:38:43 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2018-07-28 18:42:56 +0200 |
commit | af307d090391717fedcbbb4db7a33115d31786ec (patch) | |
tree | 79b4b5c9cbe2111ee6867a4d71c2793732c59639 /testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch | |
parent | 44e80ac21d375f4d3f5d01a3d6a00bba7d3669c3 (diff) | |
download | aports-af307d090391717fedcbbb4db7a33115d31786ec.tar.bz2 aports-af307d090391717fedcbbb4db7a33115d31786ec.tar.xz |
testing/opensmtpd-extras: backport some patches from master
Diffstat (limited to 'testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch')
-rw-r--r-- | testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch b/testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch new file mode 100644 index 0000000000..d85a69402a --- /dev/null +++ b/testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch @@ -0,0 +1,127 @@ +From a29785e9177f5801317fcb3db297cbdafa4f3d93 Mon Sep 17 00:00:00 2001 +From: "Paul B. Henson" <henson@acm.org> +Date: Sat, 26 May 2018 18:09:25 -0700 +Subject: [PATCH] Add ldap reconnection logic to lookup function; reorder a + bit to avoid implicit function declaration errors. + +Patch-Source: https://github.com/OpenSMTPD/OpenSMTPD-extras/commit/a29785e9177f5801317fcb3db297cbdafa4f3d93 +--- + extras/tables/table-ldap/table_ldap.c | 88 +++++++++++++++------------ + 1 file changed, 49 insertions(+), 39 deletions(-) + +diff --git a/extras/tables/table-ldap/table_ldap.c b/extras/tables/table-ldap/table_ldap.c +index 88c9ffd..090cfb4 100644 +--- a/extras/tables/table-ldap/table_ldap.c ++++ b/extras/tables/table-ldap/table_ldap.c +@@ -74,45 +74,6 @@ table_ldap_update(void) + return 1; + } + +-static int +-table_ldap_check(int service, struct dict *params, const char *key) +-{ +- int ret; +- +- switch(service) { +- case K_ALIAS: +- case K_DOMAIN: +- case K_CREDENTIALS: +- case K_USERINFO: +- case K_MAILADDR: +- if ((ret = ldap_run_query(service, key, NULL, 0)) >= 0) { +- return ret; +- } +- log_debug("debug: table-ldap: reconnecting"); +- if (!(ret = ldap_open())) { +- log_warnx("warn: table-ldap: failed to connect"); +- } +- return ret; +- default: +- return -1; +- } +-} +- +-static int +-table_ldap_lookup(int service, struct dict *params, const char *key, char *dst, size_t sz) +-{ +- switch(service) { +- case K_ALIAS: +- case K_DOMAIN: +- case K_CREDENTIALS: +- case K_USERINFO: +- case K_MAILADDR: +- return ldap_run_query(service, key, dst, sz); +- default: +- return -1; +- } +-} +- + static int + table_ldap_fetch(int service, struct dict *params, char *dst, size_t sz) + { +@@ -361,6 +322,31 @@ err: + return 0; + } + ++static int ++table_ldap_lookup(int service, struct dict *params, const char *key, char *dst, size_t sz) ++{ ++ int ret; ++ ++ switch(service) { ++ case K_ALIAS: ++ case K_DOMAIN: ++ case K_CREDENTIALS: ++ case K_USERINFO: ++ case K_MAILADDR: ++ if ((ret = ldap_run_query(service, key, dst, sz)) > 0) { ++ return ret; ++ } ++ log_debug("debug: table-ldap: reconnecting"); ++ if (!(ret = ldap_open())) { ++ log_warnx("warn: table-ldap: failed to connect"); ++ return ret; ++ } ++ return ldap_run_query(service, key, dst, sz); ++ default: ++ return -1; ++ } ++} ++ + static int + ldap_query(const char *filter, char **attributes, char ***outp, size_t n) + { +@@ -498,6 +484,30 @@ end: + return ret; + } + ++static int ++table_ldap_check(int service, struct dict *params, const char *key) ++{ ++ int ret; ++ ++ switch(service) { ++ case K_ALIAS: ++ case K_DOMAIN: ++ case K_CREDENTIALS: ++ case K_USERINFO: ++ case K_MAILADDR: ++ if ((ret = ldap_run_query(service, key, NULL, 0)) >= 0) { ++ return ret; ++ } ++ log_debug("debug: table-ldap: reconnecting"); ++ if (!(ret = ldap_open())) { ++ log_warnx("warn: table-ldap: failed to connect"); ++ } ++ return ret; ++ default: ++ return -1; ++ } ++} ++ + int + main(int argc, char **argv) + { +-- +2.18.0 + |