Mercurial > dovecot > original-hg > dovecot-1.2
annotate src/auth/passdb-sia.c @ 9575:0a00dcc4f0ea HEAD
lib-storage: Allow shared namespace prefix to use %variable modifiers.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 26 May 2010 17:07:51 +0100 |
parents | c47b78e843aa |
children |
rev | line source |
---|---|
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 /* Copyright (C) 2006 Simon L Jackson */ |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 /* Tru64 SIA support */ |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
4 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 #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:
6411
diff
changeset
|
6 #include "passdb.h" |
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 #ifdef PASSDB_SIA |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
9 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
10 #include "safe-memset.h" |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 #include <sia.h> |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 #include <siad.h> |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 #include <sys/security.h> |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 |
6411
6a64e64fa3a3
Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents:
5259
diff
changeset
|
16 static int checkpw_collect(int timeout ATTR_UNUSED, int rendition, |
6a64e64fa3a3
Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents:
5259
diff
changeset
|
17 uchar_t *title ATTR_UNUSED, |
6a64e64fa3a3
Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents:
5259
diff
changeset
|
18 int nprompts ATTR_UNUSED, |
6a64e64fa3a3
Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents:
5259
diff
changeset
|
19 prompt_t *prompts ATTR_UNUSED) |
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
21 switch (rendition) { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 case SIAONELINER: |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
23 case SIAINFO: |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
24 case SIAWARNING: |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
25 return SIACOLSUCCESS; |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
26 } |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
27 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
28 /* everything else is bogus */ |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
29 return SIACOLABORT; |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
30 } |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
31 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
32 static void |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
33 local_sia_verify_plain(struct auth_request *request, const char *password, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
34 verify_plain_callback_t *callback) |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
35 { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
36 char *argutility = "dovecot"; |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
37 |
5259 | 38 auth_request_log_debug(request, "sia", "lookup"); |
39 | |
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
40 /* check if the password is valid */ |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
41 if (sia_validate_user(checkpw_collect, 1, &argutility, NULL, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
42 (char *)request->user, NULL, NULL, NULL, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
43 (char *)password) != SIASUCCESS) { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
44 auth_request_log_info(request, "sia", "password mismatch"); |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
45 callback(PASSDB_RESULT_PASSWORD_MISMATCH, request); |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
46 } else { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
47 callback(PASSDB_RESULT_OK, request); |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
48 } |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
49 } |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
50 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
51 struct passdb_module_interface passdb_sia = { |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
52 "sia", |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
53 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
54 NULL, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
55 NULL, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
56 NULL, |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
57 |
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
58 local_sia_verify_plain, |
4782
2c1cc5bbc260
Added auth_request_set_credentials() to modify credentials in passdb and
Timo Sirainen <tss@iki.fi>
parents:
4638
diff
changeset
|
59 NULL, |
2c1cc5bbc260
Added auth_request_set_credentials() to modify credentials in passdb and
Timo Sirainen <tss@iki.fi>
parents:
4638
diff
changeset
|
60 NULL |
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
61 }; |
8217
c47b78e843aa
Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents:
6411
diff
changeset
|
62 #else |
c47b78e843aa
Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents:
6411
diff
changeset
|
63 struct passdb_module_interface passdb_sia = { |
c47b78e843aa
Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents:
6411
diff
changeset
|
64 MEMBER(name) "sia" |
c47b78e843aa
Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents:
6411
diff
changeset
|
65 }; |
4638
689a02ca02d3
Tru64 SIA authentication support. Patch by Simon L Jackson
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 #endif |