void jabber_bosh_connection_destroy(PurpleJabberBOSHConnection *conn) { if (conn == NULL || conn->is_terminating) return; conn->is_terminating = TRUE; if (conn->sid != NULL) { purple_debug_info("jabber-bosh", "Terminating a session for %p\n", conn); jabber_bosh_connection_send_now(conn); } purple_http_connection_set_destroy(conn->payload_reqs); conn->payload_reqs = NULL; if (conn->send_timer) purple_timeout_remove(conn->send_timer); purple_http_conn_cancel(conn->sc_req); conn->sc_req = NULL; purple_http_keepalive_pool_unref(conn->kapool); conn->kapool = NULL; g_string_free(conn->send_buff, TRUE); conn->send_buff = NULL; g_free(conn->sid); conn->sid = NULL; g_free(conn->url); conn->url = NULL; g_free(conn); }
static void yahoo_roomlist_destroy(struct yahoo_roomlist *yrl) { purple_http_conn_cancel(yrl->hc); g_free(yrl->url); g_free(yrl); }
static void yahoo_xfer_cancel_recv(PurpleXfer *xfer) { struct yahoo_xfer_data *xfer_data; xfer_data = purple_xfer_get_protocol_data(xfer); if(purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL) { PurpleConnection *gc; PurpleAccount *account; YahooData *yd; struct yahoo_packet *pkt; gc = xfer_data->gc; yd = purple_connection_get_protocol_data(gc); account = purple_connection_get_account(gc); if(!xfer_data->xfer_idstring_for_relay) /* hack to see if file trans acc/info packet has been received */ { pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, YAHOO_STATUS_AVAILABLE, yd->session_id); yahoo_packet_hash(pkt, "sssi", 1, purple_normalize(account, purple_account_get_username(account)), 5, purple_xfer_get_remote_user(xfer), 265, xfer_data->xfer_peer_idstring, 222, 4); } else { pkt = yahoo_packet_new(YAHOO_SERVICE_FILETRANS_15, YAHOO_STATUS_DISCONNECTED, yd->session_id); yahoo_packet_hash(pkt, "sssi", 1, purple_normalize(account, purple_account_get_username(account)), 5, purple_xfer_get_remote_user(xfer), 265, xfer_data->xfer_peer_idstring, 66, -1); } yahoo_packet_send_and_free(pkt, yd); } if (xfer_data) { purple_http_conn_cancel(xfer_data->hc); yahoo_xfer_data_free(xfer_data); } purple_xfer_set_protocol_data(xfer, NULL); }
void ggp_edisc_cleanup(PurpleConnection *gc) { ggp_edisc_session_data *sdata = ggp_edisc_get_sdata(gc); g_return_if_fail(sdata != NULL); purple_http_conn_cancel(sdata->auth_request); g_list_free_full(sdata->auth_pending, g_free); g_free(sdata->security_token); purple_http_cookie_jar_unref(sdata->cookies); g_hash_table_destroy(sdata->xfers_initialized); g_hash_table_destroy(sdata->xfers_history); g_free(sdata); }
void ggp_avatar_cleanup(PurpleConnection *gc) { ggp_avatar_session_data *avdata = ggp_avatar_get_avdata(gc); purple_timeout_remove(avdata->timer); if (avdata->current_update != NULL) { ggp_avatar_buddy_update_req *current_update = avdata->current_update; purple_http_conn_cancel(current_update->request); g_free(current_update); } avdata->current_update = NULL; g_free(avdata->own_data); g_list_free_full(avdata->pending_updates, &g_free); avdata->pending_updates = NULL; }
static void ggp_edisc_xfer_free(PurpleXfer *xfer) { ggp_edisc_session_data *sdata; ggp_edisc_xfer *edisc_xfer = purple_xfer_get_protocol_data(xfer); if (edisc_xfer == NULL) return; g_free(edisc_xfer->filename); purple_http_conn_cancel(edisc_xfer->hc); sdata = ggp_edisc_get_sdata(edisc_xfer->gc); g_return_if_fail(sdata != NULL); if (edisc_xfer->ticket_id != NULL) g_hash_table_remove(sdata->xfers_initialized, edisc_xfer->ticket_id); g_free(edisc_xfer); purple_xfer_set_protocol_data(xfer, NULL); }