added SSL backend for IOMultiplexer
[TransparentIRC.git] / src / UserSession.c
index 644332f416873916749342181a2238f18a25223a..e66d6e6ae93864c168bddb67f7b4bd440a2e01e1 100644 (file)
@@ -41,8 +41,10 @@ static struct UserSession *usersession_add(char *username, char *password, char
 }
 
 static void usersession_close(struct UserSession *session) {
-    if(session->client)
+    if(session->client) {
+        session->client->user = NULL;
         userclient_close(session->client);
+    }
     if(session->irc)
         ircclient_close(session->irc);
     if(session->timer)
@@ -142,14 +144,16 @@ void usersession_login(struct UserLogin *login) {
             userclient_login_failed(login, "Login Script error.");
             return;
         }
-        struct IODescriptor *iofd = iohandler_add(fp, IOTYPE_CLIENT, usersession_login_callback);
+        struct IODescriptor *iofd = iohandler_add(fp, IOTYPE_CLIENT, NULL, usersession_login_callback);
         if(iofd) {
             iofd->read_lines = 1;
             iofd->state = IO_CONNECTED;
             int timeout = get_int_field("auth.external.timeout");
             if(timeout) {
-                gettimeofday(&iofd->timeout, NULL);
-                iofd->timeout.tv_sec += timeout;
+                struct timeval tv_timeout;
+                gettimeofday(&tv_timeout, NULL);
+                tv_timeout.tv_sec += timeout;
+                iohandler_set_timeout(iofd, &tv_timeout);
             }
             iofd->data = login;
             login->login_iofd = iofd;