aboutsummaryrefslogtreecommitdiff
path: root/libsylph/session.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2008-09-17 01:52:42 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2008-09-17 01:52:42 +0000
commit82849c6daf5e071c7511f8d8553bc42a099c70e5 (patch)
treec92b04f99f7d871fb4b957740bb933763a099ddc /libsylph/session.c
parent7b7ba149faae102d7b4621f8bb4d17f93d38b01b (diff)
implemented remote POP3 mailbox.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2031 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/session.c')
-rw-r--r--libsylph/session.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/libsylph/session.c b/libsylph/session.c
index 01962b11..762c00b1 100644
--- a/libsylph/session.c
+++ b/libsylph/session.c
@@ -119,10 +119,20 @@ void session_init(Session *session)
gint session_connect(Session *session, const gchar *server, gushort port)
{
-#ifdef G_OS_UNIX
- session->server = g_strdup(server);
+#ifndef G_OS_UNIX
+ SockInfo *sock;
+#endif
+ g_return_val_if_fail(session != NULL, -1);
+ g_return_val_if_fail(server != NULL, -1);
+ g_return_val_if_fail(port > 0, -1);
+
+ if (session->server && session->server != server) {
+ g_free(session->server);
+ session->server = g_strdup(server);
+ }
session->port = port;
+#ifdef G_OS_UNIX
session->conn_id = sock_connect_async(server, port, session_connect_cb,
session);
if (session->conn_id < 0) {
@@ -133,11 +143,6 @@ gint session_connect(Session *session, const gchar *server, gushort port)
return 0;
#else
- SockInfo *sock;
-
- session->server = g_strdup(server);
- session->port = port;
-
sock = sock_connect(server, port);
if (sock == NULL) {
g_warning("can't connect to server.");