1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-04 16:53:14 +02:00

Added command & autojoin channels when connected to server

This commit is contained in:
Sebastien Helleu
2003-10-04 10:47:11 +00:00
parent ede76f7b44
commit 2968e61d97
12 changed files with 222 additions and 44 deletions
+9
View File
@@ -2104,6 +2104,15 @@ irc_cmd_recv_004 (t_irc_server *server, char *host, char *arguments)
server->is_connected = 1;
gui_redraw_window_status (server->window);
gui_redraw_window_input (server->window);
/* execute command once connected */
if (server->command && server->command[0])
user_command(server, server->command);
/* autojoin */
if (server->autojoin && server->autojoin[0])
return irc_cmd_send_join (server, server->autojoin);
return 0;
}
+15 -3
View File
@@ -66,6 +66,8 @@ server_init (t_irc_server *server)
server->nick3 = NULL;
server->username = NULL;
server->realname = NULL;
server->command = NULL;
server->autojoin = NULL;
server->nick = NULL;
server->is_connected = 0;
server->sock4 = -1;
@@ -137,6 +139,10 @@ server_destroy (t_irc_server *server)
free (server->username);
if (server->realname)
free (server->realname);
if (server->command)
free (server->command);
if (server->autojoin)
free (server->autojoin);
if (server->nick)
free (server->nick);
if (server->channels)
@@ -153,6 +159,8 @@ server_free (t_irc_server *server)
t_irc_server *new_irc_servers;
/* remove server from queue */
if (last_irc_server == server)
last_irc_server = server->prev_server;
if (server->prev_server)
{
(server->prev_server)->next_server = server->next_server;
@@ -190,7 +198,7 @@ server_free_all ()
t_irc_server *
server_new (char *name, int autoconnect, char *address, int port,
char *password, char *nick1, char *nick2, char *nick3,
char *username, char *realname)
char *username, char *realname, char *command, char *autojoin)
{
t_irc_server *new_server;
@@ -199,10 +207,12 @@ server_new (char *name, int autoconnect, char *address, int port,
#if DEBUG >= 1
log_printf ("creating new server (name:%s, address:%s, port:%d, pwd:%s, "
"nick1:%s, nick2:%s, nick3:%s, username:%s, realname:%s)\n",
"nick1:%s, nick2:%s, nick3:%s, username:%s, realname:%s, "
"command:%s, autojoin:%s)\n",
name, address, port, (password) ? password : "",
(nick1) ? nick1 : "", (nick2) ? nick2 : "", (nick3) ? nick3 : "",
(username) ? username : "", (realname) ? realname : "");
(username) ? username : "", (realname) ? realname : "",
(command) ? command : "", (autojoin) ? autojoin : "");
#endif
if ((new_server = server_alloc ()))
@@ -219,6 +229,8 @@ server_new (char *name, int autoconnect, char *address, int port,
(username) ? strdup (username) : strdup ("weechat");
new_server->realname =
(realname) ? strdup (realname) : strdup ("realname");
new_server->command = command;
new_server->autojoin = autojoin;
new_server->nick = strdup (new_server->nick1);
}
else
+3 -1
View File
@@ -87,6 +87,8 @@ struct t_irc_server
char *nick3; /* 2nd alternate nickname */
char *username; /* user name */
char *realname; /* real name */
char *command; /* command to run once connected */
char *autojoin; /* channels to automatically join */
/* internal vars */
char *nick; /* current nickname */
@@ -144,7 +146,7 @@ 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, char *, int, char *, char *,
char *, char *, char *, char *);
char *, char *, char *, char *, char *, char *);
extern int server_send (t_irc_server *, char *, int);
extern int server_sendf (t_irc_server *, char *, ...);
extern void server_recv (t_irc_server *);