mcabber/src/hooks.c
author Mikael Berthe <mikael@lilotux.net>
Sat, 27 Aug 2005 11:21:27 +0200
changeset 403 17aa60c6dc63
parent 393 f8f3c7493457
child 438 b44be19d6229
permissions -rw-r--r--
Allow a different server name than the jid domain name Sync libjabber with upstream (centericq). The libjabber patch is from Ian Johannesen. This allows connecting to Google Talk, for example.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     1
/*
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     2
 * hooks.c     -- Hooks layer
393
f8f3c7493457 Whitespace cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 391
diff changeset
     3
 *
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     4
 * Copyright (C) 2005 Mikael Berthe <bmikael@lists.lilotux.net>
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     5
 *
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     8
 * the Free Software Foundation; either version 2 of the License, or (at
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
     9
 * your option) any later version.
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    10
 *
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    11
 * This program is distributed in the hope that it will be useful, but
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    12
 * WITHOUT ANY WARRANTY; without even the implied warranty of
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    14
 * General Public License for more details.
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    15
 *
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    16
 * You should have received a copy of the GNU General Public License
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    17
 * along with this program; if not, write to the Free Software
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    19
 * USA
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    20
 */
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    21
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
    22
#include <sys/types.h>
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
    23
#include <unistd.h>
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    24
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    25
#include "hooks.h"
378
2e6c7b1440d1 Improve debugging/logging
Mikael Berthe <mikael@lilotux.net>
parents: 374
diff changeset
    26
#include "screen.h"
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    27
#include "roster.h"
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    28
#include "histolog.h"
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    29
#include "hbuf.h"
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    30
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    31
static char *extcmd;
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    32
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    33
inline void hk_message_in(const char *jid, time_t timestamp, const char *msg,
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    34
                          const char *type)
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    35
{
141
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    36
  int new_guy = FALSE;
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    37
  int message_flags;
141
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    38
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    39
  // If this user isn't in the roster, we add it
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    40
  if (!roster_exists(jid, jidsearch, ROSTER_TYPE_USER|ROSTER_TYPE_AGENT)) {
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    41
    roster_add_user(jid, NULL, NULL, ROSTER_TYPE_USER);
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    42
    new_guy = TRUE;
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    43
  }
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    44
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    45
  if (type && !strcmp(type, "error")) {
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    46
    message_flags = HBB_PREFIX_ERR | HBB_PREFIX_IN;
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
    47
    scr_LogPrint(LPRINT_LOGNORM, "Error message received from <%s>", jid);
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    48
  } else
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    49
    message_flags = 0;
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    50
178
cfefae4b6de9 [/trunk] Changeset 190 by mikael
mikael
parents: 160
diff changeset
    51
  // Note: the hlog_write should not be called first, because in some
cfefae4b6de9 [/trunk] Changeset 190 by mikael
mikael
parents: 160
diff changeset
    52
  // cases scr_WriteIncomingMessage() will load the history and we'd
cfefae4b6de9 [/trunk] Changeset 190 by mikael
mikael
parents: 160
diff changeset
    53
  // have the message twice...
325
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    54
  scr_WriteIncomingMessage(jid, msg, timestamp, message_flags);
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    55
  // We don't log the message if it is an error message
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    56
  if (!(message_flags & HBB_PREFIX_ERR))
ff6fb51bfd78 Handle "error" message type
Mikael Berthe <mikael@lilotux.net>
parents: 318
diff changeset
    57
    hlog_write_message(jid, timestamp, FALSE, msg);
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    58
  // External command
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
    59
  hk_ext_cmd(jid, 'M', 'R', NULL);
146
50f23c38743a [/trunk] Changeset 158 by mikael
mikael
parents: 141
diff changeset
    60
  // We need to rebuild the list if the sender is unknown or
50f23c38743a [/trunk] Changeset 158 by mikael
mikael
parents: 141
diff changeset
    61
  // if the sender is offline/invisible and hide_offline_buddies is set
50f23c38743a [/trunk] Changeset 158 by mikael
mikael
parents: 141
diff changeset
    62
  if (new_guy ||
50f23c38743a [/trunk] Changeset 158 by mikael
mikael
parents: 141
diff changeset
    63
     (roster_getstatus(jid) == offline && buddylist_get_hide_offline_buddies()))
50f23c38743a [/trunk] Changeset 158 by mikael
mikael
parents: 141
diff changeset
    64
  {
141
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    65
    buddylist_build();
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    66
    update_roster = TRUE;
6533a231a65e [/trunk] Changeset 153 by mikael
mikael
parents: 120
diff changeset
    67
  }
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    68
}
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    69
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    70
inline void hk_message_out(const char *jid, time_t timestamp, const char *msg)
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    71
{
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    72
  scr_WriteOutgoingMessage(jid, msg);
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    73
  hlog_write_message(jid, timestamp, TRUE, msg);
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    74
  // External command
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    75
  hk_ext_cmd(jid, 'M', 'S', NULL);
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    76
}
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    77
393
f8f3c7493457 Whitespace cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 391
diff changeset
    78
inline void hk_statuschange(const char *jid, time_t timestamp,
221
73f6ce668ba8 [/trunk] Changeset 233 by mikael
mikael
parents: 213
diff changeset
    79
        enum imstatus status, const char *status_msg)
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    80
{
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
    81
  scr_LogPrint(LPRINT_LOGNORM, "Buddy status has changed: [%c>%c] <%s> %s",
318
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
    82
          imstatus2char[roster_getstatus(jid)], imstatus2char[status], jid,
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
    83
          ((status_msg) ? status_msg : ""));
221
73f6ce668ba8 [/trunk] Changeset 233 by mikael
mikael
parents: 213
diff changeset
    84
  roster_setstatus(jid, status, status_msg);
120
cfd3df636d5f [/trunk] Changeset 133 by mikael
mikael
parents: 118
diff changeset
    85
  buddylist_build();
cfd3df636d5f [/trunk] Changeset 133 by mikael
mikael
parents: 118
diff changeset
    86
  scr_DrawRoster();
221
73f6ce668ba8 [/trunk] Changeset 233 by mikael
mikael
parents: 213
diff changeset
    87
  hlog_write_status(jid, 0, status, status_msg);
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    88
  // External command
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
    89
  hk_ext_cmd(jid, 'S', imstatus2char[status], NULL);
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    90
}
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents:
diff changeset
    91
116
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
    92
inline void hk_mystatuschange(time_t timestamp,
318
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
    93
        enum imstatus old_status, enum imstatus new_status, const char *msg)
116
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
    94
{
318
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
    95
  if (!msg && (old_status == new_status))
116
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
    96
    return;
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
    97
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
    98
  scr_LogPrint(LPRINT_LOGNORM, "Your status has changed:  [%c>%c] %s",
318
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
    99
          imstatus2char[old_status], imstatus2char[new_status],
45076d02eeef The /status command can specify a status message
Mikael Berthe <mikael@lilotux.net>
parents: 281
diff changeset
   100
          ((msg) ? msg : ""));
116
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
   101
  //hlog_write_status(NULL, 0, status);
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
   102
}
1e7e59775f12 [/trunk] Changeset 130 by mikael
mikael
parents: 115
diff changeset
   103
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   104
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   105
/* External commands */
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   106
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   107
//  hk_ext_cmd_init()
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   108
// Initialize external command variable.
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   109
// Can be called with parameter NULL to reset and free memory.
281
f562b9af2de7 Add "const" specifier in prototypes
Mikael Berthe <mikael@lilotux.net>
parents: 221
diff changeset
   110
void hk_ext_cmd_init(const char *command)
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   111
{
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   112
  if (extcmd) {
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   113
    g_free(extcmd);
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   114
    extcmd = NULL;
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   115
  }
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   116
  if (command)
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   117
    extcmd = g_strdup(command);
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   118
}
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   119
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   120
//  hk_ext_cmd()
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   121
// Launch an external command (process) for the given event.
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   122
// For now, data should be NULL.
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   123
void hk_ext_cmd(const char *jid, guchar type, guchar info, const char *data)
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   124
{
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   125
  pid_t pid;
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   126
  char *arg_type = NULL;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   127
  char *arg_info = NULL;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   128
  char *arg_data = NULL;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   129
  char status_str[2];
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   130
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   131
  if (!extcmd) return;
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   132
355
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   133
  // Prepare arg_* (external command parameters)
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   134
  switch (type) {
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   135
    case 'M':
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   136
        arg_type = "MSG";
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   137
        if (info == 'R')
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   138
          arg_info = "IN";
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   139
        else if (info == 'S')
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   140
          arg_info = "OUT";
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   141
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   142
        break;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   143
    case 'S':
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   144
        arg_type = "STATUS";
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   145
        if (strchr(imstatus2char, tolower(info))) {
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   146
          status_str[0] = toupper(info);
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   147
          status_str[1] = 0;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   148
          arg_info = status_str;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   149
        }
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   150
        break;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   151
    default:
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   152
        return;
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   153
  }
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   154
c5a7a7273986 Add some external actions
Mikael Berthe <mikael@lilotux.net>
parents: 325
diff changeset
   155
  if (!arg_type || !arg_info) return;
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   156
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   157
  if ((pid=fork()) == -1) {
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
   158
    scr_LogPrint(LPRINT_LOGNORM, "Fork error, cannot launch external command.");
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   159
    return;
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   160
  }
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   161
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   162
  if (pid == 0) { // child
391
868a350fefca Fix "missing sentinel in function call" warning with gcc4
Mikael Berthe <mikael@lilotux.net>
parents: 384
diff changeset
   163
    if (execl(extcmd, extcmd, arg_type, arg_info, jid, arg_data, NULL) == -1) {
374
bd5638c21834 Improve logging system (traces)
Mikael Berthe <mikael@lilotux.net>
parents: 364
diff changeset
   164
      // scr_LogPrint(LPRINT_LOGNORM, "Cannot execute external command.");
160
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   165
      exit(1);
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   166
    }
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   167
  }
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   168
}
44c6410b4845 [/trunk] Changeset 172 by mikael
mikael
parents: 146
diff changeset
   169