annotate mcabber/mcabber/carbons.c @ 2222:ce1043326bbc

Fix a small leak when a window is closed Also, fix a segfault when buffer close is called with a non-lowercase JID...
author Mikael Berthe <mikael@lilotux.net>
date Fri, 06 Nov 2015 20:33:31 +0100
parents 2ce6dd6861ea
children f5402d705f67
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
1 /*
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
2 * carbons.c -- Support for Message Carbons (XEP 0280)
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
3 *
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
4 * Copyright (C) 2013 Roeland Jago Douma <roeland@famdouma.nl>
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
5 *
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
6 * This program is free software; you can redistribute it and/or modify
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
7 * it under the terms of the GNU General Public License as published by
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or (at
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
9 * your option) any later version.
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
10 *
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
11 * This program is distributed in the hope that it will be useful, but
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
14 * General Public License for more details.
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
15 *
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
16 * You should have received a copy of the GNU General Public License
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
17 * along with this program; if not, write to the Free Software
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
19 * USA
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
20 */
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
21
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
22 #include "carbons.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
23 #include "settings.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
24 #include "xmpp_helper.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
25 #include "xmpp_defines.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
26 #include "logprint.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
27 #include "xmpp.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
28
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
29 static int _carbons_available = 0;
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
30 static int _carbons_enabled = 0;
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
31
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
32 static LmHandlerResult cb_carbons(LmMessageHandler *h, LmConnection *c,
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
33 LmMessage *m, gpointer user_data);
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
34
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
35
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
36 void carbons_available()
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
37 {
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
38 int enable = 0;
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
39 _carbons_available = 1;
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
40
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
41 enable = settings_opt_get_int("carbons");
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
42
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
43 if (enable) {
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
44 carbons_enable();
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
45 }
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
46 }
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
47
2152
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
48 gboolean carbons_enabled()
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
49 {
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
50 return (_carbons_enabled != 0);
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
51 }
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
52
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
53 void carbons_enable()
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
54 {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
55 LmMessage *iq;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
56 LmMessageNode *enable;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
57 LmMessageHandler *handler;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
58 GError *error = NULL;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
59
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
60 //We cannot enable carbons if there is no carbons support
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
61 if (_carbons_available == 0) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
62 scr_log_print(LPRINT_NORMAL, "Carbons not available on this server!");
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
63 return;
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
64 }
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
65
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
66 //We only have to enable carbons once
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
67 if (_carbons_enabled == 1) {
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
68 return;
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
69 }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
70
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
71 iq = lm_message_new_with_sub_type(NULL, LM_MESSAGE_TYPE_IQ,
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
72 LM_MESSAGE_SUB_TYPE_SET);
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
73
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
74 enable = lm_message_node_add_child(iq->node, "enable", NULL);
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
75 lm_message_node_set_attribute(enable, "xmlns", NS_CARBONS_2);
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
76 handler = lm_message_handler_new(cb_carbons, NULL, NULL);
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
77
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
78 if (!lm_connection_send_with_reply(lconnection, iq, handler, &error)) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
79 scr_log_print(LPRINT_DEBUG, "Error sending IQ request: %s.",
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
80 error->message);
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
81 g_error_free(error);
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
82 }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
83
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
84 lm_message_handler_unref(handler);
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
85 lm_message_unref(iq);
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
86 }
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
87
2118
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
88 // Mark carbons as disabled (e.g. when a connection terminates)
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
89 void carbons_reset()
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
90 {
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
91 _carbons_enabled = 0;
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
92 }
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
93
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
94 void carbons_disable()
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
95 {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
96 LmMessage *iq;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
97 LmMessageNode *disable;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
98 LmMessageHandler *handler;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
99 GError *error = NULL;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
100
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
101 //We cannot disable carbons if there is no carbon support on the server
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
102 if (_carbons_available == 0) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
103 scr_log_print(LPRINT_NORMAL, "Carbons not available on this server!");
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
104 return;
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
105 }
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
106
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
107 //We can only disable carbons if they are disabled
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
108 if (_carbons_enabled == 0) {
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
109 return;
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
110 }
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
111
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
112 iq = lm_message_new_with_sub_type(NULL, LM_MESSAGE_TYPE_IQ,
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
113 LM_MESSAGE_SUB_TYPE_SET);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
114
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
115 disable = lm_message_node_add_child(iq->node, "disable", NULL);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
116 lm_message_node_set_attribute(disable, "xmlns", NS_CARBONS_2);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
117 handler = lm_message_handler_new(cb_carbons, NULL, NULL);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
118
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
119 if (!lm_connection_send_with_reply(lconnection, iq, handler, &error)) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
120 scr_log_print(LPRINT_DEBUG, "Error sending IQ request: %s.",
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
121 error->message);
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
122 g_error_free(error);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
123 }
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
124
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
125 lm_message_handler_unref(handler);
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
126 lm_message_unref(iq);
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
127
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
128 }
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
129
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
130 void carbons_info()
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
131 {
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
132 if (_carbons_enabled) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
133 scr_log_print(LPRINT_NORMAL, "Carbons enabled.");
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
134 } else {
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
135 if (_carbons_available) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
136 scr_log_print(LPRINT_NORMAL, "Carbons available, but not enabled.");
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
137 } else {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
138 scr_log_print(LPRINT_NORMAL, "Carbons not available.");
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
139 }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
140 }
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
141 }
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
142
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
143 static LmHandlerResult cb_carbons(LmMessageHandler *h, LmConnection *c,
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
144 LmMessage *m, gpointer user_data)
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
145 {
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
146 if (lm_message_get_sub_type(m) == LM_MESSAGE_SUB_TYPE_RESULT) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
147 _carbons_enabled = (_carbons_enabled == 0 ? 1 : 0);
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
148 if (_carbons_enabled) {
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
149 scr_log_print(LPRINT_NORMAL, "Carbons enabled.");
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
150 } else {
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
151 scr_log_print(LPRINT_NORMAL, "Carbons disabled.");
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
152 }
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
153 } else {
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
154 //Handle error cases
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
155 }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
156
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
157 return LM_HANDLER_RESULT_REMOVE_MESSAGE;
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
158 }
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
159
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
160 /* vim: set et cindent cinoptions=>2\:2(0 ts=2 sw=2: For Vim users... */