kdc: Provide extended error information in AS-REP error replies.
authorLove Hörnquist Åstrand <lha@kth.se>
Wed, 19 Mar 2008 08:57:49 +0000 (08:57 +0000)
committerLove Hörnquist Åstrand <lha@kth.se>
Wed, 19 Mar 2008 08:57:49 +0000 (08:57 +0000)
   This change utilizes the addition of the e_data parameter to the
   windc_plugin in the heimdal code to pass extended information back
   to the client.  The extended information is provided in an e-data
   block as part of the kerberos error message, and allows the client
   to determine which specific error condition occurred.

From Andrew Kroeger and Andrew Bartlet

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22693 ec53bebd-3082-4978-b11e-865c3cabbd6b

kdc/kerberos5.c
kdc/windc.c
kdc/windc_plugin.h

index 5c1d823d167967dbe40b3020514076b47c67c0e7..7c1a5754be4155ae9e5e09701b6be8b37732cf4c 100644 (file)
@@ -1050,7 +1050,7 @@ _kdc_as_rep(krb5_context context,
        goto out;
     }
 
-    ret = _kdc_windc_client_access(context, client, req);
+    ret = _kdc_windc_client_access(context, client, req, &e_data);
     if(ret)
        goto out;
 
index 56978e6ad18fe62f2beed4c75f8680cef5d985c4..3eb6f223936601c35eb9630d5d2a4ce2e6bcc613 100644 (file)
@@ -101,9 +101,10 @@ _kdc_pac_verify(krb5_context context,
 krb5_error_code
 _kdc_windc_client_access(krb5_context context,
                         struct hdb_entry_ex *client,
-                        KDC_REQ *req)
+                        KDC_REQ *req,
+                        krb5_data *e_data)
 {
     if (windcft == NULL)
        return 0;
-    return (windcft->client_access)(windcctx, context, client, req);
+    return (windcft->client_access)(windcctx, context, client, req, e_data);
 }
index 12ed212e90907afc2de6963f11796ef2af757339..3780258ad03ff2624547921a05d0a1949e229173 100644 (file)
@@ -64,10 +64,10 @@ typedef krb5_error_code
 
 typedef krb5_error_code 
 (*krb5plugin_windc_client_access)(
-    void *, krb5_context, struct hdb_entry_ex *, KDC_REQ *);
+    void *, krb5_context, struct hdb_entry_ex *, KDC_REQ *, krb5_data *);
 
 
-#define KRB5_WINDC_PLUGING_MINOR               2
+#define KRB5_WINDC_PLUGING_MINOR               3
 
 typedef struct krb5plugin_windc_ftable {
     int                        minor_version;