mcabber/mcabber/carbons.c
author Mikael Berthe <mikael@lilotux.net>
Sun, 05 Jun 2016 20:06:46 +0200
changeset 2268 f5402d705f67
parent 2152 2ce6dd6861ea
permissions -rw-r--r--
Fix FSF addresses in all files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
2268
f5402d705f67 Fix FSF addresses in all files
Mikael Berthe <mikael@lilotux.net>
parents: 2152
diff changeset
    17
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    18
 */
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    19
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    20
#include "carbons.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    21
#include "settings.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    22
#include "xmpp_helper.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    23
#include "xmpp_defines.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    24
#include "logprint.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    25
#include "xmpp.h"
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    26
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    27
static int _carbons_available = 0;
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    28
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
    29
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    30
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
    31
                                  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
    32
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    33
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    34
void carbons_available()
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
  int enable = 0;
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    37
  _carbons_available = 1;
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    38
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    39
  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
    40
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    41
  if (enable) {
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    42
    carbons_enable();
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    43
  }
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    44
}
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    45
2152
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
    46
gboolean carbons_enabled()
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
    47
{
2ce6dd6861ea Use the Carbons <private/> element for outgoing encrypted messages
Mikael Berthe <mikael@lilotux.net>
parents: 2118
diff changeset
    48
  return (_carbons_enabled != 0);
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
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    51
void carbons_enable()
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    52
{
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    53
  LmMessage *iq;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    54
  LmMessageNode *enable;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    55
  LmMessageHandler *handler;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    56
  GError *error = NULL;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    57
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    58
  //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
    59
  if (_carbons_available == 0) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    60
    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
    61
    return;
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    62
  }
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    63
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    64
  //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
    65
  if (_carbons_enabled == 1) {
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    66
    return;
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    67
  }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    68
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    69
  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
    70
                                    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
    71
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    72
  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
    73
  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
    74
  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
    75
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    76
  if (!lm_connection_send_with_reply(lconnection, iq, handler, &error)) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    77
    scr_log_print(LPRINT_DEBUG, "Error sending IQ request: %s.",
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    78
                  error->message);
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    79
    g_error_free(error);
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    80
  }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
    81
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    82
  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
    83
  lm_message_unref(iq);
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    84
}
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    85
2118
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
    86
// 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
    87
void carbons_reset()
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
    88
{
51fde9c25401 Reset carbons when the connection is closed
Mikael Berthe <mikael@lilotux.net>
parents: 2111
diff changeset
    89
  _carbons_enabled = 0;
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
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    92
void carbons_disable()
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
    93
{
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    94
  LmMessage *iq;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    95
  LmMessageNode *disable;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    96
  LmMessageHandler *handler;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    97
  GError *error = NULL;
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
    98
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
    99
  //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
   100
  if (_carbons_available == 0) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   101
    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
   102
    return;
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   103
  }
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   104
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   105
  //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
   106
  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
   107
    return;
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   108
  }
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   109
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   110
  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
   111
                                    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
   112
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   113
  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
   114
  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
   115
  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
   116
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   117
  if (!lm_connection_send_with_reply(lconnection, iq, handler, &error)) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   118
    scr_log_print(LPRINT_DEBUG, "Error sending IQ request: %s.",
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   119
                  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
   120
    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
   121
  }
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   122
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   123
  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
   124
  lm_message_unref(iq);
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   125
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   126
}
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
   127
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   128
void carbons_info()
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   129
{
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   130
  if (_carbons_enabled) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   131
    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
   132
  } else {
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   133
    if (_carbons_available) {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   134
      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
   135
    } else {
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   136
      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
   137
    }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   138
  }
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
   139
}
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
   140
2108
adfd962e1343 Allow the user to enable/disable carbons from the command line
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2106
diff changeset
   141
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
   142
                                  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
   143
{
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   144
  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
   145
    _carbons_enabled = (_carbons_enabled == 0 ? 1 : 0);
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   146
    if (_carbons_enabled) {
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   147
      scr_log_print(LPRINT_NORMAL, "Carbons enabled.");
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   148
    } else {
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   149
      scr_log_print(LPRINT_NORMAL, "Carbons disabled.");
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   150
    }
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   151
  } else {
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   152
    //Handle error cases
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   153
  }
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   154
2104
c7e9950fa741 Added option to enable carbons (set carbons = 1 in mcabberrc)
Roeland Jago Douma <roeland@famdouma.nl>
parents:
diff changeset
   155
  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
   156
}
2106
72876dcf9094 Bit more checks for enabling carbons
Roeland Jago Douma <roeland@famdouma.nl>
parents: 2105
diff changeset
   157
2111
9023a6f2bf6c Misc. style updates
Mikael Berthe <mikael@lilotux.net>
parents: 2110
diff changeset
   158
/* vim: set et cindent cinoptions=>2\:2(0 ts=2 sw=2:  For Vim users... */