mirror of
https://github.com/irssi/irssi.git
synced 2026-08-11 12:53:42 +02:00
/UPGRADE was broken, changed again the server connection code.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2821 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
09505d628c
commit
4aa0b9111e
11 changed files with 59 additions and 50 deletions
|
|
@ -91,8 +91,8 @@ void irc_core_init(void)
|
|||
rec->create_server_connect = create_server_connect;
|
||||
rec->destroy_server_connect = destroy_server_connect;
|
||||
|
||||
rec->server_connect = (SERVER_REC *(*) (SERVER_CONNECT_REC *))
|
||||
irc_server_connect;
|
||||
rec->server_init_connect = irc_server_init_connect;
|
||||
rec->server_connect = irc_server_connect;
|
||||
rec->channel_create =
|
||||
(CHANNEL_REC *(*) (SERVER_REC *, const char *,
|
||||
const char *, int))
|
||||
|
|
|
|||
|
|
@ -150,8 +150,9 @@ static void server_init(IRC_SERVER_REC *server)
|
|||
server->cmdcount = 0;
|
||||
}
|
||||
|
||||
IRC_SERVER_REC *irc_server_connect(IRC_SERVER_CONNECT_REC *conn)
|
||||
SERVER_REC *irc_server_init_connect(SERVER_CONNECT_REC *conn)
|
||||
{
|
||||
IRC_SERVER_CONNECT_REC *ircconn;
|
||||
IRC_SERVER_REC *server;
|
||||
|
||||
g_return_val_if_fail(IS_IRC_SERVER_CONNECT(conn), NULL);
|
||||
|
|
@ -161,34 +162,39 @@ IRC_SERVER_REC *irc_server_connect(IRC_SERVER_CONNECT_REC *conn)
|
|||
server = g_new0(IRC_SERVER_REC, 1);
|
||||
server->chat_type = IRC_PROTOCOL;
|
||||
|
||||
server->connrec = conn;
|
||||
server_connect_ref(SERVER_CONNECT(conn));
|
||||
ircconn = (IRC_SERVER_CONNECT_REC *) conn;
|
||||
server->connrec = ircconn;
|
||||
server_connect_ref(conn);
|
||||
|
||||
if (server->connrec->port <= 0)
|
||||
server->connrec->port = 6667;
|
||||
|
||||
server->cmd_queue_speed = conn->cmd_queue_speed > 0 ?
|
||||
conn->cmd_queue_speed : settings_get_int("cmd_queue_speed");
|
||||
server->max_cmds_at_once = conn->max_cmds_at_once > 0 ?
|
||||
conn->max_cmds_at_once : settings_get_int("cmds_max_at_once");
|
||||
server->max_query_chans = conn->max_query_chans > 0 ?
|
||||
conn->max_query_chans : DEFAULT_MAX_QUERY_CHANS;
|
||||
server->cmd_queue_speed = ircconn->cmd_queue_speed > 0 ?
|
||||
ircconn->cmd_queue_speed : settings_get_int("cmd_queue_speed");
|
||||
server->max_cmds_at_once = ircconn->max_cmds_at_once > 0 ?
|
||||
ircconn->max_cmds_at_once : settings_get_int("cmds_max_at_once");
|
||||
server->max_query_chans = ircconn->max_query_chans > 0 ?
|
||||
ircconn->max_query_chans : DEFAULT_MAX_QUERY_CHANS;
|
||||
|
||||
server->max_kicks_in_cmd = conn->max_kicks > 0 ?
|
||||
conn->max_kicks : DEFAULT_MAX_KICKS;
|
||||
server->max_modes_in_cmd = conn->max_modes > 0 ?
|
||||
conn->max_modes : DEFAULT_MAX_MODES;
|
||||
server->max_whois_in_cmd = conn->max_whois > 0 ?
|
||||
conn->max_whois : DEFAULT_MAX_WHOIS;
|
||||
server->max_msgs_in_cmd = conn->max_msgs > 0 ?
|
||||
conn->max_msgs : DEFAULT_MAX_MSGS;
|
||||
server->max_kicks_in_cmd = ircconn->max_kicks > 0 ?
|
||||
ircconn->max_kicks : DEFAULT_MAX_KICKS;
|
||||
server->max_modes_in_cmd = ircconn->max_modes > 0 ?
|
||||
ircconn->max_modes : DEFAULT_MAX_MODES;
|
||||
server->max_whois_in_cmd = ircconn->max_whois > 0 ?
|
||||
ircconn->max_whois : DEFAULT_MAX_WHOIS;
|
||||
server->max_msgs_in_cmd = ircconn->max_msgs > 0 ?
|
||||
ircconn->max_msgs : DEFAULT_MAX_MSGS;
|
||||
|
||||
if (!server_start_connect((SERVER_REC *) server)) {
|
||||
server_connect_unref(SERVER_CONNECT(conn));
|
||||
server_connect_init((SERVER_REC *) server);
|
||||
return (SERVER_REC *) server;
|
||||
}
|
||||
|
||||
void irc_server_connect(SERVER_REC *server)
|
||||
{
|
||||
if (!server_start_connect(server)) {
|
||||
server_connect_unref(server->connrec);
|
||||
g_free(server);
|
||||
return NULL;
|
||||
}
|
||||
return server;
|
||||
}
|
||||
|
||||
/* Returns TRUE if `command' is sent to `target' */
|
||||
|
|
|
|||
|
|
@ -97,7 +97,8 @@ struct _IRC_SERVER_REC {
|
|||
void *chanqueries;
|
||||
};
|
||||
|
||||
IRC_SERVER_REC *irc_server_connect(IRC_SERVER_CONNECT_REC *conn);
|
||||
SERVER_REC *irc_server_init_connect(SERVER_CONNECT_REC *conn);
|
||||
void irc_server_connect(SERVER_REC *server);
|
||||
|
||||
/* Purge server output, either all or for specified target */
|
||||
void irc_server_purge_output(IRC_SERVER_REC *server, const char *target);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue