/* Force a context into the OTRL_MSGSTATE_FINISHED state. */ void otrl_context_force_finished(ConnContext *context) { context->msgstate = OTRL_MSGSTATE_FINISHED; otrl_auth_clear(&(context->auth)); context->active_fingerprint = NULL; memset(context->sessionid, 0, 20); context->sessionid_len = 0; context->protocol_version = 0; otrl_sm_state_free(context->smstate); otrl_context_priv_force_finished(context->context_priv); }
/* Force a context into the OTRL_MSGSTATE_FINISHED state. */ void otrl_context_force_finished(ConnContext *context) { context->msgstate = OTRL_MSGSTATE_FINISHED; otrl_auth_clear(&(context->auth)); free(context->fragment); context->fragment = NULL; context->fragment_len = 0; context->fragment_n = 0; context->fragment_k = 0; context->active_fingerprint = NULL; context->their_keyid = 0; gcry_mpi_release(context->their_y); context->their_y = NULL; gcry_mpi_release(context->their_old_y); context->their_old_y = NULL; context->our_keyid = 0; otrl_dh_keypair_free(&(context->our_dh_key)); otrl_dh_keypair_free(&(context->our_old_dh_key)); otrl_dh_session_free(&(context->sesskeys[0][0])); otrl_dh_session_free(&(context->sesskeys[0][1])); otrl_dh_session_free(&(context->sesskeys[1][0])); otrl_dh_session_free(&(context->sesskeys[1][1])); memset(context->sessionid, 0, 20); context->sessionid_len = 0; free(context->preshared_secret); context->preshared_secret = NULL; context->preshared_secret_len = 0; context->protocol_version = 0; context->numsavedkeys = 0; free(context->saved_mac_keys); context->saved_mac_keys = NULL; gcry_free(context->lastmessage); context->lastmessage = NULL; context->may_retransmit = 0; otrl_sm_state_free(context->smstate); }