Add OMEMO untrust command
This commit is contained in:
@@ -580,6 +580,7 @@ cmd_ac_init(void)
|
||||
autocomplete_add(omemo_ac, "gen");
|
||||
autocomplete_add(omemo_ac, "start");
|
||||
autocomplete_add(omemo_ac, "trust");
|
||||
autocomplete_add(omemo_ac, "untrust");
|
||||
autocomplete_add(omemo_ac, "fingerprint");
|
||||
|
||||
connect_property_ac = autocomplete_new();
|
||||
|
||||
@@ -2336,6 +2336,7 @@ static struct cmd_t command_defs[] =
|
||||
{ "gen", cmd_omemo_gen },
|
||||
{ "start", cmd_omemo_start },
|
||||
{ "trust", cmd_omemo_trust },
|
||||
{ "untrust", cmd_omemo_untrust },
|
||||
{ "fingerprint", cmd_omemo_fingerprint })
|
||||
CMD_NOMAINFUNC
|
||||
CMD_TAGS(
|
||||
@@ -2355,7 +2356,8 @@ static struct cmd_t command_defs[] =
|
||||
CMD_EXAMPLES(
|
||||
"/omemo gen",
|
||||
"/omemo start buddy@buddychat.org",
|
||||
"/omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a")
|
||||
"/omemo trust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a",
|
||||
"/omemo untrust c4f9c875-144d7a3b-0c4a05b6-ca3be51a-a037f329-0bd3ae62-07f99719-55559d2a")
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -8065,3 +8065,55 @@ cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args)
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
gboolean
|
||||
cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args)
|
||||
{
|
||||
#ifdef HAVE_OMEMO
|
||||
if (connection_get_status() != JABBER_CONNECTED) {
|
||||
cons_show("You must be connected with an account to load OMEMO information.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (!args[1]) {
|
||||
cons_bad_cmd_usage(command);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (!omemo_loaded()) {
|
||||
win_println(window, THEME_DEFAULT, '!', "You have not generated or loaded a cryptographic materials, use '/omemo gen'");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char *fingerprint;
|
||||
char *barejid;
|
||||
|
||||
/* Contact not provided */
|
||||
if (!args[2]) {
|
||||
fingerprint = args[1];
|
||||
|
||||
if (window->type != WIN_CHAT) {
|
||||
win_println(window, THEME_DEFAULT, '-', "You must be in a regular chat window to trust a device without providing the contact.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
ProfChatWin *chatwin = (ProfChatWin*)window;
|
||||
assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
|
||||
barejid = chatwin->barejid;
|
||||
} else {
|
||||
fingerprint = args[2];
|
||||
char *contact = args[1];
|
||||
barejid = roster_barejid_from_name(contact);
|
||||
if (barejid == NULL) {
|
||||
barejid = contact;
|
||||
}
|
||||
}
|
||||
|
||||
omemo_untrust(barejid, fingerprint);
|
||||
|
||||
return TRUE;
|
||||
#else
|
||||
cons_show("This version of Profanity has not been built with OMEMO support enabled");
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -218,5 +218,6 @@ gboolean cmd_omemo_gen(ProfWin *window, const char *const command, gchar **args)
|
||||
gboolean cmd_omemo_start(ProfWin *window, const char *const command, gchar **args);
|
||||
gboolean cmd_omemo_fingerprint(ProfWin *window, const char *const command, gchar **args);
|
||||
gboolean cmd_omemo_trust(ProfWin *window, const char *const command, gchar **args);
|
||||
gboolean cmd_omemo_untrust(ProfWin *window, const char *const command, gchar **args);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user