mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-29 13:06:22 +00:00
Merge remote-tracking branch 'lucian/master'
Conflicts: src/server_events.c
This commit is contained in:
@@ -208,21 +208,21 @@ handle_incoming_message(char *from, char *message, gboolean priv)
|
|||||||
gboolean was_decrypted = FALSE;
|
gboolean was_decrypted = FALSE;
|
||||||
char *newmessage;
|
char *newmessage;
|
||||||
|
|
||||||
if (!priv) {
|
char *policy = prefs_get_string(PREF_OTR_POLICY);
|
||||||
|
char *whitespace_base = strstr(message,OTRL_MESSAGE_TAG_BASE);
|
||||||
|
|
||||||
|
if (!priv) {
|
||||||
//check for OTR whitespace (opportunistic or always)
|
//check for OTR whitespace (opportunistic or always)
|
||||||
char *policy = prefs_get_string(PREF_OTR_POLICY);
|
|
||||||
if (strcmp(policy, "opportunistic") == 0 || strcmp(policy, "always") == 0) {
|
if (strcmp(policy, "opportunistic") == 0 || strcmp(policy, "always") == 0) {
|
||||||
char *whitespace_base = strstr(message,OTRL_MESSAGE_TAG_BASE);
|
|
||||||
if (whitespace_base) {
|
if (whitespace_base) {
|
||||||
if (strstr(message, OTRL_MESSAGE_TAG_V2) || strstr(message, OTRL_MESSAGE_TAG_V1)) {
|
if (strstr(message, OTRL_MESSAGE_TAG_V2) || strstr(message, OTRL_MESSAGE_TAG_V1)) {
|
||||||
// Remove whitespace pattern for proper display in UI
|
// Remove whitespace pattern for proper display in UI
|
||||||
// Handle both BASE+TAGV1/2(16+8) and BASE+TAGV1+TAGV2(16+8+8)
|
// Handle both BASE+TAGV1/2(16+8) and BASE+TAGV1+TAGV2(16+8+8)
|
||||||
int tag_length = 24;
|
int tag_length = 24;
|
||||||
if (strstr(message, OTRL_MESSAGE_TAG_V2) && strstr(message, OTRL_MESSAGE_TAG_V1)) {
|
if (strstr(message, OTRL_MESSAGE_TAG_V2) && strstr(message, OTRL_MESSAGE_TAG_V1)) {
|
||||||
tag_length = 32;
|
tag_length = 32;
|
||||||
}
|
}
|
||||||
memmove(whitespace_base, whitespace_base+tag_length, tag_length);
|
memmove(whitespace_base, whitespace_base+tag_length, tag_length);
|
||||||
log_debug("<%s>", message);
|
|
||||||
char *otr_query_message = otr_start_query();
|
char *otr_query_message = otr_start_query();
|
||||||
cons_show("OTR Whitespace pattern detected. Attempting to start OTR session...");
|
cons_show("OTR Whitespace pattern detected. Attempting to start OTR session...");
|
||||||
message_send(otr_query_message, from);
|
message_send(otr_query_message, from);
|
||||||
@@ -238,6 +238,11 @@ handle_incoming_message(char *from, char *message, gboolean priv)
|
|||||||
} else {
|
} else {
|
||||||
newmessage = message;
|
newmessage = message;
|
||||||
}
|
}
|
||||||
|
if (strcmp(policy, "always") == 0 && !was_decrypted && !whitespace_base) {
|
||||||
|
char *otr_query_message = otr_start_query();
|
||||||
|
cons_show("Attempting to start OTR session...");
|
||||||
|
message_send(otr_query_message, from);
|
||||||
|
}
|
||||||
|
|
||||||
ui_incoming_msg(from, newmessage, NULL, priv);
|
ui_incoming_msg(from, newmessage, NULL, priv);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user