use-otr-v4.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 15 May 2013 13:32:42 +0300
changeset 86 ac5fed257211
parent 62 f5249c9544e5
permissions -rw-r--r--
[round-prio] Fix numbers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
# HG changeset patch
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
# Parent 1b31bdb72d83850b146a0e1e135eba35bad73d29
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
Switch to libotr v4 API
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
diff -r 1b31bdb72d83 mcabber/configure.ac
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
--- a/mcabber/configure.ac	Sun Jan 13 04:35:32 2013 +0200
62
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
     7
+++ b/mcabber/configure.ac	Fri Jan 18 11:23:47 2013 +0200
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
@@ -183,16 +183,26 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
 # Check for otr
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
 AC_ARG_ENABLE(otr,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
-              AC_HELP_STRING([--enable-otr],
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
-                             [enable OTR (Off-the-Record) messaging support]),
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
-              enable_otr=$enableval, otr="")
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
+    AC_HELP_STRING([--enable-otr],
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
+                   [enable OTR (Off-the-Record) messaging support]),
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
+    enable_otr=$enableval,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
+    otr="")
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
 if test "x$enable_otr" = "xyes"; then
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
-  # Look for libgcrypt and libotr
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
-  AM_PATH_LIBGCRYPT(1.2.2, [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
-          AM_PATH_LIBOTR(3.1.0, ,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
-                         AC_MSG_ERROR(libotr 3.1.0 or newer is required.))
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
-      ], AC_MSG_ERROR(libgcrypt 1.2.2 or newer is required.)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
-  )
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
+    # Look for libgcrypt and libotr
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
+    AM_PATH_LIBGCRYPT(1.2.2, [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
+        AM_PATH_LIBOTR(4.0.0, [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
+            AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
+        ], [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
+            AM_PATH_LIBOTR(3.1.0, [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
+                AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
+                AC_DEFINE([HAVE_LIBOTR3], 1, [Define if you use libotr v3])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
+            ], [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
+                AC_MSG_ERROR(libotr 3.1.0 or newer is required.)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
+            ])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
+        ])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
+    ], [
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
+        AC_MSG_ERROR(libgcrypt 1.2.2 or newer is required.)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
+    ])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
 fi
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
 # Check for Enchant stuff
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
@@ -289,3 +299,4 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
                  mcabber.pc
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
                  Makefile])
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
 AC_OUTPUT
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
+dnl vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users...
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
diff -r 1b31bdb72d83 mcabber/mcabber/otr.c
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    50
--- a/mcabber/mcabber/otr.c	Sun Jan 13 04:35:32 2013 +0200
62
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
    51
+++ b/mcabber/mcabber/otr.c	Fri Jan 18 11:23:47 2013 +0200
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    52
@@ -56,6 +56,20 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
                                          const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
                                          const char *recipient,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
                                          const char *message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
+static void       cb_update_context_list(void *opdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
+static void       cb_new_fingerprint    (void *opdata, OtrlUserState us,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
+                                         const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
+                                         const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
+                                         const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
+                                         unsigned char fingerprint[20]);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
+static void       cb_write_fingerprints (void *opdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
+static void       cb_gone_secure        (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
+static void       cb_gone_insecure      (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
+static void       cb_still_secure       (void *opdata, ConnContext *context,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
+                                         int is_reply);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
+static int        cb_max_message_size   (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
 static void       cb_notify             (void *opdata,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
                                          OtrlNotifyLevel level,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
                                          const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
@@ -69,22 +83,26 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
                                          const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
                                          const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
                                          const char *msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
-static void       cb_update_context_list(void *opdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
 static const char *cb_protocol_name     (void *opdata, const char *protocol);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
 static void       cb_protocol_name_free (void *opdata,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
                                          const char *protocol_name);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
-static void       cb_new_fingerprint    (void *opdata, OtrlUserState us,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
-                                         const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
-                                         const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
-                                         const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
-                                         unsigned char fingerprint[20]);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
-static void       cb_write_fingerprints (void *opdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
-static void       cb_gone_secure        (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
-static void       cb_gone_insecure      (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
-static void       cb_still_secure       (void *opdata, ConnContext *context,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
-                                         int is_reply);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
 static void       cb_log_message        (void *opdata, const char *message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
-static int        cb_max_message_size   (void *opdata, ConnContext *context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
+static void       otr_handle_smp_tlvs   (OtrlTLV *tlvs, ConnContext *ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
+#else /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
+static char *tagfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
+static guint otr_timer_source = 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
+static void       cb_handle_smp_event   (void *opdata, OtrlSMPEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
+                                         ConnContext *context, unsigned short percent,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
+                                         char *question);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
+static void       cb_handle_msg_event   (void *opdata, OtrlMessageEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
+                                         ConnContext *context, const char *message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
+                                         gcry_error_t err);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
+static void       cb_create_instag      (void *opdata, const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
+                                         const char *protocol);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
+static void       cb_timer_control      (void *opdata, unsigned int interval);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
+#endif /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   109
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
 static OtrlMessageAppOps ops =
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
 {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
@@ -92,26 +110,44 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
   cb_create_privkey,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
   cb_is_logged_in,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
   cb_inject_message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
   cb_notify,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
   cb_display_otr_message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
   cb_update_context_list,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
   cb_protocol_name,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   123
   cb_protocol_name_free,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   124
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   125
   cb_new_fingerprint,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   126
   cb_write_fingerprints,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
   cb_gone_secure,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   128
   cb_gone_insecure,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   129
   cb_still_secure,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   131
   cb_log_message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   132
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
   cb_max_message_size,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
-  NULL, /*account_name*/
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
-  NULL  /*account_name_free*/
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
+  NULL, /* account_name */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
+  NULL, /* account_name_free */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
+  NULL, /* received_symkey */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
+  NULL, /* otr_error_message */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
+  NULL, /* otr_error_message_free */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
+  NULL, /* resent_msg_prefix */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
+  NULL, /* resent_msg_prefix_free */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
+  cb_handle_smp_event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
+  cb_handle_msg_event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
+  cb_create_instag,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
+  NULL, /* convert_msg */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
+  NULL, /* convert_free */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
+  cb_timer_control,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   151
 };
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
 static void otr_message_disconnect(ConnContext *ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
 static ConnContext *otr_get_context(const char *buddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
 static void otr_startstop(const char *buddy, int start);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
-static void otr_handle_smp_tlvs(OtrlTLV *tlvs, ConnContext *ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
 static char *otr_get_dir(void);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
 
62
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   160
@@ -135,7 +171,6 @@
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   161
   account = jidtodisp(fjid);
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   162
   keyfile = g_strdup_printf("%s%s.key", root, account);
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   163
   fprfile = g_strdup_printf("%s%s.fpr", root, account);
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   164
-  g_free(root);
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   165
 
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   166
   if (otrl_privkey_read(userstate, keyfile)){
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   167
     scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR key from %s", keyfile);
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   168
@@ -145,6 +180,14 @@
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
     scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR fingerprints from %s",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
                  fprfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   171
   }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   172
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
+  tagfile = g_strdup_printf("%s%s.tag", root, account);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
+  if (otrl_instag_read(userstate, tagfile)) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
+    scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR instance tag from %s", tagfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
+    cb_create_instag(NULL, account, OTR_PROTOCOL_NAME);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   177
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   178
+#endif
62
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   179
+  g_free(root);
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
 void otr_terminate(void)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
@@ -154,6 +197,13 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
   if (!otr_is_enabled)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
     return;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
+  if (otr_timer_source > 0) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
+    g_source_remove (otr_timer_source);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
+    otr_timer_source = 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
   for (ctx = userstate->context_root; ctx; ctx = ctx->next)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
     if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
       otr_message_disconnect(ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
@@ -175,6 +225,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
   userstate = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
   g_free(keyfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
   keyfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
+  g_free(fprfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
+  fprfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
+  g_free(tagfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
+  tagfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
 static char *otr_get_dir(void)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
@@ -206,7 +262,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
   mc_strtolower(lowcasebuddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
   ctx = otrl_context_find(userstate, lowcasebuddy, account, OTR_PROTOCOL_NAME,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
                           1, &null, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
+                          // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
+                          OTRL_INSTAG_BEST, 1, &null, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
   g_free(lowcasebuddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
   return ctx;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
@@ -216,7 +277,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
   if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
     cb_gone_insecure(NULL, ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
   otrl_message_disconnect(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
                           ctx->protocol, ctx->username);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
+                          // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
+                          ctx->protocol, ctx->username, OTRL_INSTAG_BEST);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
 static void otr_startstop(const char *buddy, int start)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
@@ -283,6 +349,8 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
   cb_write_fingerprints(NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
 static void otr_handle_smp_tlvs(OtrlTLV *tlvs, ConnContext *ctx)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
 {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
   OtrlTLV *tlv = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
@@ -354,6 +422,130 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
   }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
+#else /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
+static void cb_handle_smp_event(void *opdata, OtrlSMPEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
+                                ConnContext *context, unsigned short percent,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
+                                char *question)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
+  const char *msg = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
+  char *freeme = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   257
+  switch (event) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
+    case OTRL_SMPEVENT_ASK_FOR_SECRET:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
+      msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
+                                     "Received SMP Initiation.\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   261
+                                     "Answer with /otr smpr %s $secret",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   262
+                                     context->username);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   264
+    case OTRL_SMPEVENT_ASK_FOR_ANSWER:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
+      msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   266
+                                     "Received SMP Initiation.\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
+                                     "Answer with /otr smpr %s $secret\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
+                                     "Question: %s", context->username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
+                                     question);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
+    case OTRL_SMPEVENT_CHEATED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
+      msg = "OTR: Socialist Millionaires' Protocol: Correspondent cancelled negotiation!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   273
+      otrl_message_abort_smp(userstate, &ops, opdata, context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
+    case OTRL_SMPEVENT_IN_PROGRESS:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
+      scr_log_print(LPRINT_DEBUG, "OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
+                                  "Negotiation is in pogress...");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   278
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   279
+    case OTRL_SMPEVENT_SUCCESS:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   280
+      msg = "OTR: Socialist Millionaires' Protocol: Success!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   281
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   282
+    case OTRL_SMPEVENT_FAILURE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   283
+      msg = "OTR: Socialist Millionaires' Protocol: Failure.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   284
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   285
+    case OTRL_SMPEVENT_ABORT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   286
+      msg = "OTR: Socialist Millionaires' Protocol: Aborted.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   287
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   288
+    case OTRL_SMPEVENT_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   289
+      msg = "OTR: Socialist Millionaires' Protocol: Error occured, aborting negotiations!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   290
+      otrl_message_abort_smp(userstate, &ops, opdata, context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   291
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   292
+    default:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   293
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   294
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   295
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   296
+  if (msg) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   297
+    scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   298
+    g_free(freeme);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   299
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   300
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   301
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   302
+static void cb_handle_msg_event(void *opdata, OtrlMessageEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   303
+                                ConnContext *context, const char *message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   304
+                                gcry_error_t err)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   305
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   306
+  const char *msg = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   307
+  char *freeme = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   308
+  switch (event) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   309
+    case OTRL_MSGEVENT_ENCRYPTION_REQUIRED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   310
+      msg = "OTR: Policy requires encryption on message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   311
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   312
+    case OTRL_MSGEVENT_ENCRYPTION_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   313
+      msg = "OTR: Encryption error! Message not sent.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   314
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   315
+    case OTRL_MSGEVENT_CONNECTION_ENDED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   316
+      msg = "OTR: Connection closed by remote end, message lost. "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   317
+            "Close or refresh connection.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   318
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   319
+    case OTRL_MSGEVENT_SETUP_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   320
+      // FIXME
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   321
+      msg = freeme = g_strdup_printf("OTR: Error setting up private conversation: %u",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   322
+                                     err);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   323
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   324
+    case OTRL_MSGEVENT_MSG_REFLECTED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   325
+      msg = "OTR: Received own OTR message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   326
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   327
+    case OTRL_MSGEVENT_MSG_RESENT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   328
+      msg = "OTR: Previous message was resent.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   329
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   330
+    case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   331
+      msg = "OTR: Received encrypted message, but connection is not established " \
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   332
+            "yet! Message lost.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   333
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   334
+    case OTRL_MSGEVENT_RCVDMSG_UNREADABLE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
+      msg = "OTR: Unable to read incoming message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   336
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   337
+    case OTRL_MSGEVENT_RCVDMSG_MALFORMED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
+      msg = "OTR: Malformed incoming message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   339
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
+    case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
+      scr_log_print(LPRINT_DEBUG, "OTR: Received heartbeat.");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
+    case OTRL_MSGEVENT_LOG_HEARTBEAT_SENT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
+      scr_log_print(LPRINT_DEBUG, "OTR: Sent heartbeat.");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
+    case OTRL_MSGEVENT_RCVDMSG_GENERAL_ERR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
+      msg = freeme = g_strdup_printf("OTR: Received general otr error: %s",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
+                                     message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
+    case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   351
+      msg = freeme = g_strdup_printf("OTR: Received unencrypted message: %s",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
+                                     message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   353
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   354
+    case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
+      msg = "OTR: Unable to determine type of received OTR message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   356
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
+    case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   358
+      // XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
+      scr_log_print(LPRINT_DEBUG, "OTR: Received message for other instance.");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   360
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
+    default:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   363
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   364
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   365
+  if (msg) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   366
+    scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   367
+    g_free(freeme);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   368
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   369
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   370
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   371
+#endif /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   372
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   373
 /*
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   374
  * returns whether a otr_message was received
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   375
  * sets *otr_data to NULL, when it was an internal otr message
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   376
@@ -362,8 +554,10 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   377
 {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   378
   int ignore_message;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   379
   char *newmessage = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   380
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   381
   OtrlTLV *tlvs = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   382
   OtrlTLV *tlv = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   383
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   384
   ConnContext *ctx;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   385
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   386
   ctx = otr_get_context(buddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   387
@@ -371,8 +565,8 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   388
   ignore_message = otrl_message_receiving(userstate, &ops, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   389
                                           ctx->accountname, ctx->protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   390
                                           ctx->username, *otr_data,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   391
-                                          &newmessage, &tlvs,NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   392
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   393
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   394
+                                          &newmessage, &tlvs, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   395
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   396
   tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   397
   if (tlv) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   398
@@ -387,6 +581,9 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   399
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   400
   if (tlvs != NULL)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   401
     otrl_tlv_free(tlvs);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   402
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   403
+                                          &newmessage, NULL, NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   404
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   405
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   406
   if (ignore_message)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   407
     *otr_data = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   408
@@ -410,13 +607,27 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   409
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   410
   if (ctx->msgstate == OTRL_MSGSTATE_PLAINTEXT)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   411
     err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   412
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   413
                                ctx->protocol, ctx->username, *msg, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   414
                                &newmessage, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   415
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   416
+                               // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   417
+                               ctx->protocol, ctx->username, OTRL_INSTAG_BEST,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   418
+                               *msg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   419
+                               NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   420
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   421
   else {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   422
     htmlmsg = html_escape(*msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   423
     err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   424
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   425
                                ctx->protocol, ctx->username, htmlmsg, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   426
                                &newmessage, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   427
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   428
+                               // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   429
+                               ctx->protocol, ctx->username, OTRL_INSTAG_BEST,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   430
+                               htmlmsg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   431
+                               NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   432
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   433
     g_free(htmlmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   434
   }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   435
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   436
@@ -648,42 +859,6 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   437
                   LM_MESSAGE_SUB_TYPE_NOT_SET, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   438
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   439
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   440
-/* Display a notification message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   441
- * accountname / protocol / username conversation. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   442
-static void cb_notify(void *opdata, OtrlNotifyLevel level,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   443
-                      const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   444
-                      const char *username, const char *title,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   445
-                      const char *primary, const char *secondary)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   446
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   447
-  char *type;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   448
-  char *sbuf = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   449
-  switch (level) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   450
-    case OTRL_NOTIFY_ERROR:   type = "error";   break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   451
-    case OTRL_NOTIFY_WARNING: type = "warning"; break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   452
-    case OTRL_NOTIFY_INFO:    type = "info";    break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   453
-    default:                  type = "unknown";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   454
-  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   455
-  sbuf = g_strdup_printf("OTR %s:%s\n%s\n%s",type,title, primary, secondary);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   456
-  scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   457
-  g_free(sbuf);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   458
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   459
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   460
-/* Display an OTR control message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   461
- * accountname / protocol / username conversation.  Return 0 if you are able
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   462
- * to successfully display it.  If you return non-0 (or if this
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   463
- * function is NULL), the control message will be displayed inline,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   464
- * as a received message, or else by using the above notify()
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   465
- * callback. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   466
-static int cb_display_otr_message(void *opdata, const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   467
-                                  const char *protocol, const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   468
-                                  const char *msg)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   469
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   470
-  char *strippedmsg = html_strip(msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   471
-  scr_WriteIncomingMessage(username, strippedmsg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   472
-  g_free(strippedmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   473
-  return 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   474
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   475
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   476
 /* When the list of ConnContexts changes (including a change in
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   477
  * state), this is called so the UI can be updated. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   478
 static void cb_update_context_list(void *opdata)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   479
@@ -692,19 +867,6 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   480
    * then use this function (?!)*/
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   481
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   482
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   483
-/* Return a newly allocated string containing a human-friendly name
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   484
- * for the given protocol id */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   485
-static const char *cb_protocol_name(void *opdata, const char *protocol)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   486
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   487
-  return protocol;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   488
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   489
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   490
-/* Deallocate a string allocated by protocol_name */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   491
-static void cb_protocol_name_free (void *opdata, const char *protocol_name)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   492
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   493
-  /* We didn't allocated memory, so we don't have to free anything :p */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   494
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   495
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   496
 /* A new fingerprint for the given user has been received. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   497
 static void cb_new_fingerprint(void *opdata, OtrlUserState us,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   498
                                const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   499
@@ -748,12 +910,92 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   500
                            HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   501
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   502
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   503
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   504
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   505
+/* Display a notification message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   506
+ * accountname / protocol / username conversation. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   507
+static void cb_notify(void *opdata, OtrlNotifyLevel level,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   508
+                      const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   509
+                      const char *username, const char *title,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   510
+                      const char *primary, const char *secondary)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   511
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   512
+  char *type;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   513
+  char *sbuf = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   514
+  switch (level) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   515
+    case OTRL_NOTIFY_ERROR:   type = "error";   break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   516
+    case OTRL_NOTIFY_WARNING: type = "warning"; break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   517
+    case OTRL_NOTIFY_INFO:    type = "info";    break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   518
+    default:                  type = "unknown";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   519
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   520
+  sbuf = g_strdup_printf("OTR %s:%s\n%s\n%s",type,title, primary, secondary);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   521
+  scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   522
+  g_free(sbuf);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   523
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   524
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   525
+/* Display an OTR control message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   526
+ * accountname / protocol / username conversation.  Return 0 if you are able
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   527
+ * to successfully display it.  If you return non-0 (or if this
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   528
+ * function is NULL), the control message will be displayed inline,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   529
+ * as a received message, or else by using the above notify()
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   530
+ * callback. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   531
+static int cb_display_otr_message(void *opdata, const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   532
+                                  const char *protocol, const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   533
+                                  const char *msg)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   534
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   535
+  char *strippedmsg = html_strip(msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   536
+  scr_WriteIncomingMessage(username, strippedmsg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   537
+  g_free(strippedmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   538
+  return 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   539
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   540
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   541
+/* Return a newly allocated string containing a human-friendly name
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   542
+ * for the given protocol id */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   543
+static const char *cb_protocol_name(void *opdata, const char *protocol)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   544
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   545
+  return protocol;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   546
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   547
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   548
+/* Deallocate a string allocated by protocol_name */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   549
+static void cb_protocol_name_free (void *opdata, const char *protocol_name)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   550
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   551
+  /* We didn't allocated memory, so we don't have to free anything :p */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   552
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   553
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   554
 /* Log a message.  The passed message will end in "\n". */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   555
 static void cb_log_message(void *opdata, const char *message)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   556
 {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   557
   scr_LogPrint(LPRINT_DEBUG, "OTR: %s", message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   558
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   559
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   560
+#else /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   561
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   562
+/* Generate unique instance tag for account. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   563
+static void cb_create_instag(void *opdata, const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   564
+                             const char *protocol)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   565
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   566
+  if (otrl_instag_generate(userstate, tagfile, accountname, protocol)) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   567
+    scr_LogPrint(LPRINT_LOGNORM, "OTR instance tag generation failed!");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   568
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   569
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   570
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   571
+static gboolean otr_timer_cb(gpointer userdata)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   572
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   573
+  otrl_message_poll(userstate, &ops, userdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   574
+  return TRUE;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   575
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   576
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   577
+static void cb_timer_control(void *opdata, unsigned int interval)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   578
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   579
+  if (otr_timer_source > 0) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   580
+    g_source_remove(otr_timer_source);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   581
+    otr_timer_source = 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   582
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   583
+  if (interval > 0)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   584
+    otr_timer_source = g_timeout_add_seconds(interval, otr_timer_cb, opdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   585
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   586
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   587
+#endif /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   588
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   589
 /* Find the maximum message size supported by this protocol. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   590
 static int cb_max_message_size(void *opdata, ConnContext *context)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   591
 {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   592
diff -r 1b31bdb72d83 mcabber/mcabber/otr.h
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   593
--- a/mcabber/mcabber/otr.h	Sun Jan 13 04:35:32 2013 +0200
62
f5249c9544e5 Fixes (eventcmd, otr4)
Myhailo Danylenko <isbear@ukrpost.net>
parents: 61
diff changeset
   594
+++ b/mcabber/mcabber/otr.h	Fri Jan 18 11:23:47 2013 +0200
61
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   595
@@ -5,6 +5,9 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   596
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   597
 #ifdef HAVE_LIBOTR
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   598
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   599
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   600
+# include <libotr/instag.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   601
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   602
 #include <libotr/proto.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   603
 #include <libotr/message.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   604
 #include <libotr/privkey.h>