X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FUserSession.c;h=e66d6e6ae93864c168bddb67f7b4bd440a2e01e1;hb=HEAD;hp=644332f416873916749342181a2238f18a25223a;hpb=2d411320c5f1fbfff3862f5fa8c1f1e6b7b6f9d0;p=TransparentIRC.git diff --git a/src/UserSession.c b/src/UserSession.c index 644332f..e66d6e6 100644 --- a/src/UserSession.c +++ b/src/UserSession.c @@ -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;