]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/cyrus-imapd-2.2.12-mupdate-thread-safe.patch
Wir kehren zurueck zu Kudzu, da hwinfo noch mehr Aerger macht.
[people/teissler/ipfire-2.x.git] / src / patches / cyrus-imapd-2.2.12-mupdate-thread-safe.patch
1 diff -Naur cyrus-imapd-2.2.12.orig/imap/mupdate.c cyrus-imapd-2.2.12/imap/mupdate.c
2 --- cyrus-imapd-2.2.12.orig/imap/mupdate.c 2004-12-17 17:32:16.000000000 +0100
3 +++ cyrus-imapd-2.2.12/imap/mupdate.c 2005-11-04 14:24:04.000000000 +0100
4 @@ -460,9 +460,36 @@
5 return 0;
6 }
7
8 +
9 +/*
10 + * The auth_*.c backends called by mysasl_proxy_policy()
11 + * use static variables which we need to protect with a mutex.
12 + */
13 +static pthread_mutex_t proxy_policy_mutex = PTHREAD_MUTEX_INITIALIZER;
14 +
15 +static int mupdate_proxy_policy(sasl_conn_t *conn,
16 + void *context,
17 + const char *requested_user, unsigned rlen,
18 + const char *auth_identity, unsigned alen,
19 + const char *def_realm,
20 + unsigned urlen,
21 + struct propctx *propctx)
22 +{
23 + int r;
24 +
25 + pthread_mutex_lock(&proxy_policy_mutex); /* LOCK */
26 +
27 + r = mysasl_proxy_policy(conn, context, requested_user, rlen,
28 + auth_identity, alen, def_realm, urlen, propctx);
29 +
30 + pthread_mutex_unlock(&proxy_policy_mutex); /* UNLOCK */
31 +
32 + return r;
33 +}
34 +
35 static struct sasl_callback mysasl_cb[] = {
36 { SASL_CB_GETOPT, &mysasl_config, NULL },
37 - { SASL_CB_PROXY_POLICY, &mysasl_proxy_policy, NULL },
38 + { SASL_CB_PROXY_POLICY, &mupdate_proxy_policy, NULL },
39 { SASL_CB_LIST_END, NULL, NULL }
40 };
41