/*------------------------------------------------------------------------ * Periodic task called every KEEPALIVE_INTERVAL (30 sec) to to maintain * idle connections, timeouts and the transmission queue to the MXit server. * * @param gc The connection object */ static void mxit_keepalive( PurpleConnection *gc ) { struct MXitSession* session = purple_connection_get_protocol_data( gc ); /* if not logged in, there is nothing to do */ if ( !( session->flags & MXIT_FLAG_LOGGEDIN ) ) return; /* pinging is only for socket connections (HTTP does polling) */ if ( session->http ) return; if ( session->last_tx <= ( mxit_now_milli() - ( MXIT_PING_INTERVAL * 1000 ) ) ) { /* * this connection has been idle for too long, better ping * the server before it kills our connection. */ mxit_send_ping( session ); } }
/*------------------------------------------------------------------------ * Periodic task called every KEEPALIVE_INTERVAL (30 sec) to to maintain * idle connections, timeouts and the transmission queue to the MXit server. * * @param gc The connection object */ static void mxit_keepalive( PurpleConnection *gc ) { struct MXitSession* session = (struct MXitSession*) gc->proto_data; /* if not logged in, there is nothing to do */ if ( !( session->flags & MXIT_FLAG_LOGGEDIN ) ) return; /* pinging is only for socket connections (HTTP does polling) */ if ( session->http ) return; if ( session->last_tx <= time( NULL ) - MXIT_PING_INTERVAL ) { /* * this connection has been idle for too long, better ping * the server before it kills our connection. */ mxit_send_ping( session ); } }