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:
@@ -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",
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
@@ -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])
|
||||
{
|
||||
|
||||
@@ -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 ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user