refactor: improve key transport message handling and deduplicate errors
Centralize heartbeat detection and have a function for error to string mapping. So we don't need the same code in multiple handlers. Signed-off-by: Michael Vetter <jubalh@iodoru.org>
This commit is contained in:
@@ -1089,25 +1089,7 @@ _handle_groupchat(xmpp_stanza_t* const stanza)
|
||||
if (message->omemo_err != OMEMO_ERR_NONE) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
if (message->plain == NULL) {
|
||||
switch (message->omemo_err) {
|
||||
case OMEMO_ERR_NO_KEY:
|
||||
message->plain = g_strdup("OMEMO message received but no key for this device found.");
|
||||
break;
|
||||
case OMEMO_ERR_NOT_TRUSTED:
|
||||
message->plain = g_strdup("OMEMO message received but sender identity is untrusted.");
|
||||
break;
|
||||
case OMEMO_ERR_NO_SESSION:
|
||||
message->plain = g_strdup("OMEMO message received but no session found. Try '/omemo start'.");
|
||||
break;
|
||||
case OMEMO_ERR_DECRYPT_FAILED:
|
||||
message->plain = g_strdup("OMEMO message received but decryption failed.");
|
||||
break;
|
||||
case OMEMO_ERR_KEY_TRANSPORT:
|
||||
break;
|
||||
default:
|
||||
message->plain = g_strdup("OMEMO message received but could not be decrypted.");
|
||||
break;
|
||||
}
|
||||
message->plain = omemo_error_to_string(message->omemo_err);
|
||||
}
|
||||
} else if (message->plain != NULL) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
@@ -1272,25 +1254,7 @@ _handle_muc_private_message(xmpp_stanza_t* const stanza)
|
||||
if (message->omemo_err != OMEMO_ERR_NONE) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
if (message->plain == NULL) {
|
||||
switch (message->omemo_err) {
|
||||
case OMEMO_ERR_NO_KEY:
|
||||
message->plain = g_strdup("OMEMO message received but no key for this device found.");
|
||||
break;
|
||||
case OMEMO_ERR_NOT_TRUSTED:
|
||||
message->plain = g_strdup("OMEMO message received but sender identity is untrusted.");
|
||||
break;
|
||||
case OMEMO_ERR_NO_SESSION:
|
||||
message->plain = g_strdup("OMEMO message received but no session found. Try '/omemo start'.");
|
||||
break;
|
||||
case OMEMO_ERR_DECRYPT_FAILED:
|
||||
message->plain = g_strdup("OMEMO message received but decryption failed.");
|
||||
break;
|
||||
case OMEMO_ERR_KEY_TRANSPORT:
|
||||
break;
|
||||
default:
|
||||
message->plain = g_strdup("OMEMO message received but could not be decrypted.");
|
||||
break;
|
||||
}
|
||||
message->plain = omemo_error_to_string(message->omemo_err);
|
||||
}
|
||||
} else if (message->plain != NULL) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
@@ -1462,25 +1426,7 @@ _handle_chat(xmpp_stanza_t* const stanza, gboolean is_mam, gboolean is_carbon, c
|
||||
if (message->omemo_err != OMEMO_ERR_NONE) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
if (message->plain == NULL) {
|
||||
switch (message->omemo_err) {
|
||||
case OMEMO_ERR_NO_KEY:
|
||||
message->plain = g_strdup("OMEMO message received but no key for this device found.");
|
||||
break;
|
||||
case OMEMO_ERR_NOT_TRUSTED:
|
||||
message->plain = g_strdup("OMEMO message received but sender identity is untrusted.");
|
||||
break;
|
||||
case OMEMO_ERR_NO_SESSION:
|
||||
message->plain = g_strdup("OMEMO message received but no session found. Try '/omemo start'.");
|
||||
break;
|
||||
case OMEMO_ERR_DECRYPT_FAILED:
|
||||
message->plain = g_strdup("OMEMO message received but decryption failed.");
|
||||
break;
|
||||
case OMEMO_ERR_KEY_TRANSPORT:
|
||||
break;
|
||||
default:
|
||||
message->plain = g_strdup("OMEMO message received but could not be decrypted.");
|
||||
break;
|
||||
}
|
||||
message->plain = omemo_error_to_string(message->omemo_err);
|
||||
}
|
||||
} else if (message->plain != NULL) {
|
||||
message->enc = PROF_MSG_ENC_OMEMO;
|
||||
|
||||
Reference in New Issue
Block a user