use-otr-v4.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Sun, 13 Jan 2013 06:42:35 +0200
changeset 61 9b4f7e14c19c
child 62 f5249c9544e5
permissions -rw-r--r--
Otr v4 support, build fix * added use-otr-v4.diff * added automake-fix-deprecated-macro.diff * updated add-cmake.diff for otr v4
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
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
+++ b/mcabber/configure.ac	Sun Jan 13 06:15:55 2013 +0200
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
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    51
+++ b/mcabber/mcabber/otr.c	Sun Jan 13 06:15:55 2013 +0200
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
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
@@ -145,6 +181,13 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
     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
   162
                  fprfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
   }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   165
+  tagfile = g_strdup_printf("%s%s.tag", root, account);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
+  if (otrl_instag_read(userstate, tagfile)) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   167
+    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
   168
+    cb_create_instag(NULL, account, OTR_PROTOCOL_NAME);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
+#endif
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
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
 void otr_terminate(void)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
@@ -154,6 +197,13 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
   if (!otr_is_enabled)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
     return;
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
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   179
+  if (otr_timer_source > 0) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
+    g_source_remove (otr_timer_source);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
+    otr_timer_source = 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
   for (ctx = userstate->context_root; ctx; ctx = ctx->next)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
     if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
       otr_message_disconnect(ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
@@ -175,6 +225,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
   userstate = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
   g_free(keyfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
   keyfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
+  g_free(fprfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
+  fprfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
+  g_free(tagfile);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
+  tagfile = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
 static char *otr_get_dir(void)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
@@ -206,7 +262,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
   mc_strtolower(lowcasebuddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
   ctx = otrl_context_find(userstate, lowcasebuddy, account, OTR_PROTOCOL_NAME,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
                           1, &null, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
+                          // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
+                          OTRL_INSTAG_BEST, 1, &null, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
   g_free(lowcasebuddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
   return ctx;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
@@ -216,7 +277,12 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
   if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
     cb_gone_insecure(NULL, ctx);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
   otrl_message_disconnect(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
                           ctx->protocol, ctx->username);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
+                          // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
+                          ctx->protocol, ctx->username, OTRL_INSTAG_BEST);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
 static void otr_startstop(const char *buddy, int start)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
@@ -283,6 +349,8 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
   cb_write_fingerprints(NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
 static void otr_handle_smp_tlvs(OtrlTLV *tlvs, ConnContext *ctx)
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
   OtrlTLV *tlv = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
@@ -354,6 +422,130 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
   }
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
+#else /* 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 cb_handle_smp_event(void *opdata, OtrlSMPEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
+                                ConnContext *context, unsigned short percent,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
+                                char *question)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
+  const char *msg = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
+  char *freeme = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
+  switch (event) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
+    case OTRL_SMPEVENT_ASK_FOR_SECRET:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
+      msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
+                                     "Received SMP Initiation.\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
+                                     "Answer with /otr smpr %s $secret",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
+                                     context->username);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
+    case OTRL_SMPEVENT_ASK_FOR_ANSWER:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
+      msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   257
+                                     "Received SMP Initiation.\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   258
+                                     "Answer with /otr smpr %s $secret\n"
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   259
+                                     "Question: %s", context->username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
+                                     question);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   261
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   262
+    case OTRL_SMPEVENT_CHEATED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
+      msg = "OTR: Socialist Millionaires' Protocol: Correspondent cancelled negotiation!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   264
+      otrl_message_abort_smp(userstate, &ops, opdata, context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   266
+    case OTRL_SMPEVENT_IN_PROGRESS:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
+      scr_log_print(LPRINT_DEBUG, "OTR: Socialist Millionaires' Protocol: "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
+                                  "Negotiation is in pogress...");
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
+    case OTRL_SMPEVENT_SUCCESS:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
+      msg = "OTR: Socialist Millionaires' Protocol: Success!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   273
+    case OTRL_SMPEVENT_FAILURE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
+      msg = "OTR: Socialist Millionaires' Protocol: Failure.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
+    case OTRL_SMPEVENT_ABORT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
+      msg = "OTR: Socialist Millionaires' Protocol: Aborted.";
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_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   280
+      msg = "OTR: Socialist Millionaires' Protocol: Error occured, aborting negotiations!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   281
+      otrl_message_abort_smp(userstate, &ops, opdata, context);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   282
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   283
+    default:
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
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   286
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   287
+  if (msg) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   288
+    scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   289
+    g_free(freeme);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   290
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   291
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   292
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   293
+static void cb_handle_msg_event(void *opdata, OtrlMessageEvent event,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   294
+                                ConnContext *context, const char *message,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   295
+                                gcry_error_t err)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   296
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   297
+  const char *msg = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   298
+  char *freeme = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   299
+  switch (event) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   300
+    case OTRL_MSGEVENT_ENCRYPTION_REQUIRED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   301
+      msg = "OTR: Policy requires encryption on message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   302
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   303
+    case OTRL_MSGEVENT_ENCRYPTION_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   304
+      msg = "OTR: Encryption error! Message not sent.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   305
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   306
+    case OTRL_MSGEVENT_CONNECTION_ENDED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   307
+      msg = "OTR: Connection closed by remote end, message lost. "
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   308
+            "Close or refresh connection.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   309
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   310
+    case OTRL_MSGEVENT_SETUP_ERROR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   311
+      // FIXME
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   312
+      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
   313
+                                     err);
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_MSG_REFLECTED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   316
+      msg = "OTR: Received own OTR message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   317
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   318
+    case OTRL_MSGEVENT_MSG_RESENT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   319
+      msg = "OTR: Previous message was resent.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   320
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   321
+    case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   322
+      msg = "OTR: Received encrypted message, but connection is not established " \
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   323
+            "yet! Message lost.";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   324
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   325
+    case OTRL_MSGEVENT_RCVDMSG_UNREADABLE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   326
+      msg = "OTR: Unable to read incoming message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   327
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   328
+    case OTRL_MSGEVENT_RCVDMSG_MALFORMED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   329
+      msg = "OTR: Malformed incoming message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   330
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   331
+    case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   332
+      scr_log_print(LPRINT_DEBUG, "OTR: Received heartbeat.");
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_LOG_HEARTBEAT_SENT:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   335
+      scr_log_print(LPRINT_DEBUG, "OTR: Sent heartbeat.");
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_GENERAL_ERR:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   338
+      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
   339
+                                     message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   340
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   341
+    case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   342
+      msg = freeme = g_strdup_printf("OTR: Received unencrypted message: %s",
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   343
+                                     message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   344
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   345
+    case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   346
+      msg = "OTR: Unable to determine type of received OTR message!";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   347
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   348
+    case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE:
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   349
+      // XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   350
+      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
   351
+      break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   352
+    default:
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
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   355
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   356
+  if (msg) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   357
+    scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   358
+    g_free(freeme);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   359
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   360
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   361
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   362
+#endif /* HAVE_LIBOTR3 */
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
  * returns whether a otr_message was received
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   366
  * 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
   367
@@ -362,8 +554,10 @@
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
   int ignore_message;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   370
   char *newmessage = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   371
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   372
   OtrlTLV *tlvs = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   373
   OtrlTLV *tlv = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   374
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   375
   ConnContext *ctx;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   376
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   377
   ctx = otr_get_context(buddy);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   378
@@ -371,8 +565,8 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   379
   ignore_message = otrl_message_receiving(userstate, &ops, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   380
                                           ctx->accountname, ctx->protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   381
                                           ctx->username, *otr_data,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   382
-                                          &newmessage, &tlvs,NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   383
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   384
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   385
+                                          &newmessage, &tlvs, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   386
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   387
   tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   388
   if (tlv) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   389
@@ -387,6 +581,9 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   390
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   391
   if (tlvs != NULL)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   392
     otrl_tlv_free(tlvs);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   393
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   394
+                                          &newmessage, NULL, NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   395
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   396
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   397
   if (ignore_message)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   398
     *otr_data = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   399
@@ -410,13 +607,27 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   400
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   401
   if (ctx->msgstate == OTRL_MSGSTATE_PLAINTEXT)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   402
     err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   403
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   404
                                ctx->protocol, ctx->username, *msg, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   405
                                &newmessage, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   406
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   407
+                               // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   408
+                               ctx->protocol, ctx->username, OTRL_INSTAG_BEST,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   409
+                               *msg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   410
+                               NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   411
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   412
   else {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   413
     htmlmsg = html_escape(*msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   414
     err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   415
+#ifdef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   416
                                ctx->protocol, ctx->username, htmlmsg, NULL,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   417
                                &newmessage, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   418
+#else
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   419
+                               // INSTAG XXX
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   420
+                               ctx->protocol, ctx->username, OTRL_INSTAG_BEST,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   421
+                               htmlmsg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   422
+                               NULL, NULL, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   423
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   424
     g_free(htmlmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   425
   }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   426
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   427
@@ -648,42 +859,6 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   428
                   LM_MESSAGE_SUB_TYPE_NOT_SET, NULL);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   429
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   430
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   431
-/* Display a notification message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   432
- * accountname / protocol / username conversation. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   433
-static void cb_notify(void *opdata, OtrlNotifyLevel level,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   434
-                      const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   435
-                      const char *username, const char *title,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   436
-                      const char *primary, const char *secondary)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   437
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   438
-  char *type;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   439
-  char *sbuf = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   440
-  switch (level) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   441
-    case OTRL_NOTIFY_ERROR:   type = "error";   break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   442
-    case OTRL_NOTIFY_WARNING: type = "warning"; break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   443
-    case OTRL_NOTIFY_INFO:    type = "info";    break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   444
-    default:                  type = "unknown";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   445
-  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   446
-  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
   447
-  scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   448
-  g_free(sbuf);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   449
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   450
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   451
-/* Display an OTR control message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   452
- * accountname / protocol / username conversation.  Return 0 if you are able
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   453
- * 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
   454
- * function is NULL), the control message will be displayed inline,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   455
- * 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
   456
- * callback. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   457
-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
   458
-                                  const char *protocol, const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   459
-                                  const char *msg)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   460
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   461
-  char *strippedmsg = html_strip(msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   462
-  scr_WriteIncomingMessage(username, strippedmsg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   463
-  g_free(strippedmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   464
-  return 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   465
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   466
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   467
 /* When the list of ConnContexts changes (including a change in
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   468
  * state), this is called so the UI can be updated. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   469
 static void cb_update_context_list(void *opdata)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   470
@@ -692,19 +867,6 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   471
    * then use this function (?!)*/
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   472
 }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   473
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   474
-/* Return a newly allocated string containing a human-friendly name
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   475
- * for the given protocol id */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   476
-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
   477
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   478
-  return protocol;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   479
-}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   480
-
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   481
-/* Deallocate a string allocated by protocol_name */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   482
-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
   483
-{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   484
-  /* 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
   485
-}
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
 /* A new fingerprint for the given user has been received. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   488
 static void cb_new_fingerprint(void *opdata, OtrlUserState us,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   489
                                const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   490
@@ -748,12 +910,92 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   491
                            HBB_PREFIX_INFO, 0);
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
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   494
+#ifdef HAVE_LIBOTR3
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
+/* Display a notification message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   497
+ * accountname / protocol / username conversation. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   498
+static void cb_notify(void *opdata, OtrlNotifyLevel level,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   499
+                      const char *accountname, const char *protocol,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   500
+                      const char *username, const char *title,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   501
+                      const char *primary, const char *secondary)
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
+  char *type;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   504
+  char *sbuf = NULL;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   505
+  switch (level) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   506
+    case OTRL_NOTIFY_ERROR:   type = "error";   break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   507
+    case OTRL_NOTIFY_WARNING: type = "warning"; break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   508
+    case OTRL_NOTIFY_INFO:    type = "info";    break;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   509
+    default:                  type = "unknown";
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   510
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   511
+  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
   512
+  scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   513
+  g_free(sbuf);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   514
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   515
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   516
+/* Display an OTR control message for a particular
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   517
+ * accountname / protocol / username conversation.  Return 0 if you are able
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   518
+ * 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
   519
+ * function is NULL), the control message will be displayed inline,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   520
+ * 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
   521
+ * callback. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   522
+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
   523
+                                  const char *protocol, const char *username,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   524
+                                  const char *msg)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   525
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   526
+  char *strippedmsg = html_strip(msg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   527
+  scr_WriteIncomingMessage(username, strippedmsg, 0, HBB_PREFIX_INFO, 0);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   528
+  g_free(strippedmsg);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   529
+  return 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   530
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   531
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   532
+/* Return a newly allocated string containing a human-friendly name
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   533
+ * for the given protocol id */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   534
+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
   535
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   536
+  return protocol;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   537
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   538
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   539
+/* Deallocate a string allocated by protocol_name */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   540
+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
   541
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   542
+  /* 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
   543
+}
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
 /* Log a message.  The passed message will end in "\n". */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   546
 static void cb_log_message(void *opdata, const char *message)
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
   scr_LogPrint(LPRINT_DEBUG, "OTR: %s", message);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   549
 }
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
+#else /* HAVE_LIBOTR3 */
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
+/* Generate unique instance tag for account. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   554
+static void cb_create_instag(void *opdata, const char *accountname,
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   555
+                             const char *protocol)
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
+  if (otrl_instag_generate(userstate, tagfile, accountname, protocol)) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   558
+    scr_LogPrint(LPRINT_LOGNORM, "OTR instance tag generation failed!");
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
+}
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
+static gboolean otr_timer_cb(gpointer userdata)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   563
+{
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   564
+  otrl_message_poll(userstate, &ops, userdata);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   565
+  return TRUE;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   566
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   567
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   568
+static void cb_timer_control(void *opdata, unsigned int interval)
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
+  if (otr_timer_source > 0) {
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   571
+    g_source_remove(otr_timer_source);
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   572
+    otr_timer_source = 0;
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   573
+  }
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   574
+  if (interval > 0)
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   575
+    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
   576
+}
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   577
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   578
+#endif /* HAVE_LIBOTR3 */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   579
+
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   580
 /* Find the maximum message size supported by this protocol. */
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   581
 static int cb_max_message_size(void *opdata, ConnContext *context)
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
diff -r 1b31bdb72d83 mcabber/mcabber/otr.h
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   584
--- a/mcabber/mcabber/otr.h	Sun Jan 13 04:35:32 2013 +0200
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   585
+++ b/mcabber/mcabber/otr.h	Sun Jan 13 06:15:55 2013 +0200
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   586
@@ -5,6 +5,9 @@
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   587
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   588
 #ifdef HAVE_LIBOTR
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   589
 
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   590
+#ifndef HAVE_LIBOTR3
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   591
+# include <libotr/instag.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   592
+#endif
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   593
 #include <libotr/proto.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   594
 #include <libotr/message.h>
9b4f7e14c19c Otr v4 support, build fix
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   595
 #include <libotr/privkey.h>