r25152: fix headers used in wbinfo.c
[sfrench/samba-autobuild/.git] / source / winbindd / nss_info_template.c
1 /* 
2    Unix SMB/CIFS implementation.
3    idMap nss template plugin
4
5    Copyright (C) Gerald Carter             2006
6
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.
11    
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.
16    
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/>.
19 */
20
21 #include "includes.h"
22 #include "nss_info.h"
23
24 /************************************************************************
25  ***********************************************************************/
26
27 static NTSTATUS nss_template_init( struct nss_domain_entry *e )
28 {
29         return NT_STATUS_OK;
30 }
31
32 /************************************************************************
33  ***********************************************************************/
34
35 static NTSTATUS nss_template_get_info( struct nss_domain_entry *e,
36                                        const DOM_SID *sid, 
37                                        TALLOC_CTX *ctx,
38                                        ADS_STRUCT *ads,
39                                        LDAPMessage *msg,
40                                        char **homedir,
41                                        char **shell, 
42                                        char **gecos,
43                                        gid_t *gid )
44 {     
45         if ( !homedir || !shell || !gecos )
46                 return NT_STATUS_INVALID_PARAMETER;
47         
48         *homedir = talloc_strdup( ctx, lp_template_homedir() );
49         *shell   = talloc_strdup( ctx, lp_template_shell() );
50         *gecos   = NULL;
51
52         if ( !*homedir || !*shell ) {
53                 return NT_STATUS_NO_MEMORY;
54         }
55         
56         return NT_STATUS_OK;
57 }
58
59 /************************************************************************
60  ***********************************************************************/
61
62 static NTSTATUS nss_template_close( void )
63 {
64         return NT_STATUS_OK;
65 }
66
67
68 /************************************************************************
69  ***********************************************************************/
70
71 static struct nss_info_methods nss_template_methods = {
72         .init         = nss_template_init,
73         .get_nss_info = nss_template_get_info,
74         .close_fn     = nss_template_close
75 };
76                 
77 NTSTATUS nss_info_template_init( void )
78 {
79         return smb_register_idmap_nss(SMB_NSS_INFO_INTERFACE_VERSION, 
80                                       "template", 
81                                       &nss_template_methods);   
82 }
83