summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2010-09-12 10:42:29 +0200
committerSebastien Helleu <flashcode@flashtux.org>2010-09-12 10:42:29 +0200
commit5d0ad1f6314e8e24b09fcc8881a1cf65e8fa0468 (patch)
tree6f19ce8239767ef5747361af3c2d4d20c64c94f9 /src/plugins
parentedb839732ebcd608f1b3a368b03e8b28528dc139 (diff)
downloadweechat-5d0ad1f6314e8e24b09fcc8881a1cf65e8fa0468.zip
Do not send WHO on channel joined (to check away nicks) if option irc.network.away_check is set to 0
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/irc/irc-channel.c8
-rw-r--r--src/plugins/irc/irc-channel.h2
-rw-r--r--src/plugins/irc/irc-protocol.c2
-rw-r--r--src/plugins/irc/irc-server.c3
-rw-r--r--src/plugins/irc/irc-server.h1
5 files changed, 8 insertions, 8 deletions
diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c
index f9813e84c..8b03cb291 100644
--- a/src/plugins/irc/irc-channel.c
+++ b/src/plugins/irc/irc-channel.c
@@ -364,13 +364,13 @@ irc_channel_remove_away (struct t_irc_server *server,
void
irc_channel_check_away (struct t_irc_server *server,
- struct t_irc_channel *channel, int force)
+ struct t_irc_channel *channel)
{
if (channel->type == IRC_CHANNEL_TYPE_CHANNEL)
{
- if (force
- || (weechat_config_integer (irc_config_network_away_check_max_nicks) == 0)
- || (channel->nicks_count <= weechat_config_integer (irc_config_network_away_check_max_nicks)))
+ if ((weechat_config_integer (irc_config_network_away_check) > 0)
+ && ((weechat_config_integer (irc_config_network_away_check_max_nicks) == 0)
+ || (channel->nicks_count <= weechat_config_integer (irc_config_network_away_check_max_nicks))))
{
channel->checking_away++;
irc_server_sendf (server, IRC_SERVER_OUTQUEUE_PRIO_LOW,
diff --git a/src/plugins/irc/irc-channel.h b/src/plugins/irc/irc-channel.h
index 3558f7717..d3a073b1e 100644
--- a/src/plugins/irc/irc-channel.h
+++ b/src/plugins/irc/irc-channel.h
@@ -90,7 +90,7 @@ extern int irc_channel_is_channel (const char *string);
extern void irc_channel_remove_away (struct t_irc_server *server,
struct t_irc_channel *channel);
extern void irc_channel_check_away (struct t_irc_server *server,
- struct t_irc_channel *channel, int force);
+ struct t_irc_channel *channel);
extern void irc_channel_set_away (struct t_irc_server *server,
struct t_irc_channel *channel,
const char *nick_name,
diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c
index f6a4fe28a..c13152912 100644
--- a/src/plugins/irc/irc-protocol.c
+++ b/src/plugins/irc/irc-protocol.c
@@ -3669,7 +3669,7 @@ IRC_PROTOCOL_CALLBACK(366)
IRC_COLOR_CHAT_DELIMITERS);
irc_command_mode_server (server, ptr_channel, NULL);
- irc_channel_check_away (server, ptr_channel, 1);
+ irc_channel_check_away (server, ptr_channel);
}
else
{
diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
index 9c6322b31..e449cb807 100644
--- a/src/plugins/irc/irc-server.c
+++ b/src/plugins/irc/irc-server.c
@@ -81,7 +81,6 @@ char *irc_server_option_default[IRC_SERVER_NUM_OPTIONS] =
void irc_server_reconnect (struct t_irc_server *server);
-void irc_server_check_away ();
void irc_server_free_data (struct t_irc_server *server);
@@ -3383,7 +3382,7 @@ irc_server_check_away ()
for (ptr_channel = ptr_server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel)
{
if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL)
- irc_channel_check_away (ptr_server, ptr_channel, 0);
+ irc_channel_check_away (ptr_server, ptr_channel);
}
}
}
diff --git a/src/plugins/irc/irc-server.h b/src/plugins/irc/irc-server.h
index 02e6a8134..4b2d9108d 100644
--- a/src/plugins/irc/irc-server.h
+++ b/src/plugins/irc/irc-server.h
@@ -223,6 +223,7 @@ extern int irc_server_get_pv_count (struct t_irc_server *server);
extern void irc_server_set_away (struct t_irc_server *server, const char *nick,
int is_away);
extern void irc_server_remove_away ();
+extern void irc_server_check_away ();
extern void irc_server_disconnect (struct t_irc_server *server, int reconnect);
extern void irc_server_disconnect_all ();
extern void irc_server_free (struct t_irc_server *server);