annotate src/auth/passdb-blocking.c @ 3635:c12df370e1b2 HEAD

Added ssl_username_from_cert setting. Not actually tested yet..
author Timo Sirainen <tss@iki.fi>
date Sat, 01 Oct 2005 13:52:14 +0300
parents e2fe8222449d
children 62fc6883faeb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 /* Copyright (C) 2005 Timo Sirainen */
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "common.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 #include "str.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 #include "auth-worker-server.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #include "password-scheme.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 #include "passdb.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 #include "passdb-blocking.h"
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 #include <stdlib.h>
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 static enum passdb_result
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 check_failure(struct auth_request *request, const char **reply)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 {
3183
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
15 enum passdb_result ret;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
16 const char *p;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
17
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 /* OK / FAIL */
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 if (strncmp(*reply, "OK\t", 3) == 0) {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 *reply += 3;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 return PASSDB_RESULT_OK;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23
3183
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
24 /* FAIL \t result \t password */
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
25 if (strncmp(*reply, "FAIL\t", 5) == 0) {
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
26 *reply += 5;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
27 ret = atoi(t_strcut(*reply, '\t'));
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
28
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
29 p = strchr(*reply, '\t');
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
30 if (p == NULL)
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
31 *reply += strlen(*reply);
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
32 else
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
33 *reply = p + 1;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
34 if (ret != PASSDB_RESULT_OK)
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
35 return ret;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
36
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
37 auth_request_log_error(request, "blocking",
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
38 "Received invalid FAIL result from worker: %d", ret);
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
39 return PASSDB_RESULT_INTERNAL_FAILURE;
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
40 } else {
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 auth_request_log_error(request, "blocking",
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42 "Received unknown reply from worker: %s", *reply);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43 return PASSDB_RESULT_INTERNAL_FAILURE;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
47 static int get_pass_reply(struct auth_request *request, const char *reply,
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
48 const char **password_r, const char **scheme_r)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49 {
3257
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
50 const char *p, *p2;
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
51
3257
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
52 /* user \t {scheme}password [\t extra] */
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
53 p = strchr(reply, '\t');
3257
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
54 p2 = p == NULL ? NULL : strchr(p + 1, '\t');
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
55 if (p2 == NULL) {
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
56 *password_r = NULL;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 *scheme_r = NULL;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
58 return 0;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
59 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
60
3257
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
61 /* username may have changed, update it */
3635
c12df370e1b2 Added ssl_username_from_cert setting. Not actually tested yet..
Timo Sirainen <tss@iki.fi>
parents: 3520
diff changeset
62 auth_request_set_field(request, "user", t_strdup_until(reply, p), NULL);
3257
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
63
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
64 *password_r = t_strdup_until(p + 1, p2);
92c16e82b806 passdb can now change the username that was used to log in. This is mostly
Timo Sirainen <tss@iki.fi>
parents: 3183
diff changeset
65 reply = p2 + 1;
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
66
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
67 if (**password_r == '\0') {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
68 *password_r = NULL;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
69 *scheme_r = NULL;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
70 } else {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
71 request->passdb_password =
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
72 p_strdup(request->pool, *password_r);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
73
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
74 *scheme_r = password_get_scheme(password_r);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
75 if (*scheme_r == NULL) {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
76 auth_request_log_error(request, "blocking",
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
77 "Received reply from worker without "
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
78 "password scheme");
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
79 return -1;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
80 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
81 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
82
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
83 if (*reply != '\0') {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
84 i_assert(request->extra_fields == NULL);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
85
3432
079ec5c2d665 Last change caused user-given passwords to be cached, and later the password
Timo Sirainen <tss@iki.fi>
parents: 3257
diff changeset
86 p = strstr(reply, "\tproxy");
079ec5c2d665 Last change caused user-given passwords to be cached, and later the password
Timo Sirainen <tss@iki.fi>
parents: 3257
diff changeset
87 if (p != NULL && (p[6] == '\0' || p[6] == '\t'))
079ec5c2d665 Last change caused user-given passwords to be cached, and later the password
Timo Sirainen <tss@iki.fi>
parents: 3257
diff changeset
88 request->proxy = TRUE;
079ec5c2d665 Last change caused user-given passwords to be cached, and later the password
Timo Sirainen <tss@iki.fi>
parents: 3257
diff changeset
89
3520
e2fe8222449d s/occured/occurred/
Timo Sirainen <tss@iki.fi>
parents: 3432
diff changeset
90 request->extra_fields = auth_stream_reply_init(request);
e2fe8222449d s/occured/occurred/
Timo Sirainen <tss@iki.fi>
parents: 3432
diff changeset
91 auth_stream_reply_import(request->extra_fields, reply);
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
92 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
93 return 0;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
94 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
95
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
96 static void
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
97 verify_plain_callback(struct auth_request *request, const char *reply)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
98 {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
99 enum passdb_result result;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
100 const char *password, *scheme;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
101
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
102 result = check_failure(request, &reply);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
103 if (result >= 0) {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
104 if (get_pass_reply(request, reply, &password, &scheme) < 0)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
105 result = PASSDB_RESULT_INTERNAL_FAILURE;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
106 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
107
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
108 auth_request_verify_plain_callback(result, request);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
109 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
110
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
111 void passdb_blocking_verify_plain(struct auth_request *request)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
112 {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
113 string_t *str;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
114
3171
8a3b57385eca Added state variable for auth_request and several assertions to make sure
Timo Sirainen <tss@iki.fi>
parents: 3168
diff changeset
115 i_assert(request->extra_fields == NULL);
8a3b57385eca Added state variable for auth_request and several assertions to make sure
Timo Sirainen <tss@iki.fi>
parents: 3168
diff changeset
116
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
117 str = t_str_new(64);
3183
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
118 str_printfa(str, "PASSV\t%u\t", request->passdb->num);
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
119 str_append(str, request->mech_password);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
120 str_append_c(str, '\t');
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
121 auth_request_export(request, str);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
122
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
123 auth_worker_call(request, str_c(str), verify_plain_callback);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
124 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
125
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
126 static void
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
127 lookup_credentials_callback(struct auth_request *request, const char *reply)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
128 {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
129 enum passdb_result result;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
130 const char *password, *scheme;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
131
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
132 result = check_failure(request, &reply);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
133 if (result >= 0) {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
134 if (get_pass_reply(request, reply, &password, &scheme) < 0)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
135 result = PASSDB_RESULT_INTERNAL_FAILURE;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
136 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
137
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
138 passdb_handle_credentials(result, request->credentials,
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
139 password, scheme,
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
140 auth_request_lookup_credentials_callback,
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
141 request);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
142 }
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
143
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
144 void passdb_blocking_lookup_credentials(struct auth_request *request)
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
145 {
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
146 string_t *str;
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
147
3171
8a3b57385eca Added state variable for auth_request and several assertions to make sure
Timo Sirainen <tss@iki.fi>
parents: 3168
diff changeset
148 i_assert(request->extra_fields == NULL);
8a3b57385eca Added state variable for auth_request and several assertions to make sure
Timo Sirainen <tss@iki.fi>
parents: 3168
diff changeset
149
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
150 str = t_str_new(64);
3183
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
151 str_printfa(str, "PASSL\t%u\t%d\t",
16ea551957ed Replaced userdb/passdb settings with blocks so it's possible to give
Timo Sirainen <tss@iki.fi>
parents: 3171
diff changeset
152 request->passdb->num, request->credentials);
3168
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
153 auth_request_export(request, str);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
154
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
155 auth_worker_call(request, str_c(str), lookup_credentials_callback);
62f8366cb89c Forgot to add for blocking passdb/userdb workers..
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
156 }