mirror of
https://github.com/weechat/weechat.git
synced 2026-07-10 03:33:12 +02:00
Added server_command_delay config option (delay in seconds after startup command)
This commit is contained in:
@@ -1607,7 +1607,7 @@ weechat_cmd_server (int argc, char **argv)
|
||||
server.address, server.port, server.password,
|
||||
server.nick1, server.nick2, server.nick3,
|
||||
server.username, server.realname,
|
||||
server.command, server.autojoin, 1);
|
||||
server.command, 1, server.autojoin, 1);
|
||||
if (new_server)
|
||||
{
|
||||
irc_display_prefix (NULL, PREFIX_INFO);
|
||||
|
||||
@@ -232,7 +232,7 @@ wee_parse_args (int argc, char *argv[])
|
||||
server_tmp.address, server_tmp.port,
|
||||
server_tmp.password, server_tmp.nick1,
|
||||
server_tmp.nick2, server_tmp.nick3,
|
||||
NULL, NULL, NULL, server_tmp.autojoin, 1))
|
||||
NULL, NULL, NULL, 0, server_tmp.autojoin, 1))
|
||||
fprintf (stderr, _("%s unable to create server ('%s'), ignored\n"),
|
||||
WEECHAT_WARNING, argv[i]);
|
||||
server_destroy (&server_tmp);
|
||||
|
||||
@@ -570,6 +570,10 @@ t_config_option weechat_options_server[] =
|
||||
N_("first command to run when connected to server"),
|
||||
OPTION_TYPE_STRING, 0, 0, 0,
|
||||
"", NULL, NULL, &(cfg_server.command), NULL },
|
||||
{ "server_command_delay", N_("delay (in seconds) after command was executed"),
|
||||
N_("delay (in seconds) after command was executed (example: give some time for authentication)"),
|
||||
OPTION_TYPE_INT, 0, 3600, 1,
|
||||
NULL, NULL, &(cfg_server.command_delay), NULL, NULL },
|
||||
{ "server_autojoin", N_("list of channels to join when connected to server"),
|
||||
N_("comma separated list of channels to join when connected to server"),
|
||||
OPTION_TYPE_STRING, 0, 0, 0,
|
||||
@@ -814,7 +818,8 @@ config_allocate_server (char *filename, int line_number)
|
||||
cfg_server.autoconnect, 0, cfg_server.address, cfg_server.port,
|
||||
cfg_server.password, cfg_server.nick1, cfg_server.nick2,
|
||||
cfg_server.nick3, cfg_server.username, cfg_server.realname,
|
||||
cfg_server.command, cfg_server.autojoin, cfg_server.autorejoin))
|
||||
cfg_server.command, cfg_server.command_delay, cfg_server.autojoin,
|
||||
cfg_server.autorejoin))
|
||||
{
|
||||
server_free_all ();
|
||||
gui_printf (NULL,
|
||||
@@ -1380,6 +1385,7 @@ config_write (char *config_name)
|
||||
fprintf (file, "server_realname=%s\n", ptr_server->realname);
|
||||
fprintf (file, "server_command=%s\n",
|
||||
(ptr_server->command) ? ptr_server->command : "");
|
||||
fprintf (file, "server_command_delay=%d\n", ptr_server->command_delay);
|
||||
fprintf (file, "server_autojoin=%s\n",
|
||||
(ptr_server->autojoin) ? ptr_server->autojoin : "");
|
||||
fprintf (file, "server_autorejoin=%s\n",
|
||||
|
||||
@@ -1500,7 +1500,11 @@ irc_cmd_recv_004 (t_irc_server *server, char *host, char *arguments)
|
||||
|
||||
/* execute command once connected */
|
||||
if (server->command && server->command[0])
|
||||
{
|
||||
user_command(server, server->command);
|
||||
if (server->command_delay > 0)
|
||||
sleep (server->command_delay);
|
||||
}
|
||||
|
||||
/* autojoin */
|
||||
if (server->autojoin && server->autojoin[0])
|
||||
|
||||
@@ -70,6 +70,7 @@ server_init (t_irc_server *server)
|
||||
server->username = NULL;
|
||||
server->realname = NULL;
|
||||
server->command = NULL;
|
||||
server->command_delay = 1;
|
||||
server->autojoin = NULL;
|
||||
server->nick = NULL;
|
||||
server->is_connected = 0;
|
||||
@@ -292,8 +293,8 @@ server_free_all ()
|
||||
t_irc_server *
|
||||
server_new (char *name, int autoconnect, int command_line, char *address,
|
||||
int port, char *password, char *nick1, char *nick2, char *nick3,
|
||||
char *username, char *realname, char *command, char *autojoin,
|
||||
int autorejoin)
|
||||
char *username, char *realname, char *command, int command_delay,
|
||||
char *autojoin, int autorejoin)
|
||||
{
|
||||
t_irc_server *new_server;
|
||||
|
||||
@@ -328,6 +329,7 @@ server_new (char *name, int autoconnect, int command_line, char *address,
|
||||
(realname) ? strdup (realname) : strdup ("realname");
|
||||
new_server->command =
|
||||
(command) ? strdup (command) : NULL;
|
||||
new_server->command_delay = command_delay;
|
||||
new_server->autojoin =
|
||||
(autojoin) ? strdup (autojoin) : NULL;
|
||||
new_server->autorejoin = autorejoin;
|
||||
|
||||
+3
-2
@@ -126,6 +126,7 @@ struct t_irc_server
|
||||
char *username; /* user name */
|
||||
char *realname; /* real name */
|
||||
char *command; /* command to run once connected */
|
||||
int command_delay; /* delay after execution of command */
|
||||
char *autojoin; /* channels to automatically join */
|
||||
int autorejoin; /* auto rejoin channels when kicked */
|
||||
|
||||
@@ -214,8 +215,8 @@ extern void server_destroy (t_irc_server *);
|
||||
extern void server_free (t_irc_server *);
|
||||
extern void server_free_all ();
|
||||
extern t_irc_server *server_new (char *, int, int, char *, int, char *, char *,
|
||||
char *, char *, char *, char *, char *, char *,
|
||||
int);
|
||||
char *, char *, char *, char *, char *, int,
|
||||
char *, int);
|
||||
extern int server_send (t_irc_server *, char *, int);
|
||||
extern void server_sendf (t_irc_server *, char *, ...);
|
||||
extern void server_recv (t_irc_server *);
|
||||
|
||||
@@ -1607,7 +1607,7 @@ weechat_cmd_server (int argc, char **argv)
|
||||
server.address, server.port, server.password,
|
||||
server.nick1, server.nick2, server.nick3,
|
||||
server.username, server.realname,
|
||||
server.command, server.autojoin, 1);
|
||||
server.command, 1, server.autojoin, 1);
|
||||
if (new_server)
|
||||
{
|
||||
irc_display_prefix (NULL, PREFIX_INFO);
|
||||
|
||||
@@ -232,7 +232,7 @@ wee_parse_args (int argc, char *argv[])
|
||||
server_tmp.address, server_tmp.port,
|
||||
server_tmp.password, server_tmp.nick1,
|
||||
server_tmp.nick2, server_tmp.nick3,
|
||||
NULL, NULL, NULL, server_tmp.autojoin, 1))
|
||||
NULL, NULL, NULL, 0, server_tmp.autojoin, 1))
|
||||
fprintf (stderr, _("%s unable to create server ('%s'), ignored\n"),
|
||||
WEECHAT_WARNING, argv[i]);
|
||||
server_destroy (&server_tmp);
|
||||
|
||||
@@ -570,6 +570,10 @@ t_config_option weechat_options_server[] =
|
||||
N_("first command to run when connected to server"),
|
||||
OPTION_TYPE_STRING, 0, 0, 0,
|
||||
"", NULL, NULL, &(cfg_server.command), NULL },
|
||||
{ "server_command_delay", N_("delay (in seconds) after command was executed"),
|
||||
N_("delay (in seconds) after command was executed (example: give some time for authentication)"),
|
||||
OPTION_TYPE_INT, 0, 3600, 1,
|
||||
NULL, NULL, &(cfg_server.command_delay), NULL, NULL },
|
||||
{ "server_autojoin", N_("list of channels to join when connected to server"),
|
||||
N_("comma separated list of channels to join when connected to server"),
|
||||
OPTION_TYPE_STRING, 0, 0, 0,
|
||||
@@ -814,7 +818,8 @@ config_allocate_server (char *filename, int line_number)
|
||||
cfg_server.autoconnect, 0, cfg_server.address, cfg_server.port,
|
||||
cfg_server.password, cfg_server.nick1, cfg_server.nick2,
|
||||
cfg_server.nick3, cfg_server.username, cfg_server.realname,
|
||||
cfg_server.command, cfg_server.autojoin, cfg_server.autorejoin))
|
||||
cfg_server.command, cfg_server.command_delay, cfg_server.autojoin,
|
||||
cfg_server.autorejoin))
|
||||
{
|
||||
server_free_all ();
|
||||
gui_printf (NULL,
|
||||
@@ -1380,6 +1385,7 @@ config_write (char *config_name)
|
||||
fprintf (file, "server_realname=%s\n", ptr_server->realname);
|
||||
fprintf (file, "server_command=%s\n",
|
||||
(ptr_server->command) ? ptr_server->command : "");
|
||||
fprintf (file, "server_command_delay=%d\n", ptr_server->command_delay);
|
||||
fprintf (file, "server_autojoin=%s\n",
|
||||
(ptr_server->autojoin) ? ptr_server->autojoin : "");
|
||||
fprintf (file, "server_autorejoin=%s\n",
|
||||
|
||||
@@ -1500,7 +1500,11 @@ irc_cmd_recv_004 (t_irc_server *server, char *host, char *arguments)
|
||||
|
||||
/* execute command once connected */
|
||||
if (server->command && server->command[0])
|
||||
{
|
||||
user_command(server, server->command);
|
||||
if (server->command_delay > 0)
|
||||
sleep (server->command_delay);
|
||||
}
|
||||
|
||||
/* autojoin */
|
||||
if (server->autojoin && server->autojoin[0])
|
||||
|
||||
@@ -70,6 +70,7 @@ server_init (t_irc_server *server)
|
||||
server->username = NULL;
|
||||
server->realname = NULL;
|
||||
server->command = NULL;
|
||||
server->command_delay = 1;
|
||||
server->autojoin = NULL;
|
||||
server->nick = NULL;
|
||||
server->is_connected = 0;
|
||||
@@ -292,8 +293,8 @@ server_free_all ()
|
||||
t_irc_server *
|
||||
server_new (char *name, int autoconnect, int command_line, char *address,
|
||||
int port, char *password, char *nick1, char *nick2, char *nick3,
|
||||
char *username, char *realname, char *command, char *autojoin,
|
||||
int autorejoin)
|
||||
char *username, char *realname, char *command, int command_delay,
|
||||
char *autojoin, int autorejoin)
|
||||
{
|
||||
t_irc_server *new_server;
|
||||
|
||||
@@ -328,6 +329,7 @@ server_new (char *name, int autoconnect, int command_line, char *address,
|
||||
(realname) ? strdup (realname) : strdup ("realname");
|
||||
new_server->command =
|
||||
(command) ? strdup (command) : NULL;
|
||||
new_server->command_delay = command_delay;
|
||||
new_server->autojoin =
|
||||
(autojoin) ? strdup (autojoin) : NULL;
|
||||
new_server->autorejoin = autorejoin;
|
||||
|
||||
@@ -126,6 +126,7 @@ struct t_irc_server
|
||||
char *username; /* user name */
|
||||
char *realname; /* real name */
|
||||
char *command; /* command to run once connected */
|
||||
int command_delay; /* delay after execution of command */
|
||||
char *autojoin; /* channels to automatically join */
|
||||
int autorejoin; /* auto rejoin channels when kicked */
|
||||
|
||||
@@ -214,8 +215,8 @@ extern void server_destroy (t_irc_server *);
|
||||
extern void server_free (t_irc_server *);
|
||||
extern void server_free_all ();
|
||||
extern t_irc_server *server_new (char *, int, int, char *, int, char *, char *,
|
||||
char *, char *, char *, char *, char *, char *,
|
||||
int);
|
||||
char *, char *, char *, char *, char *, int,
|
||||
char *, int);
|
||||
extern int server_send (t_irc_server *, char *, int);
|
||||
extern void server_sendf (t_irc_server *, char *, ...);
|
||||
extern void server_recv (t_irc_server *);
|
||||
|
||||
Reference in New Issue
Block a user