aboutsummaryrefslogtreecommitdiffstats
path: root/testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2018-07-28 18:38:43 +0200
committerJakub Jirutka <jakub@jirutka.cz>2018-07-28 18:42:56 +0200
commitaf307d090391717fedcbbb4db7a33115d31786ec (patch)
tree79b4b5c9cbe2111ee6867a4d71c2793732c59639 /testing/opensmtpd-extras/0004-Add-ldap-reconnection-logic-to-lookup-function-reord.patch
parent44e80ac21d375f4d3f5d01a3d6a00bba7d3669c3 (diff)
downloadaports-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.patch127
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
+