void free_control_io (BSocksClient *o) { // free sending PacketStreamSender_Free(&o->control.send_sender); BConnection_SendAsync_Free(&o->con); // free receiving BConnection_RecvAsync_Free(&o->con); }
static void connection_free_link (struct connection *c) { PacketPassFifoQueue_PrepareFree(&c->send_queue); LinkedList0Node *ln; while (ln = LinkedList0_GetFirst(&c->replies_list)) { struct reply *r = UPPER_OBJECT(ln, struct reply, replies_list_node); ASSERT(r->con == c) reply_free(r); } PacketPassFifoQueue_Free(&c->send_queue); PacketStreamSender_Free(&c->send_pss); PacketProtoDecoder_Free(&c->recv_decoder); PacketPassInterface_Free(&c->recv_if); BConnection_RecvAsync_Free(&c->con); BConnection_SendAsync_Free(&c->con); BConnection_Free(&c->con); }