Add function make_serverinfo_from_username()
authorVolker Lendecke <vl@samba.org>
Tue, 6 May 2008 15:47:26 +0000 (17:47 +0200)
committerVolker Lendecke <vl@samba.org>
Sat, 10 May 2008 09:17:00 +0000 (11:17 +0200)
This will be used for 'security=share' and 'force user'
(This used to be commit 88e43097cafcd2849d9f1200a377357fde4cce99)

source3/auth/auth_util.c

index bb3dc78e8374b39b736a3d773ec58480aa3b479a..e07d687d3594b0ed627daa8fb2552d5c39898cb2 100644 (file)
@@ -1152,6 +1152,44 @@ static NTSTATUS make_new_server_info_guest(auth_serversupplied_info **server_inf
        return NT_STATUS_OK;
 }
 
+/****************************************************************************
+  Fake a auth_serversupplied_info just from a username
+****************************************************************************/
+
+NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
+                                      const char *username,
+                                      bool is_guest,
+                                      struct auth_serversupplied_info **presult)
+{
+       struct auth_serversupplied_info *result;
+       NTSTATUS status;
+
+       result = make_server_info(mem_ctx);
+       if (result == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       result->nss_token = true;
+       result->guest = is_guest;
+
+       result->unix_name = talloc_strdup(result, username);
+       if (result->unix_name == NULL) {
+               TALLOC_FREE(result);
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       status = create_local_token(result);
+
+       if (!NT_STATUS_IS_OK(status)) {
+               TALLOC_FREE(result);
+               return status;
+       }
+
+       *presult = result;
+       return NT_STATUS_OK;
+}
+
+
 struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
                                                 auth_serversupplied_info *src)
 {