diff --git a/cr_hsm_code.c b/cr_hsm_code.c index 1773b79..8e52239 100644 --- a/cr_hsm_code.c +++ b/cr_hsm_code.c @@ -358,60 +358,60 @@ int hsm_reset_module( void ) SetErrorInfo( __FUNCTION__, __LINE__ ); return ret_code; } - - NFastApp_Free_Command( handle, NULL, NULL, &cmd ); - NFastApp_Free_Reply( handle, NULL, NULL, &reply ); - - memset( &cmd, 0, sizeof( cmd ) ); - memset( &reply, 0, sizeof( reply ) ); - - // モジュールのリセット - cmd.cmd = Cmd_ClearUnit; - cmd.args.clearunit.module = HSM_MODULE_ID; - ret_code = NFastApp_Transact( connection, NULL, &cmd, &reply, NULL ); - if ( ret_code != CR_GENID_SUCCESS ) - { - SetErrorInfo( __FUNCTION__, __LINE__ ); - return ret_code; - } - ret_code = reply.status; - if ( ret_code != CR_GENID_SUCCESS ) - { - SetErrorInfo( __FUNCTION__, __LINE__ ); - return ret_code; - } - - NFastApp_Free_Command( handle, NULL, NULL, &cmd ); - NFastApp_Free_Reply( handle, NULL, NULL, &reply ); - - memset( &cmd, 0, sizeof( cmd ) ); - memset( &reply, 0, sizeof( reply ) ); - - // モジュールの状態を再度確認 - cmd.cmd = Cmd_NewEnquiry; - cmd.args.newenquiry.module = HSM_MODULE_ID; - cmd.args.newenquiry.version = EnqVer_Six; - ret_code = NFastApp_Transact( connection, NULL, &cmd, &reply, NULL ); - if ( ret_code != CR_GENID_SUCCESS ) - { - SetErrorInfo( __FUNCTION__, __LINE__ ); - return ret_code; - } - ret_code = reply.status; - if ( ret_code != CR_GENID_SUCCESS ) - { - SetErrorInfo( __FUNCTION__, __LINE__ ); - return ret_code; - } - - // 復旧しないようなら終了するしかない - if ( reply.reply.newenquiry.flags & Cmd_NewEnquiry_Reply_flags_Failed ) - { - SetErrorInfo( __FUNCTION__, __LINE__ ); - return Status_HardwareFailed; - } } // 復旧処理 + NFastApp_Free_Command( handle, NULL, NULL, &cmd ); + NFastApp_Free_Reply( handle, NULL, NULL, &reply ); + + memset( &cmd, 0, sizeof( cmd ) ); + memset( &reply, 0, sizeof( reply ) ); + + // モジュールのリセット + cmd.cmd = Cmd_ClearUnit; + cmd.args.clearunit.module = HSM_MODULE_ID; + ret_code = NFastApp_Transact( connection, NULL, &cmd, &reply, NULL ); + if ( ret_code != CR_GENID_SUCCESS ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + return ret_code; + } + ret_code = reply.status; + if ( ret_code != CR_GENID_SUCCESS ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + return ret_code; + } + + NFastApp_Free_Command( handle, NULL, NULL, &cmd ); + NFastApp_Free_Reply( handle, NULL, NULL, &reply ); + + memset( &cmd, 0, sizeof( cmd ) ); + memset( &reply, 0, sizeof( reply ) ); + + // モジュールの状態を再度確認 + cmd.cmd = Cmd_NewEnquiry; + cmd.args.newenquiry.module = HSM_MODULE_ID; + cmd.args.newenquiry.version = EnqVer_Six; + ret_code = NFastApp_Transact( connection, NULL, &cmd, &reply, NULL ); + if ( ret_code != CR_GENID_SUCCESS ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + return ret_code; + } + ret_code = reply.status; + if ( ret_code != CR_GENID_SUCCESS ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + return ret_code; + } + + // まだ failed state ならば、終了するしかない + if ( reply.reply.newenquiry.flags & Cmd_NewEnquiry_Reply_flags_Failed ) + { + SetErrorInfo( __FUNCTION__, __LINE__ ); + return Status_HardwareFailed; + } + // 切断 ret_code = NFastApp_Disconnect( hsmConnection, NULL ); if ( ret_code != CR_GENID_SUCCESS )