diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-10-07 17:24:12 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-10-11 13:41:36 +1100 |
commit | fe02752ed6493efb7af28faa3d64d9fd7895d6f1 (patch) | |
tree | 22463dbd5f702c76ce0021f7aa6fbcc31afe2378 | |
parent | 561d834123a2a8a96954f7cca556f8838ab38b72 (diff) | |
download | samba-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_build | 14 | ||||
-rwxr-xr-x | source3/wscript_build | 2 | ||||
-rw-r--r-- | source4/auth/gensec/cyrus_sasl.c | 1 | ||||
-rw-r--r-- | source4/auth/gensec/gensec_util.c | 59 | ||||
-rw-r--r-- | source4/auth/gensec/schannel.c | 1 | ||||
-rw-r--r-- | source4/auth/gensec/wscript_build | 13 | ||||
-rw-r--r-- | source4/auth/ntlmssp/ntlmssp.c | 1 |
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 |