diff usr/src/lib/smbsrv/libmlsvc/common/samlib.c @ 10717:fe0545fc3cdd

6612607 CIFS ADS client should use ldap_sasl_interactive_bind_s API 6877755 smbd should not route stderr, stdout to /dev/null 6882701 Wrong error message for attempt to map local user to Windows group, or vice versa 6885105 Potential for deadlock in smb_node_set_delete_on_close() 6881928 smbd core generated when running a script to join domain, set abe properties 6885538 Reduce dependencies on libsmbrdr 6820325 cifs service can't start on multi vlan+ipmp configuration
author Alan Wright <amw@Sun.COM>
date Mon, 05 Oct 2009 11:03:34 -0700
parents ee04788f8605
children 37e5dcdf36d3
line wrap: on
line diff
--- a/usr/src/lib/smbsrv/libmlsvc/common/samlib.c	Mon Oct 05 13:48:48 2009 -0400
+++ b/usr/src/lib/smbsrv/libmlsvc/common/samlib.c	Mon Oct 05 11:03:34 2009 -0700
@@ -31,7 +31,6 @@
 #include <alloca.h>
 
 #include <smbsrv/libsmb.h>
-#include <smbsrv/libsmbrdr.h>
 #include <smbsrv/libmlsvc.h>
 
 #include <smbsrv/ntstatus.h>
@@ -114,7 +113,9 @@
 	DWORD rid;
 	DWORD status;
 	int rc;
-	char *user = smbrdr_ipc_get_user();
+	char user[SMB_USERNAME_MAXLEN];
+
+	smb_ipc_get_user(user, SMB_USERNAME_MAXLEN);
 
 	rc = samr_open(server, domain_name, user, SAM_CONNECT_CREATE_ACCOUNT,
 	    &samr_handle);
@@ -199,7 +200,9 @@
 	DWORD access_mask;
 	DWORD status;
 	int rc;
-	char *user = smbrdr_ipc_get_user();
+	char user[SMB_USERNAME_MAXLEN];
+
+	smb_ipc_get_user(user, SMB_USERNAME_MAXLEN);
 
 	rc = samr_open(server, domain_name, user, SAM_LOOKUP_INFORMATION,
 	    &samr_handle);
@@ -250,7 +253,9 @@
 	DWORD access_mask;
 	DWORD status;
 	int rc;
-	char *user = smbrdr_ipc_get_user();
+	char user[SMB_USERNAME_MAXLEN];
+
+	smb_ipc_get_user(user, SMB_USERNAME_MAXLEN);
 
 	rc = samr_open(server, domain_name, user, SAM_LOOKUP_INFORMATION,
 	    &samr_handle);
@@ -306,7 +311,9 @@
 	struct samr_sid *domain_sid;
 	int rc;
 	DWORD status;
-	char *user = smbrdr_ipc_get_user();
+	char user[SMB_USERNAME_MAXLEN];
+
+	smb_ipc_get_user(user, SMB_USERNAME_MAXLEN);
 
 	*rid_ret = 0;
 
@@ -352,7 +359,9 @@
 	mlsvc_handle_t samr_handle;
 	DWORD status;
 	int rc;
-	char *user = smbrdr_ipc_get_user();
+	char user[SMB_USERNAME_MAXLEN];
+
+	smb_ipc_get_user(user, SMB_USERNAME_MAXLEN);
 
 	rc = samr_open(server, domain_name, user, SAM_ENUM_LOCAL_DOMAIN,
 	    &samr_handle);
@@ -399,21 +408,20 @@
 static struct samr_sid *
 sam_get_domain_sid(mlsvc_handle_t *samr_handle, char *server, char *domain_name)
 {
-	struct samr_sid *sid = NULL;
-	smb_domain_t domain;
+	smb_sid_t *sid = NULL;
+	smb_domainex_t domain;
 
 	if (ndr_rpc_server_os(samr_handle) == NATIVE_OS_WIN2000) {
 		if (!smb_domain_getinfo(&domain)) {
 			if (lsa_query_account_domain_info(server, domain_name,
-			    &domain.d_info) != NT_STATUS_SUCCESS)
+			    &domain.d_primary) != NT_STATUS_SUCCESS)
 				return (NULL);
 		}
 
-		sid = (struct samr_sid *)smb_sid_fromstr(domain.d_info.di_sid);
+		sid = smb_sid_fromstr(domain.d_primary.di_sid);
 	} else {
-		sid = (struct samr_sid *)samr_lookup_domain(samr_handle,
-		    domain_name);
+		sid = samr_lookup_domain(samr_handle, domain_name);
 	}
 
-	return (sid);
+	return ((struct samr_sid *)sid);
 }