summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2011-10-07 17:24:12 +1100
committerAndrew Bartlett <abartlet@samba.org>2011-10-11 13:41:36 +1100
commitfe02752ed6493efb7af28faa3d64d9fd7895d6f1 (patch)
tree22463dbd5f702c76ce0021f7aa6fbcc31afe2378
parent561d834123a2a8a96954f7cca556f8838ab38b72 (diff)
downloadsamba-fe02752ed6493efb7af28faa3d64d9fd7895d6f1.tar.gz
samba-fe02752ed6493efb7af28faa3d64d9fd7895d6f1.tar.bz2
samba-fe02752ed6493efb7af28faa3d64d9fd7895d6f1.zip
auth: move gensec_start.c to the top level
This does not change who uses gensec for now, but makes it possible to write new gensec modules outside source4/ Andrew Bartlett
-rw-r--r--auth/gensec/gensec.pc.in (renamed from source4/auth/gensec/gensec.pc.in)0
-rw-r--r--auth/gensec/gensec_start.c (renamed from source4/auth/gensec/gensec_start.c)33
-rw-r--r--auth/gensec/wscript_build14
-rwxr-xr-xsource3/wscript_build2
-rw-r--r--source4/auth/gensec/cyrus_sasl.c1
-rw-r--r--source4/auth/gensec/gensec_util.c59
-rw-r--r--source4/auth/gensec/schannel.c1
-rw-r--r--source4/auth/gensec/wscript_build13
-rw-r--r--source4/auth/ntlmssp/ntlmssp.c1
9 files changed, 76 insertions, 48 deletions
diff --git a/source4/auth/gensec/gensec.pc.in b/auth/gensec/gensec.pc.in
index f32226d5e4..f32226d5e4 100644
--- a/source4/auth/gensec/gensec.pc.in
+++ b/auth/gensec/gensec.pc.in
diff --git a/source4/auth/gensec/gensec_start.c b/auth/gensec/gensec_start.c
index 3150cced97..1322469dbe 100644
--- a/source4/auth/gensec/gensec_start.c
+++ b/auth/gensec/gensec_start.c
@@ -825,39 +825,6 @@ _PUBLIC_ NTSTATUS gensec_set_credentials(struct gensec_security *gensec_security
return NT_STATUS_OK;
}
-NTSTATUS gensec_generate_session_info(TALLOC_CTX *mem_ctx,
- struct gensec_security *gensec_security,
- struct auth_user_info_dc *user_info_dc,
- struct auth_session_info **session_info)
-{
- NTSTATUS nt_status;
- uint32_t session_info_flags = 0;
-
- if (gensec_security->want_features & GENSEC_FEATURE_UNIX_TOKEN) {
- session_info_flags |= AUTH_SESSION_INFO_UNIX_TOKEN;
- }
-
- session_info_flags |= AUTH_SESSION_INFO_DEFAULT_GROUPS;
- if (user_info_dc->info->authenticated) {
- session_info_flags |= AUTH_SESSION_INFO_AUTHENTICATED;
- }
-
- if (gensec_security->auth_context) {
- nt_status = gensec_security->auth_context->generate_session_info(mem_ctx, gensec_security->auth_context,
- user_info_dc,
- session_info_flags,
- session_info);
- } else {
- session_info_flags |= AUTH_SESSION_INFO_SIMPLE_PRIVILEGES;
- nt_status = auth_generate_session_info(mem_ctx,
- NULL,
- NULL,
- user_info_dc, session_info_flags,
- session_info);
- }
- return nt_status;
-}
-
/*
register a GENSEC backend.
diff --git a/auth/gensec/wscript_build b/auth/gensec/wscript_build
index a9203f801d..e3e9372c3d 100644
--- a/auth/gensec/wscript_build
+++ b/auth/gensec/wscript_build
@@ -1,7 +1,11 @@
#!/usr/bin/env python
+bld.SAMBA_LIBRARY('gensec',
+ source='gensec.c gensec_start.c',
+ pc_files='gensec.pc',
+ autoproto='gensec_toplevel_proto.h',
+ public_deps='tevent-util samba-util errors LIBPACKET auth_system_session samba-modules gensec_util',
+ public_headers='gensec.h',
+ deps='com_err',
+ vnum='0.0.1'
+ )
-bld.SAMBA_SUBSYSTEM('gensec_runtime',
- source='gensec.c',
- deps='tevent-util tevent samba-util LIBTSOCKET',
- public_headers='gensec.h',
- autoproto='gensec_toplevel_proto.h')
diff --git a/source3/wscript_build b/source3/wscript_build
index 78b24746b3..c6a2dd5557 100755
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -805,7 +805,7 @@ bld.SAMBA3_SUBSYSTEM('LIBSMB_ERR',
bld.SAMBA3_SUBSYSTEM('LIBNTLMSSP',
source=LIBNTLMSSP_SRC,
- deps='LIBSMB_ERR NDR_NTLMSSP NTLMSSP_COMMON gensec_runtime',
+ deps='LIBSMB_ERR NDR_NTLMSSP NTLMSSP_COMMON gensec',
vars=locals())
bld.SAMBA3_LIBRARY('libsmb',
diff --git a/source4/auth/gensec/cyrus_sasl.c b/source4/auth/gensec/cyrus_sasl.c
index 4a4422645d..136bb8d43a 100644
--- a/source4/auth/gensec/cyrus_sasl.c
+++ b/source4/auth/gensec/cyrus_sasl.c
@@ -24,6 +24,7 @@
#include "auth/credentials/credentials.h"
#include "auth/gensec/gensec.h"
#include "auth/gensec/gensec_proto.h"
+#include "auth/gensec/gensec_toplevel_proto.h"
#include <sasl/sasl.h>
NTSTATUS gensec_sasl_init(void);
diff --git a/source4/auth/gensec/gensec_util.c b/source4/auth/gensec/gensec_util.c
new file mode 100644
index 0000000000..267366af61
--- /dev/null
+++ b/source4/auth/gensec/gensec_util.c
@@ -0,0 +1,59 @@
+/*
+ Unix SMB/CIFS implementation.
+
+ Generic Authentication Interface
+
+ Copyright (C) Andrew Tridgell 2003
+ Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2006
+
+ 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"
+#include "auth/gensec/gensec.h"
+#include "auth/auth.h"
+#include "auth/system_session_proto.h"
+
+NTSTATUS gensec_generate_session_info(TALLOC_CTX *mem_ctx,
+ struct gensec_security *gensec_security,
+ struct auth_user_info_dc *user_info_dc,
+ struct auth_session_info **session_info)
+{
+ NTSTATUS nt_status;
+ uint32_t session_info_flags = 0;
+
+ if (gensec_security->want_features & GENSEC_FEATURE_UNIX_TOKEN) {
+ session_info_flags |= AUTH_SESSION_INFO_UNIX_TOKEN;
+ }
+
+ session_info_flags |= AUTH_SESSION_INFO_DEFAULT_GROUPS;
+ if (user_info_dc->info->authenticated) {
+ session_info_flags |= AUTH_SESSION_INFO_AUTHENTICATED;
+ }
+
+ if (gensec_security->auth_context) {
+ nt_status = gensec_security->auth_context->generate_session_info(mem_ctx, gensec_security->auth_context,
+ user_info_dc,
+ session_info_flags,
+ session_info);
+ } else {
+ session_info_flags |= AUTH_SESSION_INFO_SIMPLE_PRIVILEGES;
+ nt_status = auth_generate_session_info(mem_ctx,
+ NULL,
+ NULL,
+ user_info_dc, session_info_flags,
+ session_info);
+ }
+ return nt_status;
+}
diff --git a/source4/auth/gensec/schannel.c b/source4/auth/gensec/schannel.c
index b70d65a093..35713ce068 100644
--- a/source4/auth/gensec/schannel.c
+++ b/source4/auth/gensec/schannel.c
@@ -30,6 +30,7 @@
#include "librpc/rpc/dcerpc.h"
#include "param/param.h"
#include "auth/gensec/schannel.h"
+#include "auth/gensec/gensec_toplevel_proto.h"
_PUBLIC_ NTSTATUS gensec_schannel_init(void);
diff --git a/source4/auth/gensec/wscript_build b/source4/auth/gensec/wscript_build
index a7fa12f56a..86d958950f 100644
--- a/source4/auth/gensec/wscript_build
+++ b/source4/auth/gensec/wscript_build
@@ -1,14 +1,9 @@
#!/usr/bin/env python
-bld.SAMBA_LIBRARY('gensec',
- source='gensec_start.c socket.c gensec_tstream.c',
- pc_files='gensec.pc',
- autoproto='gensec_proto.h',
- public_deps='tevent-util samba-util errors LIBPACKET auth_system_session gensec_runtime samba-modules',
- public_headers='',
- deps='com_err',
- vnum='0.0.1'
- )
+bld.SAMBA_SUBSYSTEM('gensec_util',
+ source='socket.c gensec_tstream.c gensec_util.c',
+ deps='tevent-util tevent samba-util LIBTSOCKET',
+ autoproto='gensec_proto.h')
bld.SAMBA_MODULE('gensec_krb5',
source='gensec_krb5.c',
diff --git a/source4/auth/ntlmssp/ntlmssp.c b/source4/auth/ntlmssp/ntlmssp.c
index d90c908d8d..9b3aef0c65 100644
--- a/source4/auth/ntlmssp/ntlmssp.c
+++ b/source4/auth/ntlmssp/ntlmssp.c
@@ -27,6 +27,7 @@
#include "librpc/gen_ndr/ndr_dcerpc.h"
#include "auth/gensec/gensec.h"
#include "auth/gensec/gensec_proto.h"
+#include "auth/gensec/gensec_toplevel_proto.h"
/**
* Callbacks for NTLMSSP - for both client and server operating modes