--- a/libpurple/protocols/msn/session.h Wed Jun 02 20:08:53 2010 +0000 +++ b/libpurple/protocols/msn/session.h Sat Jul 31 23:42:35 2010 +0000 @@ -59,6 +59,8 @@ #define MSN_LOGIN_STEPS MSN_LOGIN_STEP_END +#define MSN_LOGIN_FQY_TIMEOUT 30 + #include "group.h" #include "httpconn.h" #include "nexus.h" @@ -82,6 +84,7 @@ gboolean connected; gboolean logged_in; /**< A temporal flag to ignore local buddy list adds. */ int adl_fqy; /**< A count of ADL/FQY so status is only changed once. */ + guint login_timeout; /**< Timeout to force status change if ADL/FQY fail. */ gboolean destroying; /**< A flag that states if the session is being destroyed. */ gboolean http_method; @@ -118,6 +121,8 @@ GHashTable *soap_table; guint soap_cleanup_handle; char *guid; + + GSList *url_datas; /**< PurpleUtilFetchUrlData to be cancelled on exit */ }; /** @@ -212,7 +217,16 @@ const char *info); /** - * Sets the current step in the login proccess. + * Starts a timeout to initiate finishing login. Sometimes the server ignores + * our FQY requests, so this forces ourselves online eventually. + * + * @param session The MSN session. + */ +void +msn_session_activate_login_timeout(MsnSession *session); + +/** + * Sets the current step in the login process. * * @param session The MSN session. * @param step The current step.