diff libpurple/protocols/myspace/myspace.h @ 17930:d0c8b7748065

Add msim_check_alive(), called every MSIM_KEEPALIVE_INTERVAL_CHECK milliseconds, to recognize the server disconnection if no data was received within MSIM_KEEPALIVE_INTERVAL seconds. This is support for keep-alives.
author Jeffrey Connelly <jaconnel@calpoly.edu>
date Wed, 04 Jul 2007 21:21:25 +0000
parents 87b77f1ea086
children b1f9a3f5c0d0
line wrap: on
line diff
--- a/libpurple/protocols/myspace/myspace.h	Wed Jul 04 19:05:21 2007 +0000
+++ b/libpurple/protocols/myspace/myspace.h	Wed Jul 04 21:21:25 2007 +0000
@@ -83,11 +83,16 @@
 /* Build version of MySpaceIM to report to servers (1.0.xxx.0) */
 #define MSIM_CLIENT_VERSION     673
 
-/* Server */
+/* Default server */
 #define MSIM_SERVER         "im.myspace.akadns.net"
-//#define MSIM_SERVER         "localhost"
 #define MSIM_PORT           1863        /* TODO: alternate ports and automatic */
 
+/* Time between keepalives (seconds) - if no data within this time, is dead. */
+#define MSIM_KEEPALIVE_INTERVAL         (3 * 60)
+
+/* Time to check if alive (milliseconds) */
+#define MSIM_KEEPALIVE_INTERVAL_CHECK   (MSIM_KEEPALIVE_INTERVAL * 1000 / 5)
+
 /* Constants */
 #define HASH_SIZE           0x14        /**< Size of SHA-1 hash for login */
 #define NONCE_SIZE          0x20        /**< Half of decoded 'nc' field */
@@ -156,6 +161,7 @@
     gchar *rxbuf;                       /**< Receive buffer */
     guint rxoff;                        /**< Receive buffer offset */
 	guint next_rid;						/**< Next request/response ID */
+    time_t last_comm;                   /**< Time received last communication */
 } MsimSession;
 
 /* Check if an MsimSession is valid */
@@ -213,6 +219,7 @@
 
 gboolean msim_preprocess_incoming(MsimSession *session, MsimMessage *msg);
 
+gboolean msim_check_alive(gpointer data);
 gboolean msim_we_are_logged_on(MsimSession *session, MsimMessage *msg);
 
 gboolean msim_process(MsimSession *session, MsimMessage *msg);