2
Unix SMB/CIFS implementation.
5
Copyright (C) Gerald Carter 2006
7
This library is free software; you can redistribute it and/or
8
modify it under the terms of the GNU Lesser General Public
9
License as published by the Free Software Foundation; either
10
version 3 of the License, or (at your option) any later version.
12
This library is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
Library General Public License for more details.
17
You should have received a copy of the GNU Lesser General Public License
18
along with this program. If not, see <http://www.gnu.org/licenses/>.
26
# define LDAPMessage void
30
/* The interface version specifier */
32
#define SMB_NSS_INFO_INTERFACE_VERSION 1
34
/* List of available backends. All backends must
35
register themselves */
37
struct nss_function_entry {
38
struct nss_function_entry *prev, *next;
41
struct nss_info_methods *methods;
44
/* List of configured domains. Each domain points
45
back to its configured backend. */
47
struct nss_domain_entry {
48
struct nss_domain_entry *prev, *next;
53
struct nss_function_entry *backend;
55
/* hold state on a per domain basis */
62
struct nss_info_methods {
63
NTSTATUS (*init)( struct nss_domain_entry *e );
64
NTSTATUS (*get_nss_info)( struct nss_domain_entry *e,
67
ADS_STRUCT *ads, LDAPMessage *msg,
68
char **homedir, char **shell, char **gecos, gid_t *p_gid);
69
NTSTATUS (*map_to_alias)(TALLOC_CTX *mem_ctx,
70
struct nss_domain_entry *e,
71
const char *name, char **alias);
72
NTSTATUS (*map_from_alias)(TALLOC_CTX *mem_ctx,
73
struct nss_domain_entry *e,
74
const char *alias, char **name);
75
NTSTATUS (*close_fn)( void );
79
/* The following definitions come from nsswitch/nss_info.c */
81
NTSTATUS smb_register_idmap_nss(int version,
83
struct nss_info_methods *methods);
85
NTSTATUS nss_init( const char **nss_list );
87
NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
89
ADS_STRUCT *ads, LDAPMessage *msg,
90
char **homedir, char **shell, char **gecos,
93
NTSTATUS nss_map_to_alias( TALLOC_CTX *mem_ctx, const char *domain,
94
const char *name, char **alias );
96
NTSTATUS nss_map_from_alias( TALLOC_CTX *mem_ctx, const char *domain,
97
const char *alias, char **name );
99
NTSTATUS nss_close( const char *parameters );
101
#endif /* _IDMAP_NSS_H_ */