[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Tue Feb 8 17:56:03 MST 2011


The branch, master has been updated
       via  6c89bb8 waf Remove debugging hacks left in the top level build
       via  45b16de s4-waf Remove source4 build system.
       via  7e76367 s4-auth Fix setting of bad_password_count in auth_convert_user_info_dc_sambaseinfo()
       via  ce461a7 s4-selftest Fix valgrind and gdb options for top level build
       via  a2ce53c s4-auth Rework auth subsystem to remove struct auth_serversupplied_info
       via  f1c0e95 s4-auth Add auth.idl to encode auth subsystem structures in IDL
      from  a674a56 Add fdopendir to the VFS. We will use this to reuse a directory fd already open by NtCreateX.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 6c89bb8d85c0f7cfe781dbcb7db2d23fba12afce
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Feb 9 10:59:18 2011 +1100

    waf Remove debugging hacks left in the top level build
    
    Autobuild-User: Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date: Wed Feb  9 01:55:15 CET 2011 on sn-devel-104

commit 45b16de1fcc6a76bd4d9dcdd41616942065f7fc4
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Feb 9 10:50:57 2011 +1100

    s4-waf Remove source4 build system.
    
    The top level build is the official build system now.
    
    Andrew Bartlett

commit 7e76367e59452bc8f516572eb05ed614b776087d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Feb 9 10:46:21 2011 +1100

    s4-auth Fix setting of bad_password_count in auth_convert_user_info_dc_sambaseinfo()
    
    Discovered during the convertion to auth_user_info.
    
    Andrew Bartlett

commit ce461a7857cfc1658b31f43ebfda0cccf73fb5fb
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 8 20:38:05 2011 +1100

    s4-selftest Fix valgrind and gdb options for top level build
    
    Andrew Bartlett

commit a2ce53c1f5301ffcf990dbab837c328ea22739b6
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 8 16:53:13 2011 +1100

    s4-auth Rework auth subsystem to remove struct auth_serversupplied_info
    
    This changes auth_serversupplied_info into the IDL-defined struct
    auth_user_info_dc.  This then in turn contains a struct
    auth_user_info, which is the only part of the structure that is
    mainted into the struct session_info.
    
    The idea here is to avoid keeping the incomplete results of the
    authentication (such as session keys, lists of SID memberships etc) in
    a namespace where it may be confused for the finalised results.
    
    Andrew Barltett

commit f1c0e9532d8e3fb0d8942e4d4e1a122429266b16
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Feb 8 16:39:34 2011 +1100

    s4-auth Add auth.idl to encode auth subsystem structures in IDL
    
    This is not only a useful way to encode stuff, it also allows python
    to handle the structures, and natrually allows them to be NDR encoded.
    
    Andrew Bartlett

-----------------------------------------------------------------------

Summary of changes:
 librpc/idl/auth.idl                           |   70 ++++++
 librpc/idl/wscript_build                      |    2 +-
 source4/Makefile                              |   75 ------
 source4/VERSION                               |  117 ---------
 source4/auth/auth.h                           |   80 ++-----
 source4/auth/auth_sam_reply.c                 |  220 +++++++++---------
 source4/auth/gensec/gensec.c                  |    8 +-
 source4/auth/gensec/gensec.h                  |    2 +-
 source4/auth/gensec/gensec_gssapi.c           |   39 +++-
 source4/auth/gensec/gensec_krb5.c             |   14 +-
 source4/auth/kerberos/kerberos.h              |    4 +-
 source4/auth/kerberos/kerberos_pac.c          |  103 +++++----
 source4/auth/ntlm/auth.c                      |   50 ++--
 source4/auth/ntlm/auth_anonymous.c            |    4 +-
 source4/auth/ntlm/auth_developer.c            |   82 ++++---
 source4/auth/ntlm/auth_sam.c                  |   20 +-
 source4/auth/ntlm/auth_server.c               |   70 +++---
 source4/auth/ntlm/auth_simple.c               |    8 +-
 source4/auth/ntlm/auth_unix.c                 |   99 ++++----
 source4/auth/ntlm/auth_winbind.c              |   12 +-
 source4/auth/ntlmssp/ntlmssp.h                |    2 +-
 source4/auth/ntlmssp/ntlmssp_server.c         |   20 +-
 source4/auth/sam.c                            |  164 +++++++-------
 source4/auth/session.c                        |   43 ++--
 source4/auth/session.h                        |   16 +-
 source4/auth/system_session.c                 |  314 +++++++++++++------------
 source4/configure                             |   14 -
 source4/configure.nodebug.developer           |    3 -
 source4/configure.tridge.opt                  |    2 -
 source4/dsdb/samdb/ldb_modules/acl_util.c     |    4 +-
 source4/kdc/kpasswdd.c                        |   10 +-
 source4/kdc/pac-glue.c                        |   21 +-
 source4/ntvfs/ipc/vfs_ipc.c                   |   14 +-
 source4/rpc_server/lsa/dcesrv_lsa.c           |    4 +-
 source4/rpc_server/netlogon/dcerpc_netlogon.c |   14 +-
 source4/samba_tool/gpo.c                      |   10 +-
 source4/selftest/wscript                      |    4 +-
 source4/smb_server/management.c               |    4 +-
 source4/smb_server/smb/sesssetup.c            |   21 +-
 source4/smbd/service_named_pipe.c             |   12 +-
 source4/torture/auth/pac.c                    |   62 +++---
 source4/torture/rpc/remote_pac.c              |   76 +++---
 source4/utils/ntlm_auth.c                     |    4 +-
 source4/wscript                               |  199 ----------------
 source4/wscript_build                         |  106 ---------
 wscript                                       |    2 +-
 46 files changed, 916 insertions(+), 1308 deletions(-)
 create mode 100644 librpc/idl/auth.idl
 delete mode 100644 source4/Makefile
 delete mode 100644 source4/VERSION
 delete mode 100755 source4/configure
 delete mode 100755 source4/configure.nodebug.developer
 delete mode 100755 source4/configure.tridge.opt
 delete mode 100644 source4/wscript
 delete mode 100644 source4/wscript_build


Changeset truncated at 500 lines:

diff --git a/librpc/idl/auth.idl b/librpc/idl/auth.idl
new file mode 100644
index 0000000..525497d
--- /dev/null
+++ b/librpc/idl/auth.idl
@@ -0,0 +1,70 @@
+#include "idl_types.h"
+
+/*
+  security IDL structures
+*/
+
+import "misc.idl", "security.idl", "lsa.idl", "krb5pac.idl";
+
+interface auth
+{
+	typedef [public] enum {
+		SEC_AUTH_METHOD_UNAUTHENTICATED = 0,
+		SEC_AUTH_METHOD_NTLM            = 1,
+		SEC_AUTH_METHOD_KERBEROS        = 2
+	} auth_method;
+
+	/* This is the parts of the session_info that don't change
+	 * during local privilage and group manipulations */
+	typedef [public] struct {
+		utf8string account_name;
+		utf8string domain_name;
+
+		utf8string full_name;
+		utf8string logon_script;
+		utf8string profile_path;
+		utf8string home_directory;
+		utf8string home_drive;
+		utf8string logon_server;
+
+		NTTIME last_logon;
+		NTTIME last_logoff;
+		NTTIME acct_expiry;
+		NTTIME last_password_change;
+		NTTIME allow_password_change;
+		NTTIME force_password_change;
+
+		uint16 logon_count;
+		uint16 bad_password_count;
+
+		uint32 acct_flags;
+
+		uint8 authenticated;
+	} auth_user_info;
+
+	/* This information is preserved only to assist torture tests */
+	typedef [public] struct {
+		/* Number SIDs from the DC netlogon validation info */
+		uint32 num_dc_sids;
+		[size_is(num_sids)] dom_sid dc_sids[*];
+		PAC_SIGNATURE_DATA *pac_srv_sig;
+		PAC_SIGNATURE_DATA *pac_kdc_sig;
+	} auth_user_info_torture;
+
+	/* This is the interim product of the auth subsystem, before
+	 * privileges and local groups are handled */
+	typedef [public] struct {
+		uint32 num_sids;
+		[size_is(num_sids)] dom_sid sids[*];
+		auth_user_info *info;
+		DATA_BLOB user_session_key;
+		DATA_BLOB lm_session_key;
+	} auth_user_info_dc;
+
+	typedef [public] struct {
+		security_token *security_token;
+		auth_user_info *info;
+		DATA_BLOB session_key;
+		DATA_BLOB exported_gssapi_credentials;
+	} auth_session_info_transport;
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 6fdd5f3..52476c4 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 bld.SAMBA_PIDL_LIST('PIDL',
-                    '''atsvc.idl drsuapi.idl epmapper.idl initshutdown.idl
+                    '''atsvc.idl auth.idl drsuapi.idl epmapper.idl initshutdown.idl
                        misc.idl ntlmssp.idl schannel.idl trkwks.idl
                        audiosrv.idl dfsblobs.idl dsbackup.idl eventlog.idl file_id.idl keysvc.idl
                        msgsvc.idl ntsvcs.idl remact.idl security.idl unixinfo.idl wzcsvc.idl
diff --git a/source4/Makefile b/source4/Makefile
deleted file mode 100644
index bc77be9..0000000
--- a/source4/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# simple makefile wrapper to run waf
-
-WAF_BINARY=../buildtools/bin/waf
-WAF=WAF_MAKE=1 $(WAF_BINARY)
-
-all:
-	$(WAF) build
-
-install:
-	$(WAF) install
-
-uninstall:
-	$(WAF) uninstall
-
-test:
-	$(WAF) test $(TEST_OPTIONS)
-
-help:
-	@echo NOTE: to run extended waf options use $(WAF_BINARY) or modify your PATH
-	$(WAF) --help
-
-subunit-test:
-	$(WAF) test --filtered-subunit $(TEST_OPTIONS)
-
-testenv:
-	$(WAF) test --testenv $(TEST_OPTIONS)
-
-quicktest:
-	$(WAF) test --quick $(TEST_OPTIONS)
-
-dist:
-	touch .tmplock
-	WAFLOCK=.tmplock $(WAF) dist
-
-distcheck:
-	touch .tmplock
-	WAFLOCK=.tmplock $(WAF) distcheck
-
-clean:
-	$(WAF) clean
-
-distclean:
-	$(WAF) distclean
-
-reconfigure: configure
-	$(WAF) reconfigure
-
-show_waf_options:
-	$(WAF) --help
-
-# some compatibility make targets
-everything: all
-
-testsuite: all
-
-check: test
-
-torture: all
-
-# this should do an install as well, once install is finished
-installcheck: test
-
-etags:
-	$(WAF) etags
-
-ctags:
-	$(WAF) ctags
-
-# this allows for things like "make bin/smbtorture"
-bin/%:: FORCE
-	$(WAF) --targets=`basename $@`
-FORCE:
-
-pydoctor:
-	$(WAF) pydoctor
diff --git a/source4/VERSION b/source4/VERSION
deleted file mode 100644
index 394e114..0000000
--- a/source4/VERSION
+++ /dev/null
@@ -1,117 +0,0 @@
-########################################################
-# SAMBA Version                                        #
-#                                                      #
-# Samba versions are as follows                        #
-# 3.0.x                New production series           #
-# 3.0.x{tp,pre,rc}y    Preview/Testing & RC            #
-# 3.0.x[a-z]           Patch releases                  #
-# 3.0.x[a-z]-VENDOR-z  Vendor patch releases           #
-#                                                      #
-# script/mkversion.sh                                  #
-# will use this file to create                         #
-# include/version.h                                    #
-#                                                      #
-########################################################
-
-########################################################
-# This are the main SAMBA version numbers              #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>                            #
-#                                                      #
-# e.g. SAMBA_VERSION_MAJOR=3                           #
-#      SAMBA_VERSION_MINOR=0                           #
-#      SAMBA_VERSION_RELEASE=0                         #
-#  ->  "3.0.0"                                         #
-########################################################
-SAMBA_VERSION_MAJOR=4
-SAMBA_VERSION_MINOR=0
-SAMBA_VERSION_RELEASE=0
-
-########################################################
-# If a official release has a serious bug              #
-# a security release will have 'a' sufffix             #
-#                                                      #
-# so SAMBA's version will be                           #
-# <MAJOR>.<MINOR>.<RELEASE><REVISION>                  #
-#                                                      #
-# e.g. SAMBA_VERSION_REVISION=a                        #
-#  ->  "2.2.8a"                                        #
-########################################################
-SAMBA_VERSION_REVISION=
-
-########################################################
-# For 'tp' releases the version will be                #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>tp<TP_RELEASE>              #
-#                                                      #
-# e.g. SAMBA_VERSION_TP_RELEASE=1                      #
-#  ->  "4.0.0tp1"                                      #
-########################################################
-SAMBA_VERSION_TP_RELEASE=
-
-########################################################
-# For 'alpha' releases the version will be             #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>alpha<TP_RELEASE>           #
-#                                                      #
-# e.g. SAMBA_VERSION_ALPHA_RELEASE=1                   #
-#  ->  "4.0.0alpha1"                                   #
-########################################################
-SAMBA_VERSION_ALPHA_RELEASE=15
-
-########################################################
-# For 'pre' releases the version will be               #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>pre<PRE_RELEASE>            #
-#                                                      #
-# e.g. SAMBA_VERSION_PRE_RELEASE=1                     #
-#  ->  "2.2.9pre1"                                     #
-########################################################
-SAMBA_VERSION_PRE_RELEASE=
-
-########################################################
-# For 'rc' releases the version will be                #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>rc<RC_RELEASE>              #
-#                                                      #
-# e.g. SAMBA_VERSION_RC_RELEASE=1                      #
-#  ->  "3.0.0rc1"                                      #
-########################################################
-SAMBA_VERSION_RC_RELEASE=
-
-########################################################
-# To mark SVN snapshots this should be set to 'yes'    #
-# in the development BRANCH, and set to 'no' only in   #
-# the SAMBA_X_X_RELEASE BRANCH                         #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>[...]-SVN-build-xxx         #
-#                                                      #
-# e.g. SAMBA_VERSION_IS_SVN_SNAPSHOT=yes               #
-#  ->  "3.0.0-SVN-build-199"                           #
-########################################################
-SAMBA_VERSION_IS_GIT_SNAPSHOT=yes
-
-########################################################
-# This is for specifying a release nickname            #
-#                                                      #
-# e.g. SAMBA_VERSION_RELEASE_NICKNAME=Nicky Nickname   #
-#      smbd --version will then give:                  #
-#  ->  "4.0.0-tp1-VendorVersion (Nicky Nickname)"      #
-########################################################
-SAMBA_VERSION_RELEASE_NICKNAME=
-
-########################################################
-# This can be set by vendors if they want...           #
-# This can be a string constant or a function which    #
-# returns a string (const char *)                      #
-#                                                      #
-# <MAJOR>.<MINOR>.<RELEASE>[...]-<VENDOR_SUFFIX>       #
-#                                                      #
-# Note the '-' is automaticaly added                   #
-#                                                      #
-# e.g. SAMBA_VERSION_VENDOR_SUFFIX=VendorVersion       #
-#  ->  "3.0.0rc2-VendorVersion"                        #
-#                                                      #
-########################################################
-SAMBA_VERSION_VENDOR_SUFFIX=
-SAMBA_VERSION_VENDOR_PATCH=
diff --git a/source4/auth/auth.h b/source4/auth/auth.h
index 21790c4..10818dc 100644
--- a/source4/auth/auth.h
+++ b/source4/auth/auth.h
@@ -22,6 +22,7 @@
 #define _SAMBA_AUTH_H
 
 #include "librpc/gen_ndr/ndr_krb5pac.h"
+#include "librpc/gen_ndr/auth.h"
 #include "../auth/common_auth.h"
 
 extern const char *krbtgt_attrs[];
@@ -48,41 +49,6 @@ struct loadparm_context;
 #define AUTH_SESSION_INFO_AUTHENTICATED      0x02 /* Add the user to the 'authenticated users' group */
 #define AUTH_SESSION_INFO_SIMPLE_PRIVILEGES  0x04 /* Use a trivial map between users and privilages, rather than a DB */
 
-struct auth_serversupplied_info
-{
-	size_t num_sids;
-	struct dom_sid *sids;
-
-	DATA_BLOB user_session_key;
-	DATA_BLOB lm_session_key;
-
-	const char *account_name;
-	const char *domain_name;
-
-	const char *full_name;
-	const char *logon_script;
-	const char *profile_path;
-	const char *home_directory;
-	const char *home_drive;
-	const char *logon_server;
-
-	NTTIME last_logon;
-	NTTIME last_logoff;
-	NTTIME acct_expiry;
-	NTTIME last_password_change;
-	NTTIME allow_password_change;
-	NTTIME force_password_change;
-
-	uint16_t logon_count;
-	uint16_t bad_password_count;
-
-	uint32_t acct_flags;
-
-	bool authenticated;
-
-	struct PAC_SIGNATURE_DATA pac_srv_sig, pac_kdc_sig;
-};
-
 struct auth_method_context;
 struct auth_check_password_request;
 struct auth_context;
@@ -108,14 +74,14 @@ struct auth_operations {
 
 	NTSTATUS (*check_password)(struct auth_method_context *ctx, TALLOC_CTX *mem_ctx,
 				   const struct auth_usersupplied_info *user_info,
-				   struct auth_serversupplied_info **server_info);
-
-	/* Lookup a 'server info' return based only on the principal */
-	NTSTATUS (*get_server_info_principal)(TALLOC_CTX *mem_ctx,
-					      struct auth_context *auth_context,
-					      const char *principal,
-					      struct ldb_dn *user_dn,
-					      struct auth_serversupplied_info **server_info);
+				   struct auth_user_info_dc **interim_info);
+
+	/* Lookup a 'session info interim' return based only on the principal or DN */
+	NTSTATUS (*get_user_info_dc_principal)(TALLOC_CTX *mem_ctx,
+						       struct auth_context *auth_context,
+						       const char *principal,
+						       struct ldb_dn *user_dn,
+						       struct auth_user_info_dc **interim_info);
 };
 
 struct auth_method_context {
@@ -154,7 +120,7 @@ struct auth_context {
 	NTSTATUS (*check_password)(struct auth_context *auth_ctx,
 				   TALLOC_CTX *mem_ctx,
 				   const struct auth_usersupplied_info *user_info,
-				   struct auth_serversupplied_info **server_info);
+				   struct auth_user_info_dc **user_info_dc);
 
 	NTSTATUS (*get_challenge)(struct auth_context *auth_ctx, uint8_t chal[8]);
 
@@ -162,15 +128,15 @@ struct auth_context {
 
 	NTSTATUS (*set_challenge)(struct auth_context *auth_ctx, const uint8_t chal[8], const char *set_by);
 
-	NTSTATUS (*get_server_info_principal)(TALLOC_CTX *mem_ctx,
-						 struct auth_context *auth_ctx,
-						 const char *principal,
-						 struct ldb_dn *user_dn,
-						 struct auth_serversupplied_info **server_info);
+	NTSTATUS (*get_user_info_dc_principal)(TALLOC_CTX *mem_ctx,
+						       struct auth_context *auth_ctx,
+						       const char *principal,
+						       struct ldb_dn *user_dn,
+						       struct auth_user_info_dc **user_info_dc);
 
 	NTSTATUS (*generate_session_info)(TALLOC_CTX *mem_ctx,
 					  struct auth_context *auth_context,
-					  struct auth_serversupplied_info *server_info,
+					  struct auth_user_info_dc *user_info_dc,
 					  uint32_t session_info_flags,
 					  struct auth_session_info **session_info);
 };
@@ -182,7 +148,7 @@ struct auth_critical_sizes {
 	int sizeof_auth_methods;
 	int sizeof_auth_context;
 	int sizeof_auth_usersupplied_info;
-	int sizeof_auth_serversupplied_info;
+	int sizeof_auth_user_info_dc;
 };
 
  NTSTATUS encrypt_user_info(TALLOC_CTX *mem_ctx, struct auth_context *auth_context,
@@ -212,13 +178,13 @@ NTSTATUS authsam_expand_nested_groups(struct ldb_context *sam_ctx,
 				      TALLOC_CTX *res_sids_ctx, struct dom_sid ***res_sids,
 				      unsigned int *num_res_sids);
 struct auth_session_info *system_session(struct loadparm_context *lp_ctx);
-NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, struct ldb_context *sam_ctx,
+NTSTATUS authsam_make_user_info_dc(TALLOC_CTX *mem_ctx, struct ldb_context *sam_ctx,
 					   const char *netbios_name,
 					   const char *domain_name,
 					   struct ldb_dn *domain_dn,
 					   struct ldb_message *msg,
 					   DATA_BLOB user_sess_key, DATA_BLOB lm_sess_key,
-				  struct auth_serversupplied_info **_server_info);
+				  struct auth_user_info_dc **_user_info_dc);
 NTSTATUS auth_system_session_info(TALLOC_CTX *parent_ctx,
 					   struct loadparm_context *lp_ctx,
 					   struct auth_session_info **_session_info) ;
@@ -242,7 +208,7 @@ NTSTATUS auth_context_create_from_ldb(TALLOC_CTX *mem_ctx, struct ldb_context *l
 NTSTATUS auth_check_password(struct auth_context *auth_ctx,
 			     TALLOC_CTX *mem_ctx,
 			     const struct auth_usersupplied_info *user_info,
-			     struct auth_serversupplied_info **server_info);
+			     struct auth_user_info_dc **user_info_dc);
 NTSTATUS auth_init(void);
 NTSTATUS auth_register(const struct auth_operations *ops);
 NTSTATUS server_service_auth_init(void);
@@ -262,16 +228,16 @@ struct tevent_req *auth_check_password_send(TALLOC_CTX *mem_ctx,
 					    const struct auth_usersupplied_info *user_info);
 NTSTATUS auth_check_password_recv(struct tevent_req *req,
 				  TALLOC_CTX *mem_ctx,
-				  struct auth_serversupplied_info **server_info);
+				  struct auth_user_info_dc **user_info_dc);
 
 bool auth_challenge_may_be_modified(struct auth_context *auth_ctx);
 NTSTATUS auth_context_set_challenge(struct auth_context *auth_ctx, const uint8_t chal[8], const char *set_by);
 
-NTSTATUS auth_get_server_info_principal(TALLOC_CTX *mem_ctx,
+NTSTATUS auth_get_user_info_dc_principal(TALLOC_CTX *mem_ctx,
 					struct auth_context *auth_ctx,
 					const char *principal,
 					struct ldb_dn *user_dn,
-					struct auth_serversupplied_info **server_info);
+					struct auth_user_info_dc **user_info_dc);
 
 NTSTATUS samba_server_gensec_start(TALLOC_CTX *mem_ctx,
 				   struct tevent_context *event_ctx,
diff --git a/source4/auth/auth_sam_reply.c b/source4/auth/auth_sam_reply.c
index bb2b6eb..eb9a834 100644
--- a/source4/auth/auth_sam_reply.c
+++ b/source4/auth/auth_sam_reply.c
@@ -25,16 +25,17 @@
 #include "libcli/security/security.h"
 #include "auth/auth_sam_reply.h"
 
-NTSTATUS auth_convert_server_info_sambaseinfo(TALLOC_CTX *mem_ctx, 
-					      struct auth_serversupplied_info *server_info, 
+NTSTATUS auth_convert_user_info_dc_sambaseinfo(TALLOC_CTX *mem_ctx,
+					      struct auth_user_info_dc *user_info_dc,
 					      struct netr_SamBaseInfo **_sam)
 {
 	NTSTATUS status;
+	struct auth_user_info *info;
 	struct netr_SamBaseInfo *sam = talloc_zero(mem_ctx, struct netr_SamBaseInfo);
 	NT_STATUS_HAVE_NO_MEMORY(sam);
 
-	if (server_info->num_sids > PRIMARY_USER_SID_INDEX) {
-		status = dom_sid_split_rid(sam, &server_info->sids[PRIMARY_USER_SID_INDEX],
+	if (user_info_dc->num_sids > PRIMARY_USER_SID_INDEX) {
+		status = dom_sid_split_rid(sam, &user_info_dc->sids[PRIMARY_USER_SID_INDEX],
 					   &sam->domain_sid, &sam->rid);
 		if (!NT_STATUS_IS_OK(status)) {
 			return status;
@@ -43,8 +44,8 @@ NTSTATUS auth_convert_server_info_sambaseinfo(TALLOC_CTX *mem_ctx,
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
-	if (server_info->num_sids > PRIMARY_GROUP_SID_INDEX) {
-		status = dom_sid_split_rid(NULL, &server_info->sids[PRIMARY_GROUP_SID_INDEX],
+	if (user_info_dc->num_sids > PRIMARY_GROUP_SID_INDEX) {
+		status = dom_sid_split_rid(NULL, &user_info_dc->sids[PRIMARY_GROUP_SID_INDEX],
 					   NULL, &sam->primary_gid);
 		if (!NT_STATUS_IS_OK(status)) {
 			return status;
@@ -56,35 +57,37 @@ NTSTATUS auth_convert_server_info_sambaseinfo(TALLOC_CTX *mem_ctx,
 		sam->primary_gid = sam->rid;
 	}
 
-	sam->last_logon = server_info->last_logon;
-	sam->last_logoff =  server_info->last_logoff;
-	sam->acct_expiry = server_info->acct_expiry;
-	sam->last_password_change = server_info->last_password_change;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list