From b446bb05d0438cd5f831a738c59cd37975e25b67 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 6 May 2008 17:47:26 +0200 Subject: Add function make_serverinfo_from_username() This will be used for 'security=share' and 'force user' (This used to be commit 88e43097cafcd2849d9f1200a377357fde4cce99) --- source3/auth/auth_util.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'source3/auth/auth_util.c') diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index bb3dc78e83..e07d687d35 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -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) { -- cgit