annotate src/auth/userdb-passwd-file.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 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: 9529
diff changeset
1 /* Copyright (c) 2002-2010 Dovecot authors, see the included COPYING file */
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
3474
9096b7957413 Removed direct config.h including. I'm not sure why it was done before,
Timo Sirainen <tss@iki.fi>
parents: 3166
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: 7086
diff changeset
4 #include "userdb.h"
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #ifdef USERDB_PASSWD_FILE
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7
3158
8849f2e380d1 userdb can now return extra parameters to master. Removed special handling
Timo Sirainen <tss@iki.fi>
parents: 3127
diff changeset
8 #include "str.h"
4955
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
9 #include "auth-cache.h"
4034
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
10 #include "var-expand.h"
1062
0522a0315d2f Cleanups, LDAP support compiles again and generally looks ok, even if it
Timo Sirainen <tss@iki.fi>
parents: 1046
diff changeset
11 #include "db-passwd-file.h"
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
4955
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
13 #define PASSWD_FILE_CACHE_KEY "%u"
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
14
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
15 struct passwd_file_userdb_module {
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
16 struct userdb_module module;
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
17
3891
2d0859490a2f If debug is enabled, tell how many users are found from passwd-file whenever
Timo Sirainen <tss@iki.fi>
parents: 3879
diff changeset
18 struct auth *auth;
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
19 struct db_passwd_file *pwf;
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
20 };
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21
2057
5e0167577399 Fixed var_expand() to take a table of variables rather than a few predefined
Timo Sirainen <tss@iki.fi>
parents: 1443
diff changeset
22 static void passwd_file_lookup(struct auth_request *auth_request,
3166
e6a487d80288 Restructuring of auth code. Balancer auth processes were a bad idea. Usually
Timo Sirainen <tss@iki.fi>
parents: 3158
diff changeset
23 userdb_callback_t *callback)
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 {
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
25 struct userdb_module *_module = auth_request->userdb->userdb;
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
26 struct passwd_file_userdb_module *module =
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
27 (struct passwd_file_userdb_module *)_module;
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 struct passwd_user *pu;
5306
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
29 const struct var_expand_table *table;
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
30 string_t *str;
4034
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
31 const char *key, *value;
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
32 char **p;
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
34 pu = db_passwd_file_lookup(module->pwf, auth_request);
1046
561da07883b6 Async userdb and passdb interface.
Timo Sirainen <tss@iki.fi>
parents: 1035
diff changeset
35 if (pu == NULL) {
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5306
diff changeset
36 callback(USERDB_RESULT_USER_UNKNOWN, auth_request);
1046
561da07883b6 Async userdb and passdb interface.
Timo Sirainen <tss@iki.fi>
parents: 1035
diff changeset
37 return;
561da07883b6 Async userdb and passdb interface.
Timo Sirainen <tss@iki.fi>
parents: 1035
diff changeset
38 }
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
39
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5306
diff changeset
40 auth_request_init_userdb_reply(auth_request);
5875
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
41 if (pu->uid != (uid_t)-1) {
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
42 auth_request_set_userdb_field(auth_request, "uid",
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
43 dec2str(pu->uid));
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
44 }
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
45 if (pu->gid != (gid_t)-1) {
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
46 auth_request_set_userdb_field(auth_request, "gid",
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
47 dec2str(pu->gid));
cda9824bab63 Allow passwd-file ti contain empty uid/gid fields.
Timo Sirainen <tss@iki.fi>
parents: 5872
diff changeset
48 }
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49
3158
8849f2e380d1 userdb can now return extra parameters to master. Removed special handling
Timo Sirainen <tss@iki.fi>
parents: 3127
diff changeset
50 if (pu->home != NULL)
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5306
diff changeset
51 auth_request_set_userdb_field(auth_request, "home", pu->home);
4034
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
52
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
53 if (pu->extra_fields != NULL) {
5306
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
54 str = t_str_new(512);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
55 table = auth_request_get_var_expand_table(auth_request, NULL);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
56
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
57 for (p = pu->extra_fields; *p != NULL; p++) {
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
58 if (strncmp(*p, "userdb_", 7) != 0)
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
59 continue;
4034
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
60
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
61 key = *p + 7;
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
62 value = strchr(key, '=');
5306
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
63 if (value != NULL) {
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
64 key = t_strdup_until(key, value);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
65 str_truncate(str, 0);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
66 var_expand(str, value + 1, table);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
67 value = str_c(str);
1c6c3d9494fb Reverted the last change, it was originally correct after all.
Timo Sirainen <tss@iki.fi>
parents: 5304
diff changeset
68 }
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5306
diff changeset
69 auth_request_set_userdb_field(auth_request, key, value);
4034
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
70 }
b533c52196e3 Updated passwd-file format to allow specifying any key=value fields. Since the value fields may contain ':' characters, this changes the file format a bit. Previously the last two fields were "flags" and "mail". Flags has been empty for last 3 years however, so the new format is used if the flags field contains something. In that case there is no separate mail field, it can instead be specified by adding userdb_mail=<mail> parameter.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 3891
diff changeset
71 }
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
72
5872
93bd157917ca Changed userdb callback API. Don't require uid/gid to be returned by userdb.
Timo Sirainen <tss@iki.fi>
parents: 5306
diff changeset
73 callback(USERDB_RESULT_OK, auth_request);
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
74 }
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
75
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
76 static struct userdb_module *
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
77 passwd_file_preinit(struct auth_userdb *auth_userdb, const char *args)
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
78 {
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
79 struct passwd_file_userdb_module *module;
6394
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
80 const char *format = PASSWD_FILE_DEFAULT_USERNAME_FORMAT;
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
81 const char *p;
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
82
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
83 if (strncmp(args, "username_format=", 16) == 0) {
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
84 args += 16;
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
85 p = strchr(args, ' ');
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
86 if (p == NULL) {
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
87 format = args;
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
88 args = "";
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
89 } else {
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
90 format = p_strdup_until(auth_userdb->auth->pool,
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
91 args, p);
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
92 args = p + 1;
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
93 }
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
94 }
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
95
9529
4b0ec8160ff4 passwd-file: Give a better error message if args (path) is empty.
Timo Sirainen <tss@iki.fi>
parents: 8590
diff changeset
96 if (*args == '\0')
4b0ec8160ff4 passwd-file: Give a better error message if args (path) is empty.
Timo Sirainen <tss@iki.fi>
parents: 8590
diff changeset
97 i_fatal("userdb passwd-file: Missing args");
4b0ec8160ff4 passwd-file: Give a better error message if args (path) is empty.
Timo Sirainen <tss@iki.fi>
parents: 8590
diff changeset
98
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
99 module = p_new(auth_userdb->auth->pool,
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
100 struct passwd_file_userdb_module, 1);
3891
2d0859490a2f If debug is enabled, tell how many users are found from passwd-file whenever
Timo Sirainen <tss@iki.fi>
parents: 3879
diff changeset
101 module->auth = auth_userdb->auth;
6394
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
102 module->pwf = db_passwd_file_init(args, format, TRUE,
9e74c008484a Added username_format parameter for passwd-file passdb and userdb.
Timo Sirainen <tss@iki.fi>
parents: 5875
diff changeset
103 module->auth->verbose_debug);
4955
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
104
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
105 if (!module->pwf->vars)
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
106 module->module.cache_key = PASSWD_FILE_CACHE_KEY;
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
107 else {
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
108 module->module.cache_key =
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
109 auth_cache_parse_key(auth_userdb->auth->pool,
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
110 t_strconcat(PASSWD_FILE_CACHE_KEY,
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
111 module->pwf->path,
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
112 NULL));
f0cc5486696e Authentication cache caches now also userdb data. Code by Tommi Saviranta.
Timo Sirainen <timo.sirainen@movial.fi>
parents: 4880
diff changeset
113 }
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
114 return &module->module;
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
115 }
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
116
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
117 static void passwd_file_init(struct userdb_module *_module,
6411
6a64e64fa3a3 Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents: 6394
diff changeset
118 const char *args ATTR_UNUSED)
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
119 {
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
120 struct passwd_file_userdb_module *module =
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
121 (struct passwd_file_userdb_module *)_module;
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
122
4035
335ac59efffd If passwd-file is being used as userdb, complain immediately if some entries
Timo Sirainen <tss@iki.fi>
parents: 4034
diff changeset
123 db_passwd_file_parse(module->pwf);
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
124 }
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
125
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
126 static void passwd_file_deinit(struct userdb_module *_module)
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
127 {
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
128 struct passwd_file_userdb_module *module =
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
129 (struct passwd_file_userdb_module *)_module;
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
130
3879
928229f8b3e6 deinit, unref, destroy, close, free, etc. functions now take a pointer to
Timo Sirainen <tss@iki.fi>
parents: 3658
diff changeset
131 db_passwd_file_unref(&module->pwf);
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
132 }
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
133
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
134 struct userdb_module_interface userdb_passwd_file = {
2942
c7d426f8cb58 Added name variable for userdb_module and passdb_module and changed their
Timo Sirainen <tss@iki.fi>
parents: 2648
diff changeset
135 "passwd-file",
c7d426f8cb58 Added name variable for userdb_module and passdb_module and changed their
Timo Sirainen <tss@iki.fi>
parents: 2648
diff changeset
136
3658
fc4622b1c1ef Separated userdb_module's interface and the actual data struct.
Timo Sirainen <tss@iki.fi>
parents: 3657
diff changeset
137 passwd_file_preinit,
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
138 passwd_file_init,
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
139 passwd_file_deinit,
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
140
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
141 passwd_file_lookup
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
142 };
8217
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
143 #else
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
144 struct userdb_module_interface userdb_passwd_file = {
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
145 MEMBER(name) "passwd-file"
c47b78e843aa Separate "unknown passdb/userdb X" and "support for X not compiled in" error messages.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
146 };
1035
fe49ece0f3ea We have now separate "userdb" and "passdb". They aren't tied to each others
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
147 #endif