diff libpurple/protocols/jabber/jabber.c @ 25685:a92df60855f3

Set idle time on JabberStream when logging in This way we will report idle time if we get disconnected while being idle
author Marcus Lundblad <ml@update.uu.se>
date Thu, 29 Jan 2009 19:54:26 +0000
parents d29f9f946ba2
children feea711ac242
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Thu Jan 29 19:15:09 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Thu Jan 29 19:54:26 2009 +0000
@@ -28,6 +28,7 @@
 #include "conversation.h"
 #include "debug.h"
 #include "dnssrv.h"
+#include "idle.h"
 #include "message.h"
 #include "notify.h"
 #include "pluginpref.h"
@@ -702,7 +703,8 @@
 			"connect_server", "");
 	JabberStream *js;
 	JabberBuddy *my_jb = NULL;
-
+	PurpleIdleUiOps *idle_ops = NULL;
+	
 	gc->flags |= PURPLE_CONNECTION_HTML |
 		PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY;
 	js = gc->proto_data = g_new0(JabberStream, 1);
@@ -723,6 +725,14 @@
 	js->keepalive_timeout = -1;
 	js->certificate_CN = g_strdup(connect_server[0] ? connect_server : js->user ? js->user->domain : NULL);
 
+	/* if we are idle, set idle-ness on the stream (this could happen if we get
+		disconnected and the reconnects while being idle. I don't think it makes
+		sense to do this when registering a new account... */
+	idle_ops = purple_idle_get_ui_ops();
+	if (idle_ops && idle_ops->get_time_idle) {
+		js->idle = (idle_ops->get_time_idle)();
+	}
+		
 	if(!js->user) {
 		purple_connection_error_reason (gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,