annotate src/auth/userdb-prefetch.c @ 9608:f30e6a345d73 HEAD

Added tag 1.2.14 for changeset eb04e2b13e3d
author Timo Sirainen <tss@iki.fi>
date Tue, 24 Aug 2010 18:10:29 +0100
parents 00cd9aacd03c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9532
00cd9aacd03c Updated copyright notices to include year 2010.
Timo Sirainen <tss@iki.fi>
parents: 8590
diff changeset
1 /* Copyright (c) 2004-2010 Dovecot authors, see the included COPYING file */
3667
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "common.h"
8217
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 8058
diff changeset
4 #include "userdb.h"
3667
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #ifdef USERDB_PREFETCH
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 #include "str.h"
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 #include "var-expand.h"
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 #include <stdlib.h>
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 static void prefetch_lookup(struct auth_request *auth_request,
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 userdb_callback_t *callback)
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 {
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
16 /* auth_request_set_field() should have already placed the userdb_*
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
17 values to userdb_reply. */
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
18 if (auth_request->userdb_reply == NULL) {
4146
bdf68bc43354 Allow prefetch userdb to exist nicely with other userdbs.
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
19 if (auth_request->auth->userdbs->next == NULL) {
bdf68bc43354 Allow prefetch userdb to exist nicely with other userdbs.
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
20 /* no other userdbs */
8512
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
21 if (auth_request->userdb_lookup) {
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
22 auth_request_log_error(auth_request, "prefetch",
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
23 "userdb lookup not possible with only userdb prefetch");
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
24 } else {
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
25 auth_request_log_error(auth_request, "prefetch",
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
26 "passdb didn't return userdb entries");
2034087a9663 If only userdb prefetch is defined and userdb lookup is tried, give a better error message.
Timo Sirainen <tss@iki.fi>
parents: 8217
diff changeset
27 }
8058
17d8b197641b userdb prefetch: Userdb lookups shouldn't log the "passdb didn't return
Timo Sirainen <tss@iki.fi>
parents: 7854
diff changeset
28 } else if (!auth_request->userdb_lookup ||
17d8b197641b userdb prefetch: Userdb lookups shouldn't log the "passdb didn't return
Timo Sirainen <tss@iki.fi>
parents: 7854
diff changeset
29 auth_request->auth->verbose_debug) {
4146
bdf68bc43354 Allow prefetch userdb to exist nicely with other userdbs.
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
30 /* more userdbs, they may know the user */
bdf68bc43354 Allow prefetch userdb to exist nicely with other userdbs.
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
31 auth_request_log_info(auth_request, "prefetch",
7854
ea275bc7c8a1 prefetch: Updated log message.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
32 "passdb didn't return userdb entries, "
ea275bc7c8a1 prefetch: Updated log message.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
33 "trying the next userdb");
4146
bdf68bc43354 Allow prefetch userdb to exist nicely with other userdbs.
Timo Sirainen <tss@iki.fi>
parents: 3863
diff changeset
34 }
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
35 callback(USERDB_RESULT_USER_UNKNOWN, auth_request);
3667
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36 return;
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
37 }
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
39 auth_request_log_debug(auth_request, "prefetch", "success");
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5259
diff changeset
40 callback(USERDB_RESULT_OK, auth_request);
3667
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 }
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43 struct userdb_module_interface userdb_prefetch = {
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 "prefetch",
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46 NULL,
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
47 NULL,
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
48 NULL,
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
50 prefetch_lookup
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
51 };
8217
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 8058
diff changeset
52 #else
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 8058
diff changeset
53 struct userdb_module_interface userdb_prefetch = {
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 8058
diff changeset
54 MEMBER(name) "prefetch"
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 8058
diff changeset
55 };
3667
b7569a6a4ada Renamed userdb passdb to prefetch.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
56 #endif