diff options
-rw-r--r-- | src/command/command.c | 2 | ||||
-rw-r--r-- | src/command/commands.c | 2 | ||||
-rw-r--r-- | src/otr/otr.c | 9 | ||||
-rw-r--r-- | src/otr/otr.h | 2 | ||||
-rw-r--r-- | src/server_events.c | 2 |
5 files changed, 14 insertions, 3 deletions
diff --git a/src/command/command.c b/src/command/command.c index a46c1548..59c5515c 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -1363,7 +1363,7 @@ cmd_execute_default(const char * const inp) ui_current_print_line("You are not currently connected."); } else { #ifdef HAVE_LIBOTR - if ((strcmp(prefs_get_string(PREF_OTR_POLICY), "always") == 0) && !otr_is_secure(recipient)) { + if ((strcmp(otr_get_policy(recipient), "always") == 0) && !otr_is_secure(recipient)) { cons_show_error("Failed to send message. Please check OTR policy"); return TRUE; } diff --git a/src/command/commands.c b/src/command/commands.c index aeae1f90..03759b4b 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1004,7 +1004,7 @@ cmd_msg(gchar **args, struct cmd_help_t help) cons_show_error("Failed to encrypt and send message,"); } } else { - char *policy = prefs_get_string(PREF_OTR_POLICY); + char *policy = otr_get_policy(usr_jid); if (strcmp(policy, "always") == 0) { cons_show_error("Failed to send message. Please check OTR policy"); diff --git a/src/otr/otr.c b/src/otr/otr.c index 043dc30f..dd715233 100644 --- a/src/otr/otr.c +++ b/src/otr/otr.c @@ -32,6 +32,7 @@ #include "roster_list.h" #include "contact.h" #include "ui/ui.h" +#include "config/preferences.h" #define PRESENCE_ONLINE 1 #define PRESENCE_OFFLINE 0 @@ -516,6 +517,13 @@ _otr_get_their_fingerprint(const char * const recipient) } static char * +_otr_get_policy(const char * const recipient) +{ + // check global setting + return prefs_get_string(PREF_OTR_POLICY); +} + +static char * _otr_encrypt_message(const char * const to, const char * const message) { char *newmessage = NULL; @@ -596,4 +604,5 @@ otr_init_module(void) otr_smp_secret = _otr_smp_secret; otr_smp_question = _otr_smp_question; otr_smp_answer = _otr_smp_answer; + otr_get_policy = _otr_get_policy; } diff --git a/src/otr/otr.h b/src/otr/otr.h index 87b34b45..f3000786 100644 --- a/src/otr/otr.h +++ b/src/otr/otr.h @@ -63,4 +63,6 @@ char * (*otr_decrypt_message)(const char * const from, const char * const messag void (*otr_free_message)(char *message); +char * (*otr_get_policy)(const char * const recipient); + #endif diff --git a/src/server_events.c b/src/server_events.c index 6fb06c74..52fdf052 100644 --- a/src/server_events.c +++ b/src/server_events.c @@ -227,7 +227,7 @@ handle_incoming_message(char *from, char *message, gboolean priv) gboolean was_decrypted = FALSE; char *newmessage; - char *policy = prefs_get_string(PREF_OTR_POLICY); + char *policy = otr_get_policy(from); char *whitespace_base = strstr(message,OTRL_MESSAGE_TAG_BASE); if (!priv) { |