For now just disable this Heindal specific stuff in the MIT build
authorSimo Sorce <idra@samba.org>
Sat, 21 Apr 2012 20:35:48 +0000 (16:35 -0400)
committerSimo Sorce <idra@samba.org>
Mon, 23 Apr 2012 20:40:49 +0000 (16:40 -0400)
source4/auth/gensec/gensec_gssapi.c
source4/auth/kerberos/kerberos_util.c
source4/auth/kerberos/krb5_init_context.c
source4/auth/kerberos/krb5_init_context.h
source4/auth/kerberos/wscript_build

index 7de15c8673c319747d128ea9637f7143e6b2b3dc..efd84437608f4b96188594ec2ec3b9212cc825f8 100644 (file)
@@ -434,8 +434,10 @@ static NTSTATUS gensec_gssapi_update(struct gensec_security *gensec_security,
                                return nt_status;
                        }
 
                                return nt_status;
                        }
 
+#ifdef SAMBA4_USES_HEIMDAL
                        send_to_kdc.func = smb_krb5_send_and_recv_func;
                        send_to_kdc.ptr = ev;
                        send_to_kdc.func = smb_krb5_send_and_recv_func;
                        send_to_kdc.ptr = ev;
+#endif
 
                        min_stat = gsskrb5_set_send_to_kdc(&send_to_kdc);
                        if (min_stat) {
 
                        min_stat = gsskrb5_set_send_to_kdc(&send_to_kdc);
                        if (min_stat) {
@@ -460,8 +462,10 @@ static NTSTATUS gensec_gssapi_update(struct gensec_security *gensec_security,
                                gensec_gssapi_state->gss_oid = gss_oid_p;
                        }
 
                                gensec_gssapi_state->gss_oid = gss_oid_p;
                        }
 
+#ifdef SAMBA4_USES_HEIMDAL
                        send_to_kdc.func = smb_krb5_send_and_recv_func;
                        send_to_kdc.ptr = NULL;
                        send_to_kdc.func = smb_krb5_send_and_recv_func;
                        send_to_kdc.ptr = NULL;
+#endif
 
                        ret = gsskrb5_set_send_to_kdc(&send_to_kdc);
                        if (ret) {
 
                        ret = gsskrb5_set_send_to_kdc(&send_to_kdc);
                        if (ret) {
index d30ac24c341ba641d4c7a9dd55df2e31ebbb35de..9933ca84c798da4a30a2e521c26ea8c9a3fae33d 100644 (file)
@@ -224,11 +224,13 @@ static krb5_error_code impersonate_principal_from_credentials(
        while (tries--) {
                struct tevent_context *previous_ev;
                /* Do this every time, in case we have weird recursive issues here */
        while (tries--) {
                struct tevent_context *previous_ev;
                /* Do this every time, in case we have weird recursive issues here */
+#ifdef SAMBA4_USES_HEIMDAL
                ret = smb_krb5_context_set_event_ctx(smb_krb5_context, event_ctx, &previous_ev);
                if (ret) {
                        talloc_free(mem_ctx);
                        return ret;
                }
                ret = smb_krb5_context_set_event_ctx(smb_krb5_context, event_ctx, &previous_ev);
                if (ret) {
                        talloc_free(mem_ctx);
                        return ret;
                }
+#endif
                if (password) {
                        ret = kerberos_kinit_password_cc(smb_krb5_context->krb5_context, ccache, 
                                                         princ, password,
                if (password) {
                        ret = kerberos_kinit_password_cc(smb_krb5_context->krb5_context, ccache, 
                                                         princ, password,
@@ -251,7 +253,9 @@ static krb5_error_code impersonate_principal_from_credentials(
                                talloc_free(mem_ctx);
                                (*error_string) = "kinit_to_ccache: No password available for kinit\n";
                                krb5_get_init_creds_opt_free(smb_krb5_context->krb5_context, krb_options);
                                talloc_free(mem_ctx);
                                (*error_string) = "kinit_to_ccache: No password available for kinit\n";
                                krb5_get_init_creds_opt_free(smb_krb5_context->krb5_context, krb_options);
+#ifdef SAMBA4_USES_HEIMDAL
                                smb_krb5_context_remove_event_ctx(smb_krb5_context, previous_ev, event_ctx);
                                smb_krb5_context_remove_event_ctx(smb_krb5_context, previous_ev, event_ctx);
+#endif
                                return EINVAL;
                        }
                        ret = krb5_keyblock_init(smb_krb5_context->krb5_context,
                                return EINVAL;
                        }
                        ret = krb5_keyblock_init(smb_krb5_context->krb5_context,
@@ -268,7 +272,9 @@ static krb5_error_code impersonate_principal_from_credentials(
                        }
                }
 
                        }
                }
 
+#ifdef SAMBA4_USES_HEIMDAL
                smb_krb5_context_remove_event_ctx(smb_krb5_context, previous_ev, event_ctx);
                smb_krb5_context_remove_event_ctx(smb_krb5_context, previous_ev, event_ctx);
+#endif
 
                if (ret == KRB5KRB_AP_ERR_SKEW || ret == KRB5_KDCREP_SKEW) {
                        /* Perhaps we have been given an invalid skew, so try again without it */
 
                if (ret == KRB5KRB_AP_ERR_SKEW || ret == KRB5_KDCREP_SKEW) {
                        /* Perhaps we have been given an invalid skew, so try again without it */
index e3c0876f1a6945b4414c8a873e987de0a8db3dff..4125f395486357dd71488e24d56cd8e2b91b0b6f 100644 (file)
@@ -86,6 +86,7 @@ static void smb_krb5_debug_wrapper(krb5_context context,
 }
 #endif
 
 }
 #endif
 
+#ifdef SAMBA4_USES_HEIMDAL
 /*
   handle recv events on a smb_krb5 socket
 */
 /*
   handle recv events on a smb_krb5 socket
 */
@@ -214,7 +215,6 @@ static void smb_krb5_socket_handler(struct tevent_context *ev, struct tevent_fd
        }
 }
 
        }
 }
 
-
 krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                                            void *data,
                                            krb5_krbhst_info *hi,
 krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                                            void *data,
                                            krb5_krbhst_info *hi,
@@ -412,6 +412,7 @@ krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
        }
        return KRB5_KDC_UNREACH;
 }
        }
        return KRB5_KDC_UNREACH;
 }
+#endif
 
 krb5_error_code
 smb_krb5_init_context_basic(TALLOC_CTX *tmp_ctx,
 
 krb5_error_code
 smb_krb5_init_context_basic(TALLOC_CTX *tmp_ctx,
@@ -558,6 +559,7 @@ krb5_error_code smb_krb5_init_context(void *parent_ctx,
        return 0;
 }
 
        return 0;
 }
 
+#ifdef SAMBA4_USES_HEIMDAL
 krb5_error_code smb_krb5_context_set_event_ctx(struct smb_krb5_context *smb_krb5_context,
                                               struct tevent_context *ev,
                                               struct tevent_context **previous_ev)
 krb5_error_code smb_krb5_context_set_event_ctx(struct smb_krb5_context *smb_krb5_context,
                                               struct tevent_context *ev,
                                               struct tevent_context **previous_ev)
@@ -611,3 +613,4 @@ krb5_error_code smb_krb5_context_remove_event_ctx(struct smb_krb5_context *smb_k
        }
        return 0;
 }
        }
        return 0;
 }
+#endif
index 24ae374cd71f851cc3d2a055550177be71f7e734..b955ae508dd3a6b30411f5cd6003e561ad8d3716 100644 (file)
@@ -38,11 +38,19 @@ krb5_error_code smb_krb5_init_context(void *parent_ctx, struct tevent_context *e
                                      struct loadparm_context *lp_ctx,
                                      struct smb_krb5_context **smb_krb5_context); 
 
                                      struct loadparm_context *lp_ctx,
                                      struct smb_krb5_context **smb_krb5_context); 
 
+#ifdef SAMBA4_USES_HEIMDAL
 krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                                            void *data,
                                            krb5_krbhst_info *hi,
                                            time_t timeout,
                                            const krb5_data *send_buf,
                                            krb5_data *recv_buf);
 krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                                            void *data,
                                            krb5_krbhst_info *hi,
                                            time_t timeout,
                                            const krb5_data *send_buf,
                                            krb5_data *recv_buf);
+krb5_error_code smb_krb5_context_set_event_ctx(struct smb_krb5_context *smb_krb5_context,
+                                              struct tevent_context *ev,
+                                              struct tevent_context **previous_ev);
+krb5_error_code smb_krb5_context_remove_event_ctx(struct smb_krb5_context *smb_krb5_context,
+                                                 struct tevent_context *previous_ev,
+                                                 struct tevent_context *ev);
+#endif
 
 #endif /* _KRB5_INIT_CONTEXT_H_ */
 
 #endif /* _KRB5_INIT_CONTEXT_H_ */
index 619626fe193eb6b009cff15540df774d97a8ba9f..be41d1b7b30fa15235d100c14fe1a06d6668f882 100755 (executable)
@@ -1,10 +1,15 @@
 #!/usr/bin/env python
 
 #!/usr/bin/env python
 
+bld.SAMBA_SUBSYSTEM('KRB_INIT_CTX',
+                   source='krb5_init_context.c',
+                   deps='krb5 com_err'
+                  )
+
 bld.SAMBA_LIBRARY('authkrb5',
 bld.SAMBA_LIBRARY('authkrb5',
-                  source='kerberos.c kerberos_heimdal.c kerberos_pac.c krb5_init_context.c keytab_copy.c',
+                  source='kerberos.c kerberos_heimdal.c kerberos_pac.c keytab_copy.c',
                   autoproto='proto.h',
                   public_deps='krb5 ndr-krb5pac samba_socket LIBCLI_RESOLVE com_err asn1',
                   autoproto='proto.h',
                   public_deps='krb5 ndr-krb5pac samba_socket LIBCLI_RESOLVE com_err asn1',
-                  deps='auth_sam_reply tevent LIBPACKET ndr ldb KRB5_WRAP errors',
+                  deps='auth_sam_reply tevent LIBPACKET ndr ldb KRB5_WRAP KRB_INIT_CTX errors',
                   private_library=True
                   )
 
                   private_library=True
                   )