Hello sqwebmail gurus!!
We have succesfully compiled and installed sqwebmail 3.3.7 with a soft
timeout of 2 hours. But sometimes, in some conditions which are very
difficult to reproduce, the session after some minutes expires. We found
that bug in version 3.1.0 too.
We have been comparing both versions of sqwebmail.c and the code in the
main2 procedure hasn't change.
The code checks a lot of conditions:
/* Ok, boys and girls, time to validate the connection as
** follows */
if ( !sqwebmail_sessiontoken
/* 1. Read IPFILE. Check that it's timestamp is current
enough,
** and the session hasn't timed out.
*/
|| !(p=read_sqconfig(".", IPFILE, &last_time))
/* || last_time > current_time */
|| last_time + timeouthard < current_time
/* 2. IPFILE will contain seven words - IP address, session
** token, language, locale, ispell dictionary,
** timezone, charset. Validate both.
*/
|| !(q=strdup(p))
|| !(p=strtok(q, " "))
|| (strcmp(p, ip_addr) && strcmp(p, "none"))
|| !(p=strtok(NULL, " "))
|| strcmp(p, sqwebmail_sessiontoken)
|| !(p=strtok(NULL, " "))
|| !(sqwebmail_content_language=strdup(p))
|| !(p=strtok(NULL, " "))
|| !(sqwebmail_content_locale=strdup(p))
|| !(p=strtok(NULL, " "))
|| !(sqwebmail_content_ispelldict=strdup(p))
|| !(p=strtok(NULL, " "))
|| set_timezone(p)
|| !(p=strtok(NULL, " "))
|| !(sqwebmail_content_charset=strdup(p))
/* 3. Check the timestamp on the TIMESTAMP file. See if the
** session has reached its soft timeout.
*/
|| !read_sqconfig(".", TIMESTAMP, &last_time)
|| last_time + timeoutsoft < current_time)
Has anyone see this bug? Any idea to solve this problem?
Best regards!!
David