/* Message dispatcher for credentials messages. */ khm_int32 KHMAPI handle_kmsg_cred(khm_int32 msg_type, khm_int32 msg_subtype, khm_ui_4 uparam, void * vparam) { khm_int32 rv = KHM_ERROR_SUCCESS; switch(msg_subtype) { case KMSG_CRED_REFRESH: return handle_kmsg_cred_refresh(); case KMSG_CRED_DESTROY_CREDS: return handle_kmsg_cred_destroy_creds((khui_action_context *) vparam); case KMSG_CRED_PP_BEGIN: return handle_kmsg_cred_pp_begin((khui_property_sheet *) vparam); case KMSG_CRED_PP_END: return handle_kmsg_cred_pp_end((khui_property_sheet *) vparam); case KMSG_CRED_ADDR_CHANGE: return handle_kmsg_cred_addr_change(); default: /* Credentials acquisition messages are all handled in a different source file. */ if (IS_CRED_ACQ_MSG(msg_subtype)) return handle_cred_acq_msg(msg_type, msg_subtype, uparam, vparam); } return rv; }
/* process KMSG_CRED messages */ khm_int32 KHMAPI afs_msg_cred(khm_int32 msg_subtype, khm_ui_4 uparam, void * vparam) { khm_int32 rv = KHM_ERROR_SUCCESS; switch(msg_subtype) { case KMSG_CRED_REFRESH: afs_list_tokens(); break; case KMSG_CRED_DESTROY_CREDS: { khui_action_context * ctx; ctx = (khui_action_context *) vparam; if (ctx->credset) { _begin_task(0); _report_cs0(KHERR_INFO, L"Destroying AFS Tokens"); _describe(); kcdb_credset_apply(ctx->credset, afs_cred_destroy_proc, NULL); _end_task(); } } break; default: if (IS_CRED_ACQ_MSG(msg_subtype)) return afs_msg_newcred(msg_subtype, uparam, vparam); } return rv; }