author | Myhailo Danylenko <isbear@ukrpost.net> |
Sun, 24 Mar 2013 00:59:26 +0200 | |
changeset 84 | 6ff846816073 |
parent 62 | f5249c9544e5 |
permissions | -rw-r--r-- |
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> |