diff options
Diffstat (limited to 'libpurple/protocols/msn/session.h')
-rw-r--r-- | libpurple/protocols/msn/session.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libpurple/protocols/msn/session.h b/libpurple/protocols/msn/session.h index dec6353f47..27ad890b16 100644 --- a/libpurple/protocols/msn/session.h +++ b/libpurple/protocols/msn/session.h @@ -59,6 +59,8 @@ typedef enum #define MSN_LOGIN_STEPS MSN_LOGIN_STEP_END +#define MSN_LOGIN_FQY_TIMEOUT 30 + #include "group.h" #include "httpconn.h" #include "nexus.h" @@ -83,6 +85,7 @@ struct _MsnSession 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; @@ -119,6 +122,8 @@ struct _MsnSession GHashTable *soap_table; guint soap_cleanup_handle; + + GSList *url_datas; /**< PurpleUtilFetchUrlData to be cancelled on exit */ }; /** @@ -213,7 +218,16 @@ void msn_session_set_error(MsnSession *session, MsnErrorType error, 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. |