summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/Makefile.in1
-rw-r--r--source3/auth/auth_util.c32
-rw-r--r--source3/auth/server_info.c55
-rw-r--r--source3/include/proto.h4
4 files changed, 60 insertions, 32 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 92a0b43316..d7b84ccee2 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -764,6 +764,7 @@ AUTH_SCRIPT_OBJ = auth/auth_script.o
AUTH_NETLOGOND_OBJ = auth/auth_netlogond.o
AUTH_OBJ = auth/auth.o @AUTH_STATIC@ auth/auth_util.o auth/token_util.o \
+ auth/server_info.o \
auth/auth_compat.o auth/auth_ntlmssp.o \
$(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
index 647d20cd65..f71ed90687 100644
--- a/source3/auth/auth_util.c
+++ b/source3/auth/auth_util.c
@@ -493,38 +493,6 @@ bool make_user_info_guest(struct auth_usersupplied_info **user_info)
return NT_STATUS_IS_OK(nt_status) ? True : False;
}
-static int server_info_dtor(struct auth_serversupplied_info *server_info)
-{
- TALLOC_FREE(server_info->sam_account);
- ZERO_STRUCTP(server_info);
- return 0;
-}
-
-/***************************************************************************
- Make a server_info struct. Free with TALLOC_FREE().
-***************************************************************************/
-
-static struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx)
-{
- struct auth_serversupplied_info *result;
-
- result = TALLOC_ZERO_P(mem_ctx, struct auth_serversupplied_info);
- if (result == NULL) {
- DEBUG(0, ("talloc failed\n"));
- return NULL;
- }
-
- talloc_set_destructor(result, server_info_dtor);
-
- /* Initialise the uid and gid values to something non-zero
- which may save us from giving away root access if there
- is a bug in allocating these fields. */
-
- result->utok.uid = -1;
- result->utok.gid = -1;
- return result;
-}
-
static char *sanitize_username(TALLOC_CTX *mem_ctx, const char *username)
{
fstring tmp;
diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
new file mode 100644
index 0000000000..844e3290ea
--- /dev/null
+++ b/source3/auth/server_info.c
@@ -0,0 +1,55 @@
+/*
+ Unix SMB/CIFS implementation.
+ Authentication utility functions
+ Copyright (C) Volker Lendecke 2010
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+
+#undef DBGC_CLASS
+#define DBGC_CLASS DBGC_AUTH
+
+static int server_info_dtor(struct auth_serversupplied_info *server_info)
+{
+ TALLOC_FREE(server_info->sam_account);
+ ZERO_STRUCTP(server_info);
+ return 0;
+}
+
+/***************************************************************************
+ Make a server_info struct. Free with TALLOC_FREE().
+***************************************************************************/
+
+struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx)
+{
+ struct auth_serversupplied_info *result;
+
+ result = TALLOC_ZERO_P(mem_ctx, struct auth_serversupplied_info);
+ if (result == NULL) {
+ DEBUG(0, ("talloc failed\n"));
+ return NULL;
+ }
+
+ talloc_set_destructor(result, server_info_dtor);
+
+ /* Initialise the uid and gid values to something non-zero
+ which may save us from giving away root access if there
+ is a bug in allocating these fields. */
+
+ result->utok.uid = -1;
+ result->utok.gid = -1;
+ return result;
+}
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 1efa3cf27e..f6061602a0 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -158,6 +158,10 @@ bool is_trusted_domain(const char* dom_name);
NTSTATUS auth_winbind_init(void);
+/* The following definitions come from auth/server_info.c */
+
+struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx);
+
/* The following definitions come from auth/auth_wbc.c */
NTSTATUS auth_wbc_init(void);