1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 14:56:39 +02:00

Add boolean option to enable relay plugin to listen for clients (disabled by default)

This commit is contained in:
Sebastien Helleu
2009-01-28 12:14:03 +01:00
parent cf2e9ff95d
commit 84d78fed42
11 changed files with 150 additions and 8 deletions
+28
View File
@@ -27,6 +27,7 @@
#include "relay-config.h"
#include "relay-client.h"
#include "relay-buffer.h"
#include "relay-network.h"
struct t_config_file *relay_config_file = NULL;
@@ -44,6 +45,7 @@ struct t_config_option *relay_config_color_status[RELAY_NUM_STATUS];
/* relay config, network section */
struct t_config_option *relay_config_network_enabled;
struct t_config_option *relay_config_network_listen_port_range;
@@ -63,6 +65,26 @@ relay_config_refresh_cb (void *data, struct t_config_option *option)
relay_buffer_refresh (NULL);
}
/*
* relay_config_change_network_enabled_cb: callback called when user
* enables/disables relay
*/
void
relay_config_change_network_enabled_cb (void *data,
struct t_config_option *option)
{
/* make C compiler happy */
(void) data;
(void) option;
if ((weechat_config_boolean(relay_config_network_enabled) && relay_network_sock < 0)
|| (!weechat_config_boolean(relay_config_network_enabled) && relay_network_sock >= 0))
{
relay_network_init ();
}
}
/*
* relay_config_reload: reload relay configuration file
*/
@@ -179,6 +201,12 @@ relay_config_init ()
return 0;
}
relay_config_network_enabled = weechat_config_new_option (
relay_config_file, ptr_section,
"enabled", "boolean",
N_("enable relay"),
NULL, 0, 0, "off", NULL, 0, NULL, NULL,
&relay_config_change_network_enabled_cb, NULL, NULL, NULL);
relay_config_network_listen_port_range = weechat_config_new_option (
relay_config_file, ptr_section,
"listen_port_range", "string",
+1
View File
@@ -31,6 +31,7 @@ extern struct t_config_option *relay_config_color_text_bg;
extern struct t_config_option *relay_config_color_text_selected;
extern struct t_config_option *relay_config_color_status[];
extern struct t_config_option *relay_config_network_enabled;
extern struct t_config_option *relay_config_network_listen_port_range;
extern int relay_config_init ();
+6
View File
@@ -57,6 +57,9 @@ relay_network_close_socket ()
{
close (relay_network_sock);
relay_network_sock = -1;
weechat_printf (NULL,
_("%s: socket closed"),
RELAY_PLUGIN_NAME);
}
}
@@ -116,6 +119,9 @@ relay_network_init ()
relay_network_close_socket ();
if (!weechat_config_boolean (relay_config_network_enabled))
return 1;
port_range = weechat_config_string (relay_config_network_listen_port_range);
if (!port_range || !port_range[0])
{
+2
View File
@@ -20,6 +20,8 @@
#ifndef __WEECHAT_RELAY_NETWORK_H
#define __WEECHAT_RELAY_NETWORK_H 1
extern int relay_network_sock;
extern int relay_network_init ();
extern void relay_network_end ();