changeset 4841:7bdda84b5431

[gaim-migrate @ 5166] This fixes the bug where people would show up as being online for 47 thousand days in their mouse overs. To all the people that experienced this bug: Set the clocks on your computers correctly, foos. And now some quotes: Good versus evil equals confrontation Good turned to evil and a push comes to shove, we must save the world with an act of love "How could you not love it? This buddy list is endangering marriages." committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 20 Mar 2003 21:13:07 +0000
parents a701ef925850
children 654eb87fb336
files src/multi.h src/protocols/oscar/oscar.c src/server.c
diffstat 3 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/multi.h	Thu Mar 20 16:58:09 2003 +0000
+++ b/src/multi.h	Thu Mar 20 21:13:07 2003 +0000
@@ -56,9 +56,9 @@
 	/* stuff needed for per-connection idle times */
 	guint idle_timer;
 	time_t login_time;
+	time_t login_time_official;
 	time_t lastsent;
 	int is_idle;
-	time_t correction_time;
 
 	char *away;		/* set by protos, is NULL when not away, or set *
 				 * to "" or a custom message when away */
--- a/src/protocols/oscar/oscar.c	Thu Mar 20 16:58:09 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Thu Mar 20 21:13:07 2003 +0000
@@ -2998,7 +2998,7 @@
 	if (bi) {
 		gchar *yay;
 		char *caps = caps_string(bi->caps);
-		char *tstr = sec_to_text(time(NULL) - bi->signon);
+		char *tstr = sec_to_text(time(NULL) - bi->signon + gc->login_time_official - gc->login_time);
 		yay = g_strdup_printf(_("<b>Logged In:</b> %s%s%s"), tstr, 
 				       caps ? _("\n<b>Capabilities:</b> ") : "", caps ? caps : "");
 		free(tstr);
@@ -3519,7 +3519,9 @@
 	va_end(ap);
 
 	gc->evil = info->warnlevel/10;
-	/* gc->correction_time = (info->onlinesince - gc->login_time); */
+
+	if (info->onlinesince)
+		gc->login_time_official = info->onlinesince;
 
 	return 1;
 }
--- a/src/server.c	Thu Mar 20 16:58:09 2003 +0000
+++ b/src/server.c	Thu Mar 20 21:13:07 2003 +0000
@@ -857,7 +857,7 @@
 		char *tmp = g_strdup(normalize(name));
 		if (!gaim_utf8_strcasecmp(tmp, normalize(gc->username))) {
 			gc->evil = evil;
-			gc->correction_time = (signon - gc->login_time);
+			gc->login_time_official = signon;
 			/*update_idle_times();*/
 		}
 		g_free(tmp);