From: Tom Yu Date: Fri, 28 Sep 2007 23:38:39 +0000 (+0000) Subject: pull up r19864 from trunk X-Git-Tag: krb5-1.6.3-beta2~66 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=514b8846339f89c108dd4704fc1391ebb3f13cec;p=krb5.git pull up r19864 from trunk r19864@cathode-dark-space: jaltman | 2007-08-24 10:45:37 -0400 ticket: new subject: NIM: Add Identity Provider Pre-Process Message component: windows The Network Identity Manager application does not provide a user interface for identity specification. That responsibility lies with the identity provider. Whenever a dialog needs to allow the user to specify an identity, the identity provider has to populate the dialog with the necessary controls so that the user can specify an identity. In the case of the Kerberos v5 identity provider, the controls allow the user to specify a username and a realm. Once the dialog is populated, the application will dispatch window messages to the identity provider. The identity provider will handle the window messages and notify the application when the selected identity changes. One deficiency of the API was that there was no message to notify the identity provider that an identity selection has to be made immediately. When the user invokes the default action for a dialog by hitting enter, the only message received by the dialog is a command identifier of the default action. In this case, the identity provider will not get a chance to notify the application of the identity selection. This patch fixes the API deficiency by introducing a new message, WMNC_IDENT_PREPROCESS, which the application can use to notify the identity provider that the dialog box is about to be processed. In response, the identity provider can notify the application of the selected identity even if no other messages were received by the identity provider. ticket: 5685 version_fixed: 1.6.3 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@19999 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/windows/identity/apiversion.txt b/src/windows/identity/apiversion.txt index 5ca2ccba0..5f07d46f2 100644 --- a/src/windows/identity/apiversion.txt +++ b/src/windows/identity/apiversion.txt @@ -1,363 +1,367 @@ -# Copyright (c) 2004 Massachusetts Institute of Technology -# Copyright (c) 2007 Secure Endpoints Inc. -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation files -# (the "Software"), to deal in the Software without restriction, -# including without limitation the rights to use, copy, modify, merge, -# publish, distribute, sublicense, and/or sell copies of the Software, -# and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - - -# This file documents the versions of the API for NetIDMgr. The -# syntax of the file is: -# -# Version= -# AppVersion= -# Date= | NOTRELEASED -# # -# -# # comment -# Schema: -# # comment - - -#---------------------------------------------------------------- -Version=1 -AppVersion=0.1.0.0 -Date=NOTRELEASED -# Original Khimaira API. - -#---------------------------------------------------------------- -Version=2 -AppVersion=0.1.1.0 -Date=Nov 01, 2005 -# Alpha 1 release of NetIDMgr, along with KFW 3.0.0 beta - -#---------------------------------------------------------------- -Version=3 -AppVersion=0.1.2.0 -Date=Nov 30, 2005 -# Alpha 2 release of NetIDMgr, along with KFW 3.0.0 beta 2 - -#---------------------------------------------------------------- -Version=4 -AppVersion=1.0.0.0 -Date=Dec 05, 2005 -# Released with KfW 3.0.0 - -#---------------------------------------------------------------- -Version=5 -AppVersion=1.1.0.0 -Date=(TBD) -# Released with KFW 3.1.0 - -+khui_alert_show_modal(),KMSG_ALERT_SHOW_MODAL, KHUI_ALERT_FLAG_MODAL -# Support for modal alert boxes - -+KHUI_PACTION_YES, KHUI_PACTION_NO, KHUI_PACTION_YESALL, KHUI_PACTION_NOALL, KHUI_PACTION_KEEP, KHUI_PACTION_REMOVE, KHUI_PACTION_DISCARD -# Additional pseudo actions - -!tag_khui_action, khui_action -# Membership extension for supporting custom actions. Type changes -# from 'int' to khm_int32. - -+khui_action_create(), khui_action_get_data(), khui_action_delete() -# Support for creating custom actions - -!kmq_msg_subscription, tag_kmq_msg_subscription -# Add 'magic' field. - -+KHUI_MENU_NONE -# New identifier for unspecified menu commands. - -+khui_menu_insert_action(), khui_menu_get_action(), khui_menu_get_size(), khui_menu_remove_action() -# Functions for manipulating custom menus - -+khui_menu_insert_paction() -# Exported, but not exposed as an API. For inserting actions by -# reference in to menus. - --khui_menu_add_action(), khui_menu_add_paction() -# Removed deprecated functions. Temporarily provided as macros. The -# replacements are khui_menu_insert_action() and -# khui_menu_insert_paction() respectively. - -+kmq_create_hwnd_subscription() -# Ad-hoc subscriptions can now be obtained for Win32 windows. - --khui_create_gloabl_accel_table() -# Exported but no longer exposed. - --khui_action_list_length() -# Exported but no longer exposed. - -+kmm_enable_plugin() -# New API for enabling or disabling plugins - -!kmm_plugin_info -# Added 'flags' field. - -+KCDB_ATTR_FLAG_TRANSIENT -# New flag for transient attributes. - -+kherr_get_prev_event(), kherr_get_last_event() -# For more efficient traversal of the event lists for use by error context handlers. - -+KHERR_RF_COMMIT -# Flag for error events to signal that the error event has been committed. - -+khui_action_trigger() -# Function for triggerring an action. - -+khui_action_set_hwnd() -# internal API. Should not be used by anyone. Basically sets the HWND that should receive event notifications from the UI library. - -+KEPT_PTR -# error library data type for pointers - -+_cptr -# type cast macro for pointer types - -!khc_open_space -# name parameter is now a const string - -!KCDB_ATTRNAME_ISSUE -# Fixed typo - -!kherr_val -# is now an inline function instead of a macro - -!kherr_param -# is now a structure instead of an integer type - -+KEPT_NONE -# new constant signifying a NULL parameter - -!_int32, _uint32, _int64, _uint64, _cstr, _tstr, _cptr -# appropriate typecasts added - -+vnull -# macro to insert a NULL parameter - -!_report_cs0, _report_cs1, _report_cs2, _report_cs3 -!_report_sr0, _report_sr1, _report_sr2, _report_sr3 -!_report_mr0, _report_mr1, _report_mr2, _report_mr3 -!_report_ts0, _report_ts1, _report_ts2, _report_ts3 -# modified to use _vnull() instead of 0 for NULL parameters - -+KCONF_FLAG_WRITEIFMOD -# new flag for khc_open_space() indicating that the specified handle should only write to a configuration space if the value read from the handle is different from the value being written - -+KCONF_FLAG_IFMODCI -# indicates that the string comparison function used for KCONF_FLAG_WRITEIFMOD should be case insensitive. - -!khc_write_int32(), khc_write_int64(), khc_write_string(), khc_write_multi_string() -# Change of behavior. If the configuration handle has KCONF_FLAG_WRITEIFMOD flag set, only writes if the value being written to is different from the value being read. - -!khc_read_string(), khc_read_multi_string(), khc_read_int32(), khc_read_int64(), khc_read_binary(), khc_write_string(), khc_write_int32(), khc_write_int64(), khc_write_binary(), khc_get_type(), khc_value_exists(), khc_remove_value() -# The value name parameter is now a constant pointer - -!khc_load_schema(), khc_unload_schema() -# The schema pointer is now a constant pointer - --Schema:NetIDMgr\PluginManager\Modules\\Flags --Schema:NetIDMgr\PluginManager\Plugins\\Flags -# Deprecated. Replaced by separate values for each of the bits in Flags. This allows each setting to be deployed independently via GPO. - -+Schema:NetIDMgr\PluginManager\Modules\\Disabled -+Schema:NetIDMgr\PluginManager\Plugins\\Disabled -# If non-zero, the corresponding module or plug-in is disabled. - -!kcdb_identity_set_attrib(), kcdb_identity_get_attrib(), kcdb_identity_get_attrib_string() -# Attribute name parameter is now a const pointer to a wchar_t string - -!kcdb_cred_create() -# Name parameter is now a const pointer to a wchar_t string - -!kcdb_cred_set_attrib(), kcdb_cred_get_attrib() -!kcdb_cred_get_attrib_string(), kcdb_creds_comp_attrib() -# Attribute name parameter is now a const pointer to a wchar_t string - -!kcdb_type_get_id() -# Name parameter is now a const pointer to a wchar_t string - -!kcdb_type_register() -# type parameter is now a const pointer - -!kcdb_attrib_get_id() -# Name parameter is now a const pointer - -!kcdb_attrib_register() -# attrib parameter is now a const pointer - -!kcdb_credtype_register() -# type parameter is now a const pointer - -!kcdb_credtype_get_id() -# name parameter is now a const pointer - -!kcdb_buf_get_attrib(), kcdb_buf_get_attrib_string(), kcbd_buf_set_attrib() -# attr_name is now a const pointer - -+KCDB_OP_DELCONFIG -# notification that the configuration information for an identity is to be removed. - - -#---------------------------------------------------------------- -Version=7 -AppVersion=1.1.9.0 -Date=Feb 16, 2007 -# Released with KFW 3.2 Alpha 1 - -+KHUI_ACTION_UICB -# Internal action to dispatch a UI callback - -+WMNC_UPDATE_LAYOUT -# Used to update the layout and size of the dialogs during a new -# credentials operation. - -- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH -# No longer used - -- NCDLG_BBAR_WIDTH -# Moved to internal header file - -+ KCDB_IDENT_FLAG_UNKNOWN -# Used to indicate that an authority could not be contacted to -# determine the validity of an identity. - -+ khui_refresh_actions() -# Force a refresh of the application menus and toolbars. - -+ khui_action_lock() -+ khui_action_unlock() -# Synchronization of action and menu operations. - -! khui_alert -# Structure definition is now internal - -! khui_action -# Structure definition is now internal - -+ khui_alert_set_type() -+ khui_alert_set_ctx() -+ khui_alert_get_response() -# Additional functions to setup an alert. - -! kmq_message -# Added field "aborted" - -+ kmq_abort_call() -+ kmq_is_call_aborted() -# Added placeholders - -! kmq_message_ref -! kmq_queue -! kmq_msg_subscription -! kmq_msg_type -# Structure definition now internal - -! KMQ_MSG_TYPE_MAX -! KMQ_MAXCCH_TYPE_NAME -! KMQ_MAXCB_TYPE_NAME -! KMQ_MSG_SUB_MAGIC -! KMQ_RCPTTYPE_CB -! KMQ_RCPTTYPE_HWND -! KMQ_QUEUE_FLAG_DELETED -# Macros not internal - -#---------------------------------------------------------------- -Version=8 -AppVersion=1.1.10.0 -Date=(TBD) -# Released with (TBD) - -! hash_add(), hash_del(), hash_lookup(), hash_exist() -# 'key' parameter is now (const void *) - -! struct tag_has_bin, hash_bin -# 'key' member is now (const void *) - - -+WMNC_UPDATE_LAYOUT -# Used to update the layout and size of the dialogs during a new -# credentials operation. - -- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH -# No longer used - -- NCDLG_BBAR_WIDTH -# Moved to internal header file - -+ KCDB_IDENT_FLAG_UNKNOWN -# Used to indicate that an authority could not be contacted to -# determine the validity of an identity. - -+ khui_refresh_actions() -# Force a refresh of the application menus and toolbars. - -+ khui_action_lock() -+ khui_action_unlock() -# Synchronization of action and menu operations. - -! khui_alert -# Structure definition is now internal - -! khui_action -# Structure definition is now internal - -+ khui_alert_set_type() -+ khui_alert_set_ctx() -+ khui_alert_get_response() -# Additional functions to setup an alert. - -! kmq_message -# Added field "aborted" - -+ kmq_abort_call() -+ kmq_is_call_aborted() -# Added placeholders - -! kmq_message_ref -! kmq_queue -! kmq_msg_subscription -! kmq_msg_type -# Structure definition now internal - -! KMQ_MSG_TYPE_MAX -! KMQ_MAXCCH_TYPE_NAME -! KMQ_MAXCB_TYPE_NAME -! KMQ_MSG_SUB_MAGIC -! KMQ_RCPTTYPE_CB -! KMQ_RCPTTYPE_HWND -! KMQ_QUEUE_FLAG_DELETED -# Macros not internal - -! khc_value_exists() -# Behavior change with respect to shadowed handles. If a value -# doesn't exist in the top level handle, then each shadowed handle -# will be tried in turn until the value is found. - -#---------------------------------------------------------------- -Version=9 -AppVersion=1.3.0.0 -Date=(TBD) -# Released with (TBD) - -+ KHERR_CTX_NEWCHILD -+ KHERR_CTX_FOLDCHILD -# Added to kherr.h to support additional notifications +# Copyright (c) 2004 Massachusetts Institute of Technology +# Copyright (c) 2007 Secure Endpoints Inc. +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +# This file documents the versions of the API for NetIDMgr. The +# syntax of the file is: +# +# Version= +# AppVersion= +# Date= | NOTRELEASED +# # +# +# # comment +# Schema: +# # comment + + +#---------------------------------------------------------------- +Version=1 +AppVersion=0.1.0.0 +Date=NOTRELEASED +# Original Khimaira API. + +#---------------------------------------------------------------- +Version=2 +AppVersion=0.1.1.0 +Date=Nov 01, 2005 +# Alpha 1 release of NetIDMgr, along with KFW 3.0.0 beta + +#---------------------------------------------------------------- +Version=3 +AppVersion=0.1.2.0 +Date=Nov 30, 2005 +# Alpha 2 release of NetIDMgr, along with KFW 3.0.0 beta 2 + +#---------------------------------------------------------------- +Version=4 +AppVersion=1.0.0.0 +Date=Dec 05, 2005 +# Released with KfW 3.0.0 + +#---------------------------------------------------------------- +Version=5 +AppVersion=1.1.0.0 +Date=(TBD) +# Released with KFW 3.1.0 + ++khui_alert_show_modal(),KMSG_ALERT_SHOW_MODAL, KHUI_ALERT_FLAG_MODAL +# Support for modal alert boxes + ++KHUI_PACTION_YES, KHUI_PACTION_NO, KHUI_PACTION_YESALL, KHUI_PACTION_NOALL, KHUI_PACTION_KEEP, KHUI_PACTION_REMOVE, KHUI_PACTION_DISCARD +# Additional pseudo actions + +!tag_khui_action, khui_action +# Membership extension for supporting custom actions. Type changes +# from 'int' to khm_int32. + ++khui_action_create(), khui_action_get_data(), khui_action_delete() +# Support for creating custom actions + +!kmq_msg_subscription, tag_kmq_msg_subscription +# Add 'magic' field. + ++KHUI_MENU_NONE +# New identifier for unspecified menu commands. + ++khui_menu_insert_action(), khui_menu_get_action(), khui_menu_get_size(), khui_menu_remove_action() +# Functions for manipulating custom menus + ++khui_menu_insert_paction() +# Exported, but not exposed as an API. For inserting actions by +# reference in to menus. + +-khui_menu_add_action(), khui_menu_add_paction() +# Removed deprecated functions. Temporarily provided as macros. The +# replacements are khui_menu_insert_action() and +# khui_menu_insert_paction() respectively. + ++kmq_create_hwnd_subscription() +# Ad-hoc subscriptions can now be obtained for Win32 windows. + +-khui_create_gloabl_accel_table() +# Exported but no longer exposed. + +-khui_action_list_length() +# Exported but no longer exposed. + ++kmm_enable_plugin() +# New API for enabling or disabling plugins + +!kmm_plugin_info +# Added 'flags' field. + ++KCDB_ATTR_FLAG_TRANSIENT +# New flag for transient attributes. + ++kherr_get_prev_event(), kherr_get_last_event() +# For more efficient traversal of the event lists for use by error context handlers. + ++KHERR_RF_COMMIT +# Flag for error events to signal that the error event has been committed. + ++khui_action_trigger() +# Function for triggerring an action. + ++khui_action_set_hwnd() +# internal API. Should not be used by anyone. Basically sets the HWND that should receive event notifications from the UI library. + ++KEPT_PTR +# error library data type for pointers + ++_cptr +# type cast macro for pointer types + +!khc_open_space +# name parameter is now a const string + +!KCDB_ATTRNAME_ISSUE +# Fixed typo + +!kherr_val +# is now an inline function instead of a macro + +!kherr_param +# is now a structure instead of an integer type + ++KEPT_NONE +# new constant signifying a NULL parameter + +!_int32, _uint32, _int64, _uint64, _cstr, _tstr, _cptr +# appropriate typecasts added + ++vnull +# macro to insert a NULL parameter + +!_report_cs0, _report_cs1, _report_cs2, _report_cs3 +!_report_sr0, _report_sr1, _report_sr2, _report_sr3 +!_report_mr0, _report_mr1, _report_mr2, _report_mr3 +!_report_ts0, _report_ts1, _report_ts2, _report_ts3 +# modified to use _vnull() instead of 0 for NULL parameters + ++KCONF_FLAG_WRITEIFMOD +# new flag for khc_open_space() indicating that the specified handle should only write to a configuration space if the value read from the handle is different from the value being written + ++KCONF_FLAG_IFMODCI +# indicates that the string comparison function used for KCONF_FLAG_WRITEIFMOD should be case insensitive. + +!khc_write_int32(), khc_write_int64(), khc_write_string(), khc_write_multi_string() +# Change of behavior. If the configuration handle has KCONF_FLAG_WRITEIFMOD flag set, only writes if the value being written to is different from the value being read. + +!khc_read_string(), khc_read_multi_string(), khc_read_int32(), khc_read_int64(), khc_read_binary(), khc_write_string(), khc_write_int32(), khc_write_int64(), khc_write_binary(), khc_get_type(), khc_value_exists(), khc_remove_value() +# The value name parameter is now a constant pointer + +!khc_load_schema(), khc_unload_schema() +# The schema pointer is now a constant pointer + +-Schema:NetIDMgr\PluginManager\Modules\\Flags +-Schema:NetIDMgr\PluginManager\Plugins\\Flags +# Deprecated. Replaced by separate values for each of the bits in Flags. This allows each setting to be deployed independently via GPO. + ++Schema:NetIDMgr\PluginManager\Modules\\Disabled ++Schema:NetIDMgr\PluginManager\Plugins\\Disabled +# If non-zero, the corresponding module or plug-in is disabled. + +!kcdb_identity_set_attrib(), kcdb_identity_get_attrib(), kcdb_identity_get_attrib_string() +# Attribute name parameter is now a const pointer to a wchar_t string + +!kcdb_cred_create() +# Name parameter is now a const pointer to a wchar_t string + +!kcdb_cred_set_attrib(), kcdb_cred_get_attrib() +!kcdb_cred_get_attrib_string(), kcdb_creds_comp_attrib() +# Attribute name parameter is now a const pointer to a wchar_t string + +!kcdb_type_get_id() +# Name parameter is now a const pointer to a wchar_t string + +!kcdb_type_register() +# type parameter is now a const pointer + +!kcdb_attrib_get_id() +# Name parameter is now a const pointer + +!kcdb_attrib_register() +# attrib parameter is now a const pointer + +!kcdb_credtype_register() +# type parameter is now a const pointer + +!kcdb_credtype_get_id() +# name parameter is now a const pointer + +!kcdb_buf_get_attrib(), kcdb_buf_get_attrib_string(), kcbd_buf_set_attrib() +# attr_name is now a const pointer + ++KCDB_OP_DELCONFIG +# notification that the configuration information for an identity is to be removed. + + +#---------------------------------------------------------------- +Version=7 +AppVersion=1.1.9.0 +Date=Feb 16, 2007 +# Released with KFW 3.2 Alpha 1 + ++KHUI_ACTION_UICB +# Internal action to dispatch a UI callback + ++WMNC_UPDATE_LAYOUT +# Used to update the layout and size of the dialogs during a new +# credentials operation. + +- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH +# No longer used + +- NCDLG_BBAR_WIDTH +# Moved to internal header file + ++ KCDB_IDENT_FLAG_UNKNOWN +# Used to indicate that an authority could not be contacted to +# determine the validity of an identity. + ++ khui_refresh_actions() +# Force a refresh of the application menus and toolbars. + ++ khui_action_lock() ++ khui_action_unlock() +# Synchronization of action and menu operations. + +! khui_alert +# Structure definition is now internal + +! khui_action +# Structure definition is now internal + ++ khui_alert_set_type() ++ khui_alert_set_ctx() ++ khui_alert_get_response() +# Additional functions to setup an alert. + +! kmq_message +# Added field "aborted" + ++ kmq_abort_call() ++ kmq_is_call_aborted() +# Added placeholders + +! kmq_message_ref +! kmq_queue +! kmq_msg_subscription +! kmq_msg_type +# Structure definition now internal + +! KMQ_MSG_TYPE_MAX +! KMQ_MAXCCH_TYPE_NAME +! KMQ_MAXCB_TYPE_NAME +! KMQ_MSG_SUB_MAGIC +! KMQ_RCPTTYPE_CB +! KMQ_RCPTTYPE_HWND +! KMQ_QUEUE_FLAG_DELETED +# Macros not internal + +#---------------------------------------------------------------- +Version=8 +AppVersion=1.1.10.0 +Date=(TBD) +# Released with (TBD) + +! hash_add(), hash_del(), hash_lookup(), hash_exist() +# 'key' parameter is now (const void *) + +! struct tag_has_bin, hash_bin +# 'key' member is now (const void *) + + ++WMNC_UPDATE_LAYOUT +# Used to update the layout and size of the dialogs during a new +# credentials operation. + +- NCDLG_TAB_HEIGHT, NCDLG_TAB_WIDTH +# No longer used + +- NCDLG_BBAR_WIDTH +# Moved to internal header file + ++ KCDB_IDENT_FLAG_UNKNOWN +# Used to indicate that an authority could not be contacted to +# determine the validity of an identity. + ++ khui_refresh_actions() +# Force a refresh of the application menus and toolbars. + ++ khui_action_lock() ++ khui_action_unlock() +# Synchronization of action and menu operations. + +! khui_alert +# Structure definition is now internal + +! khui_action +# Structure definition is now internal + ++ khui_alert_set_type() ++ khui_alert_set_ctx() ++ khui_alert_get_response() +# Additional functions to setup an alert. + +! kmq_message +# Added field "aborted" + ++ kmq_abort_call() ++ kmq_is_call_aborted() +# Added placeholders + +! kmq_message_ref +! kmq_queue +! kmq_msg_subscription +! kmq_msg_type +# Structure definition now internal + +! KMQ_MSG_TYPE_MAX +! KMQ_MAXCCH_TYPE_NAME +! KMQ_MAXCB_TYPE_NAME +! KMQ_MSG_SUB_MAGIC +! KMQ_RCPTTYPE_CB +! KMQ_RCPTTYPE_HWND +! KMQ_QUEUE_FLAG_DELETED +# Macros not internal + +! khc_value_exists() +# Behavior change with respect to shadowed handles. If a value +# doesn't exist in the top level handle, then each shadowed handle +# will be tried in turn until the value is found. + +#---------------------------------------------------------------- +Version=9 +AppVersion=1.3.0.0 +Date=(TBD) +# Released with (TBD) + ++ KHERR_CTX_NEWCHILD ++ KHERR_CTX_FOLDCHILD +# Added to kherr.h to support additional notifications + ++ WMNC_IDENT_PREPROCESS +# Preprocess the identity selector controls before fetching the +# selected identity diff --git a/src/windows/identity/plugins/krb5/krb5identpro.c b/src/windows/identity/plugins/krb5/krb5identpro.c index 4d1120f39..db1422f01 100644 --- a/src/windows/identity/plugins/krb5/krb5identpro.c +++ b/src/windows/identity/plugins/krb5/krb5identpro.c @@ -722,6 +722,17 @@ ui_cb(khui_new_creds * nc, case WMNC_IDENT_WMSG: return handle_wnd_msg(nc, hwnd, uMsg, wParam, lParam); + case WMNC_IDENT_PREPROCESS: + { +#ifdef DEBUG + assert(d != NULL); +#endif + if (d) { + set_identity_from_ui(nc, d); + } + } + return TRUE; + case WMNC_IDENT_EXIT: { #ifdef DEBUG diff --git a/src/windows/identity/ui/cfg_identities_wnd.c b/src/windows/identity/ui/cfg_identities_wnd.c index 46efe242b..02eb44212 100644 --- a/src/windows/identity/ui/cfg_identities_wnd.c +++ b/src/windows/identity/ui/cfg_identities_wnd.c @@ -982,6 +982,9 @@ khm_cfg_add_ident_proc(HWND hwnd, if (!d || !d->nc) break; + if (d->nc->ident_cb) + d->nc->ident_cb(d->nc, WMNC_IDENT_PREPROCESS, NULL, 0, 0, 0); + /* check if there was an identity selected */ if (d->nc->n_identities == 0 || d->nc->identities[0] == NULL) { diff --git a/src/windows/identity/uilib/khnewcred.h b/src/windows/identity/uilib/khnewcred.h index 6349fc727..db70b41f8 100644 --- a/src/windows/identity/uilib/khnewcred.h +++ b/src/windows/identity/uilib/khnewcred.h @@ -329,6 +329,12 @@ enum khui_wm_nc_ident_notify { WMNC_IDENT_EXIT, /*!< Terminate a credentials acquisition dialog. Sent just before the dialog is terminated. */ + + WMNC_IDENT_PREPROCESS, + /*!< The identity is about to be fetched from the \a + ::khui_new_creds structure. The callback is expected to ensure + that the primary identity listed in that structure is + consistent with the user selection. */ }; /*! \name Standard credtext link IDs