void msn_userlist_destroy(MsnUserList *userlist) { GList *l; for (l = userlist->users; l != NULL; l = l->next) { msn_user_destroy(l->data); } g_list_free(userlist->users); for (l = userlist->groups; l != NULL; l = l->next) { msn_group_destroy(l->data); } g_list_free(userlist->groups); g_queue_free(userlist->buddy_icon_requests); if (userlist->buddy_icon_request_timer) purple_timeout_remove(userlist->buddy_icon_request_timer); g_free(userlist); }
void msn_session_destroy(MsnSession *session) { g_return_if_fail(session != NULL); session->destroying = TRUE; if (session->connected) msn_session_disconnect(session); if (session->soap_cleanup_handle) purple_timeout_remove(session->soap_cleanup_handle); if (session->soap_table != NULL) g_hash_table_destroy(session->soap_table); while (session->slplinks != NULL) msn_slplink_destroy(session->slplinks->data); while (session->switches != NULL) msn_switchboard_destroy(session->switches->data); if (session->sync != NULL) msn_sync_destroy(session->sync); if (session->oim != NULL) msn_oim_destroy(session->oim); if (session->nexus != NULL) msn_nexus_destroy(session->nexus); if (session->user != NULL) msn_user_destroy(session->user); if (session->notification != NULL) msn_notification_destroy(session->notification); msn_userlist_destroy(session->userlist); g_free(session->psm); g_free(session->abch_cachekey); #if 0 g_free(session->blocked_text); #endif g_free(session->passport_info.kv); g_free(session->passport_info.sid); g_free(session->passport_info.mspauth); g_free(session->passport_info.client_ip); g_free(session->passport_info.mail_url); g_free(session); }
void msn_session_destroy(MsnSession *session) { g_return_if_fail(session != NULL); session->destroying = TRUE; if (session->connected) msn_session_disconnect(session); if (session->notification != NULL) msn_notification_destroy(session->notification); while (session->switches != NULL) msn_switchboard_destroy(session->switches->data); while (session->slplinks != NULL) msn_slplink_destroy(session->slplinks->data); msn_userlist_destroy(session->userlist); g_free(session->passport_info.kv); g_free(session->passport_info.sid); g_free(session->passport_info.mspauth); g_free(session->passport_info.client_ip); if (session->passport_info.file != NULL) { g_unlink(session->passport_info.file); g_free(session->passport_info.file); } if (session->sync != NULL) msn_sync_destroy(session->sync); if (session->nexus != NULL) msn_nexus_destroy(session->nexus); if (session->user != NULL) msn_user_destroy(session->user); g_free(session); }