diff options
author | Andreas Schneider <asn@samba.org> | 2014-05-12 10:50:33 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2016-03-17 04:32:27 +0100 |
commit | 33fcc76aa782a24d1d70c12a501a61ee657dcb2a (patch) | |
tree | e2fa0f52881a37df3f880a54b7a7b24e7100cf8c /source4/kdc/mit_samba.c | |
parent | 209d4b5b28d517a5446923f9ad2eda583dc25d05 (diff) | |
download | samba-33fcc76aa782a24d1d70c12a501a61ee657dcb2a.tar.gz |
mit_samba: Make mit_samba a shim layer between Samba and KDB
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Sumit Bose <sbose@redhat.com>
Reviewed-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/kdc/mit_samba.c')
-rw-r--r-- | source4/kdc/mit_samba.c | 85 |
1 files changed, 32 insertions, 53 deletions
diff --git a/source4/kdc/mit_samba.c b/source4/kdc/mit_samba.c index fa1e1fce9ba..fa3186e09e4 100644 --- a/source4/kdc/mit_samba.c +++ b/source4/kdc/mit_samba.c @@ -26,23 +26,14 @@ #include <kdb.h> #include "kdc/sdb.h" #include "kdc/sdb_kdb.h" -#include "mit_samba_interface.h" #include "auth/kerberos/kerberos.h" #include "kdc/samba_kdc.h" #include "kdc/pac-glue.h" #include "kdc/db-glue.h" -const int mit_samba_interface_version = MIT_SAMBA_INTERFACE_VERSION; +#include "mit_samba.h" -struct mit_samba_context { - struct auth_session_info *session_info; - - /* for compat with hdb plugin common code */ - krb5_context context; - struct samba_kdc_db_context *db_ctx; -}; - -static void mit_samba_context_free(struct mit_samba_context *ctx) +void mit_samba_context_free(struct mit_samba_context *ctx) { /* free heimdal's krb5_context */ if (ctx->context) { @@ -53,7 +44,7 @@ static void mit_samba_context_free(struct mit_samba_context *ctx) talloc_free(ctx); } -static int mit_samba_context_init(struct mit_samba_context **_ctx) +int mit_samba_context_init(struct mit_samba_context **_ctx) { NTSTATUS status; struct mit_samba_context *ctx; @@ -112,10 +103,10 @@ done: } -static int mit_samba_get_principal(struct mit_samba_context *ctx, - char *principal_string, - unsigned int flags, - krb5_db_entry **_kentry) +int mit_samba_get_principal(struct mit_samba_context *ctx, + char *principal_string, + unsigned int flags, + krb5_db_entry **_kentry) { krb5_principal principal; struct sdb_entry_ex sentry; @@ -164,8 +155,8 @@ done: return ret; } -static int mit_samba_get_firstkey(struct mit_samba_context *ctx, - krb5_db_entry **_kentry) +int mit_samba_get_firstkey(struct mit_samba_context *ctx, + krb5_db_entry **_kentry) { struct sdb_entry_ex sentry; krb5_db_entry *kentry; @@ -202,8 +193,8 @@ static int mit_samba_get_firstkey(struct mit_samba_context *ctx, return ret; } -static int mit_samba_get_nextkey(struct mit_samba_context *ctx, - krb5_db_entry **_kentry) +int mit_samba_get_nextkey(struct mit_samba_context *ctx, + krb5_db_entry **_kentry) { struct sdb_entry_ex sentry; krb5_db_entry *kentry; @@ -240,16 +231,16 @@ static int mit_samba_get_nextkey(struct mit_samba_context *ctx, return ret; } -static int mit_samba_get_pac_data(struct mit_samba_context *ctx, - krb5_db_entry *client, - DATA_BLOB *data) +int mit_samba_get_pac_data(struct mit_samba_context *ctx, + krb5_db_entry *client, + DATA_BLOB *data) { TALLOC_CTX *tmp_ctx; DATA_BLOB *pac_blob; NTSTATUS nt_status; struct samba_kdc_entry *skdc_entry; - skdc_entry = talloc_get_type_abort(client->ctx, + skdc_entry = talloc_get_type_abort(client->e_data, struct samba_kdc_entry); tmp_ctx = talloc_named(ctx, 0, "mit_samba_get_pac_data context"); @@ -275,10 +266,10 @@ static int mit_samba_get_pac_data(struct mit_samba_context *ctx, return 0; } -static int mit_samba_update_pac_data(struct mit_samba_context *ctx, - krb5_db_entry *client, - DATA_BLOB *pac_data, - DATA_BLOB *logon_data) +int mit_samba_update_pac_data(struct mit_samba_context *ctx, + krb5_db_entry *client, + DATA_BLOB *pac_data, + DATA_BLOB *logon_data) { TALLOC_CTX *tmp_ctx; DATA_BLOB *logon_blob; @@ -289,7 +280,7 @@ static int mit_samba_update_pac_data(struct mit_samba_context *ctx, struct samba_kdc_entry *skdc_entry = NULL; if (client) { - skdc_entry = talloc_get_type_abort(client->ctx, + skdc_entry = talloc_get_type_abort(client->e_data, struct samba_kdc_entry); } @@ -391,14 +382,14 @@ static void samba_kdc_build_edata_reply(NTSTATUS nt_status, DATA_BLOB *e_data) return; } -static int mit_samba_check_client_access(struct mit_samba_context *ctx, - krb5_db_entry *client, - const char *client_name, - krb5_db_entry *server, - const char *server_name, - const char *netbios_name, - bool password_change, - DATA_BLOB *e_data) +int mit_samba_check_client_access(struct mit_samba_context *ctx, + krb5_db_entry *client, + const char *client_name, + krb5_db_entry *server, + const char *server_name, + const char *netbios_name, + bool password_change, + DATA_BLOB *e_data) { struct samba_kdc_entry *skdc_entry; NTSTATUS nt_status; @@ -423,10 +414,10 @@ static int mit_samba_check_client_access(struct mit_samba_context *ctx, return 0; } -static int mit_samba_check_s4u2proxy(struct mit_samba_context *ctx, - struct samba_kdc_entry *entry, - const char *target_name, - bool is_nt_enterprise_name) +int mit_samba_check_s4u2proxy(struct mit_samba_context *ctx, + krb5_db_entry *kentry, + const char *target_name, + bool is_nt_enterprise_name) { #if 1 /* @@ -460,15 +451,3 @@ static int mit_samba_check_s4u2proxy(struct mit_samba_context *ctx, return ret; #endif } - -struct mit_samba_function_table mit_samba_function_table = { - mit_samba_context_init, - mit_samba_context_free, - mit_samba_get_principal, - mit_samba_get_firstkey, - mit_samba_get_nextkey, - mit_samba_get_pac_data, - mit_samba_update_pac_data, - mit_samba_check_client_access, - mit_samba_check_s4u2proxy -}; |