about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2022-02-18 10:09:29 +0100
committerMichael Vetter <jubalh@iodoru.org>2022-02-18 14:01:28 +0100
commit33106ecf9c6ebc50878476f734c9d4dddf103929 (patch)
tree8205f3efc04725431889f557c71b9986438811a1
parent3f8720d70f6b4497ef2369a1e7e9b8fbebb4f5bd (diff)
downloadprofani-tty-33106ecf9c6ebc50878476f734c9d4dddf103929.tar.gz
build: remove otr3 support
All the distributions I checked have libotr 4.1.1 now.
-rw-r--r--Makefile.am10
-rw-r--r--configure.ac22
-rw-r--r--src/otr/otrlibv3.c231
3 files changed, 9 insertions, 254 deletions
diff --git a/Makefile.am b/Makefile.am
index d32ae9e9..997607e0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -187,9 +187,6 @@ pgp_sources = \
 pgp_unittest_sources = \
 	tests/unittests/pgp/stub_gpg.c
 
-otr3_sources = \
-	src/otr/otrlib.h src/otr/otrlibv3.c src/otr/otr.h src/otr/otr.c
-
 otr4_sources = \
 	src/otr/otrlib.h src/otr/otrlibv4.c src/otr/otr.h src/otr/otr.c
 
@@ -229,13 +226,8 @@ endif
 
 if BUILD_OTR
 unittest_sources += $(otr_unittest_sources)
-if BUILD_OTR3
-core_sources += $(otr3_sources)
-endif
-if BUILD_OTR4
 core_sources += $(otr4_sources)
 endif
-endif
 
 if BUILD_OMEMO
 core_sources += $(omemo_sources)
@@ -244,7 +236,7 @@ endif
 
 all_c_sources = $(core_sources) $(unittest_sources) \
 				$(pgp_sources) $(pgp_unittest_sources) \
-				$(otr3_sources) $(otr4_sources) $(otr_unittest_sources) \
+				$(otr4_sources) $(otr_unittest_sources) \
 				$(omemo_sources) $(omemo_unittest_sources) \
 				$(c_sources) $(python_sources) \
 				$(main_source)
diff --git a/configure.ac b/configure.ac
index f625c9c2..27715996 100644
--- a/configure.ac
+++ b/configure.ac
@@ -299,23 +299,17 @@ fi
 
 dnl feature: otr
 AM_CONDITIONAL([BUILD_OTR], [false])
-AM_CONDITIONAL([BUILD_OTR3], [false])
-AM_CONDITIONAL([BUILD_OTR4], [false])
 if test "x$enable_otr" != xno; then
     AM_CONDITIONAL([BUILD_OTR], [true])
+
     PKG_CHECK_MODULES([libotr], [libotr >= 4.0],
-        [AM_CONDITIONAL([BUILD_OTR4], [true])],
-        [AC_MSG_NOTICE([libotr >= 4.0 not found, checking for libotr-3.x...])
-         PKG_CHECK_MODULES([libotr], [libotr >= 3.0],
-            [AM_CONDITIONAL([BUILD_OTR3], [true])],
-            [AM_CONDITIONAL([BUILD_OTR], [false])])])
-
-    AM_COND_IF([BUILD_OTR],
-        [LIBS="$libotr_LIBS $LIBS" CFLAGS="$CFLAGS $libotr_CFLAGS"
-         AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])],
-        [AS_IF([test "x$enable_otr" = xyes],
-            [AC_MSG_ERROR([libotr is required for otr encryption support])],
-            [AC_MSG_NOTICE([libotr not found, otr encryption support not enabled])])])
+        [LIBS="$libotr_LIBS $LIBS" CFLAGS="$libotr_CFLAGS $cflags"],
+        [AM_CONDITIONAL([BUILD_OTR], [false])
+         AS_IF([test "x$enable_otr" = xyes],
+               [AC_MSG_ERROR([libotr >= 4.0 is required for OTR support])],
+               [AC_MSG_NOTICE([libotr >= 4.0 not found, OTR support not enabled])])])
+
+   AM_COND_IF([BUILD_OTR], [AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])])
 fi
 
 dnl feature: omemo
diff --git a/src/otr/otrlibv3.c b/src/otr/otrlibv3.c
deleted file mode 100644
index c6e7c275..00000000
--- a/src/otr/otrlibv3.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * otrlibv3.c
- * vim: expandtab:ts=4:sts=4:sw=4
- *
- * Copyright (C) 2012 - 2019 James Booth <boothj5@gmail.com>
- *
- * This file is part of Profanity.
- *
- * Profanity is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Profanity is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Profanity.  If not, see <https://www.gnu.org/licenses/>.
- *
- * In addition, as a special exception, the copyright holders give permission to
- * link the code of portions of this program with the OpenSSL library under
- * certain conditions as described in each individual source file, and
- * distribute linked combinations including the two.
- *
- * You must obey the GNU General Public License in all respects for all of the
- * code used other than OpenSSL. If you modify file(s) with this exception, you
- * may extend this exception to your version of the file(s), but you are not
- * obligated to do so. If you do not wish to do so, delete this exception
- * statement from your version. If you delete this exception statement from all
- * source files in the program, then also delete it here.
- *
- */
-#include "config.h"
-
-#include <libotr/proto.h>
-#include <libotr/privkey.h>
-#include <libotr/message.h>
-
-#include "otr/otr.h"
-#include "otr/otrlib.h"
-#include "ui/ui.h"
-#include "ui/window_list.h"
-
-OtrlPolicy
-otrlib_policy(void)
-{
-    return OTRL_POLICY_ALLOW_V1 | OTRL_POLICY_ALLOW_V2;
-}
-
-void
-otrlib_init_timer(void)
-{
-}
-
-void
-otrlib_poll(void)
-{
-}
-
-char*
-otrlib_start_query(void)
-{
-    return "?OTR?v2? This user has requested an Off-the-Record private conversation. However, you do not have a plugin to support that. See http://otr.cypherpunks.ca/ for more information.";
-}
-
-static int
-cb_display_otr_message(void* opdata, const char* accountname,
-                       const char* protocol, const char* username, const char* msg)
-{
-    cons_show_error("%s", msg);
-    return 0;
-}
-
-void
-otrlib_init_ops(OtrlMessageAppOps* ops)
-{
-    ops->display_otr_message = cb_display_otr_message;
-}
-
-ConnContext*
-otrlib_context_find(OtrlUserState user_state, const char* const recipient, char* jid)
-{
-    return otrl_context_find(user_state, recipient, jid, "xmpp", 0, NULL, NULL, NULL);
-}
-
-void
-otrlib_end_session(OtrlUserState user_state, const char* const recipient, char* jid, OtrlMessageAppOps* ops)
-{
-    ConnContext* context = otrl_context_find(user_state, recipient, jid, "xmpp",
-                                             0, NULL, NULL, NULL);
-
-    if (context) {
-        otrl_message_disconnect(user_state, ops, NULL, jid, "xmpp", recipient);
-    }
-}
-
-gcry_error_t
-otrlib_encrypt_message(OtrlUserState user_state, OtrlMessageAppOps* ops, char* jid, const char* const to,
-                       const char* const message, char** newmessage)
-{
-    gcry_error_t err;
-    err = otrl_message_sending(
-        user_state,
-        ops,
-        NULL,
-        jid,
-        "xmpp",
-        to,
-        message,
-        0,
-        newmessage,
-        NULL,
-        NULL);
-
-    return err;
-}
-
-int
-otrlib_decrypt_message(OtrlUserState user_state, OtrlMessageAppOps* ops, char* jid, const char* const from,
-                       const char* const message, char** decrypted, OtrlTLV** tlvs)
-{
-    return otrl_message_receiving(
-        user_state,
-        ops,
-        NULL,
-        jid,
-        "xmpp",
-        from,
-        message,
-        decrypted,
-        tlvs,
-        NULL,
-        NULL);
-}
-
-void
-otrlib_handle_tlvs(OtrlUserState user_state, OtrlMessageAppOps* ops, ConnContext* context, OtrlTLV* tlvs, GHashTable* smp_initiators)
-{
-    NextExpectedSMP nextMsg = context->smstate->nextExpected;
-    OtrlTLV* tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP1);
-    if (tlv) {
-        if (nextMsg != OTRL_SMP_EXPECT1) {
-            otrl_message_abort_smp(user_state, ops, NULL, context);
-        } else {
-            ProfChatWin* chatwin = wins_get_chat(context->username);
-            if (chatwin) {
-                chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_INIT, NULL);
-            }
-            g_hash_table_insert(smp_initiators, strdup(context->username), strdup(context->username));
-        }
-    }
-    tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP1Q);
-    if (tlv) {
-        if (nextMsg != OTRL_SMP_EXPECT1) {
-            otrl_message_abort_smp(user_state, ops, NULL, context);
-        } else {
-            ProfChatWin* chatwin = wins_get_chat(context->username);
-            if (chatwin) {
-                char* question = (char*)tlv->data;
-                char* eoq = memchr(question, '\0', tlv->len);
-                if (eoq) {
-                    chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_INIT_Q, question);
-                }
-            }
-        }
-    }
-    tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP2);
-    if (tlv) {
-        if (nextMsg != OTRL_SMP_EXPECT2) {
-            otrl_message_abort_smp(user_state, ops, NULL, context);
-        } else {
-            context->smstate->nextExpected = OTRL_SMP_EXPECT4;
-        }
-    }
-    tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP3);
-    if (tlv) {
-        if (nextMsg != OTRL_SMP_EXPECT3) {
-            otrl_message_abort_smp(user_state, ops, NULL, context);
-        } else {
-            context->smstate->nextExpected = OTRL_SMP_EXPECT1;
-            ProfChatWin* chatwin = wins_get_chat(context->username);
-            if (chatwin) {
-                if (context->smstate->received_question == 0) {
-                    if (context->active_fingerprint->trust && (context->active_fingerprint->trust[0] != '\0')) {
-                        chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS, NULL);
-                        chatwin_otr_trust(chatwin);
-                    } else {
-                        chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SENDER_FAIL, NULL);
-                        chatwin_otr_untrust(chatwin);
-                    }
-                } else {
-                    if (context->smstate->sm_prog_state == OTRL_SMP_PROG_SUCCEEDED) {
-                        chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS_Q, NULL);
-                    } else {
-                        chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_FAIL_Q, NULL);
-                    }
-                }
-            }
-        }
-    }
-    tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP4);
-    if (tlv) {
-        if (nextMsg != OTRL_SMP_EXPECT4) {
-            otrl_message_abort_smp(user_state, ops, NULL, context);
-        } else {
-            context->smstate->nextExpected = OTRL_SMP_EXPECT1;
-            ProfChatWin* chatwin = wins_get_chat(context->username);
-            if (chatwin) {
-                if (context->active_fingerprint->trust && (context->active_fingerprint->trust[0] != '\0')) {
-                    chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_SUCCESS, NULL);
-                    chatwin_otr_trust(chatwin);
-                } else {
-                    chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_RECEIVER_FAIL, NULL);
-                    chatwin_otr_untrust(chatwin);
-                }
-            }
-        }
-    }
-    tlv = otrl_tlv_find(tlvs, OTRL_TLV_SMP_ABORT);
-    if (tlv) {
-        context->smstate->nextExpected = OTRL_SMP_EXPECT1;
-        ProfChatWin* chatwin = wins_get_chat(context->username);
-        if (chatwin) {
-            chatwin_otr_smp_event(chatwin, PROF_OTR_SMP_ABORT, NULL);
-            chatwin_otr_untrust(chatwin);
-        }
-        otr_untrust(context->username);
-    }
-}