summaryrefslogtreecommitdiff
path: root/src/core/servers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/servers.c')
-rw-r--r--src/core/servers.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/core/servers.c b/src/core/servers.c
index e16d323c..4828750b 100644
--- a/src/core/servers.c
+++ b/src/core/servers.c
@@ -264,6 +264,18 @@ static void server_connect_callback_readpipe(SERVER_REC *server)
g_free(iprec.errorstr);
}
+SERVER_REC *server_connect(SERVER_CONNECT_REC *conn)
+{
+ CHAT_PROTOCOL_REC *proto;
+ SERVER_REC *server;
+
+ proto = CHAT_PROTOCOL(conn);
+ server = proto->server_init_connect(conn);
+ proto->server_connect(server);
+
+ return server;
+}
+
/* initializes server record but doesn't start connecting */
void server_connect_init(SERVER_REC *server)
{
@@ -305,16 +317,8 @@ int server_start_connect(SERVER_REC *server)
if (!server->connrec->unix_socket && server->connrec->port <= 0)
return FALSE;
- server_connect_init(server);
server->rawlog = rawlog_create();
- if (server->connrec->session_reconnect) {
- /* /UPGRADE connection - the session_connect is meant
- for us only once, move it into server->session_connect */
- server->connrec->session_reconnect = FALSE;
- server->session_reconnect = TRUE;
- }
-
if (server->connrec->connect_handle != NULL) {
/* already connected */
GIOChannel *handle = server->connrec->connect_handle;