summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/includes.h2
-rw-r--r--source3/include/nss_info.h28
-rw-r--r--source3/nsswitch/nss_info.c31
-rw-r--r--source3/nsswitch/winbindd.c2
4 files changed, 37 insertions, 26 deletions
diff --git a/source3/include/includes.h b/source3/include/includes.h
index 84bd90cc27..148bfc4414 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -777,6 +777,8 @@ enum flush_reason_enum {
#ifdef HAVE_LDAP
#include "ads_protos.h"
+#else
+typedef LDAPMessage void;
#endif
/* We need this after proto.h to reference GetTimeOfDay(). */
diff --git a/source3/include/nss_info.h b/source3/include/nss_info.h
index 6f93c2ce81..2d7a5682e2 100644
--- a/source3/include/nss_info.h
+++ b/source3/include/nss_info.h
@@ -20,6 +20,8 @@
Boston, MA 02111-1307, USA.
*/
+#ifdef WITH_ADS
+
#ifndef _IDMAP_NSS_H
#define _IDMAP_NSS_H
@@ -60,13 +62,31 @@ struct nss_info_methods {
NTSTATUS (*get_nss_info)( struct nss_domain_entry *e,
const DOM_SID *sid,
TALLOC_CTX *ctx,
-#ifdef WITH_ADS
ADS_STRUCT *ads, LDAPMessage *msg,
-#else
- void *ads, void *msg,
-#endif
char **homedir, char **shell, char **gecos, gid_t *p_gid);
NTSTATUS (*close_fn)( void );
};
+
+/* The following definitions come from nsswitch/nss_info.c */
+
+NTSTATUS smb_register_idmap_nss(int version,
+ const char *name,
+ struct nss_info_methods *methods);
+
+NTSTATUS nss_init( const char **nss_list );
+
+NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
+ TALLOC_CTX *ctx,
+ ADS_STRUCT *ads, LDAPMessage *msg,
+ char **homedir, char **shell, char **gecos,
+ gid_t *p_gid);
+
+NTSTATUS nss_close( const char *parameters );
+
+NTSTATUS idmap_nss_init_domain( const char *domain );
+
+
#endif /* _IDMAP_NSS_H_ */
+
+#endif /* WITH_ADS */
diff --git a/source3/nsswitch/nss_info.c b/source3/nsswitch/nss_info.c
index 127484f537..747de4a2ba 100644
--- a/source3/nsswitch/nss_info.c
+++ b/source3/nsswitch/nss_info.c
@@ -20,6 +20,8 @@
Boston, MA 02111-1307, USA.
*/
+#ifdef WITH_ADS
+
#include "includes.h"
#include "nss_info.h"
@@ -27,23 +29,6 @@ static struct nss_function_entry *backends = NULL;
static struct nss_domain_entry *nss_domain_list = NULL;
/**********************************************************************
- **********************************************************************/
-
-const char *wb_posix_map_str(enum wb_posix_mapping mtype)
-{
- switch (mtype) {
- case WB_POSIX_MAP_SFU:
- return "sfu";
- case WB_POSIX_MAP_RFC2307:
- return "rfc2307";
- default:
- break;
- }
- return NULL;
-}
-
-
-/**********************************************************************
Get idmap nss methods.
**********************************************************************/
@@ -63,7 +48,7 @@ static struct nss_function_entry *nss_get_backend(const char *name )
Allow a module to register itself as a backend.
**********************************************************************/
-NTSTATUS smb_register_idmap_nss(int version, const char *name, struct nss_info_methods *methods)
+ NTSTATUS smb_register_idmap_nss(int version, const char *name, struct nss_info_methods *methods)
{
struct nss_function_entry *entry;
@@ -145,7 +130,7 @@ static BOOL parse_nss_parm( const char *config, char **backend, char **domain )
to initialize the state on a per domain basis.
*******************************************************************/
-NTSTATUS nss_init( const char **nss_list )
+ NTSTATUS nss_init( const char **nss_list )
{
NTSTATUS status;
int i;
@@ -230,7 +215,7 @@ NTSTATUS nss_init( const char **nss_list )
/********************************************************************
*******************************************************************/
-NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
+ NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
char **homedir, char **shell, char **gecos,
@@ -263,7 +248,7 @@ NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
/********************************************************************
*******************************************************************/
-NTSTATUS nss_close( const char *parameters )
+ NTSTATUS nss_close( const char *parameters )
{
struct nss_domain_entry *p = nss_domain_list;
struct nss_domain_entry *q;
@@ -285,7 +270,7 @@ NTSTATUS nss_close( const char *parameters )
Invoke the init function for a given domain's backend
*******************************************************************/
-NTSTATUS idmap_nss_init_domain( const char *domain )
+ NTSTATUS idmap_nss_init_domain( const char *domain )
{
struct nss_domain_entry *p;
@@ -303,3 +288,5 @@ NTSTATUS idmap_nss_init_domain( const char *domain )
return NT_STATUS_NO_SUCH_DOMAIN;
}
+#endif /* WITH_ADS */
+
diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c
index ce39df350f..c44750ec6f 100644
--- a/source3/nsswitch/winbindd.c
+++ b/source3/nsswitch/winbindd.c
@@ -1009,7 +1009,9 @@ int main(int argc, char **argv, char **envp)
DEBUG(1, ("Could not init idmap! - Sid/[UG]id mapping will not be available\n"));
}
+#ifdef WITH_ADS
nss_init( lp_winbind_nss_info() );
+#endif
/* Unblock all signals we are interested in as they may have been
blocked by the parent process. */