diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2009-09-17 07:26:17 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2009-09-17 07:26:17 +0000 |
commit | 71f191b2a609e291a3afcf726ab8aacab572637b (patch) | |
tree | fa744ee9944df82548c6afb33451455c4ce7c61a /libsylph/session.c | |
parent | 24c2edfeacce97b6e4c3783c53cbd2532088af95 (diff) |
introduced multi-threading.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2255 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/session.c')
-rw-r--r-- | libsylph/session.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libsylph/session.c b/libsylph/session.c index d64fc72d..0617e402 100644 --- a/libsylph/session.c +++ b/libsylph/session.c @@ -120,7 +120,8 @@ void session_init(Session *session) gint session_connect(Session *session, const gchar *server, gushort port) { #ifndef G_OS_UNIX - SockInfo *sock; + SockInfo *sock = NULL; + gint flag = 0; #endif g_return_val_if_fail(session != NULL, -1); g_return_val_if_fail(server != NULL, -1); @@ -143,8 +144,13 @@ gint session_connect(Session *session, const gchar *server, gushort port) return 0; #else - sock = sock_connect(server, port); - if (sock == NULL) { + session->conn_id = sock_connect_async(server, port); + if (session->conn_id < 0) { + g_warning("can't connect to server."); + session->state = SESSION_ERROR; + return -1; + } + if (sock_connect_async_wait(session->conn_id, &sock) < 0) { g_warning("can't connect to server."); session->state = SESSION_ERROR; return -1; |