/* File: proxy_deinit.c Description: deinitialization functions for proxy structures. */ #include #include #include #include "config.h" #include "proxy_protos.h" /* free allocated memory, close open sockets, etc */ void deinit_mdata ( struct mdata *md ) { int i; if ( md ) { if ( md->r ) { /* don't touch fd 0,1,2 (stdin,stdout,stderr) */ for ( i = 3; i < md->nofile; i++ ) { if ( md->r[i].status == FD_OPEN ) { close ( i ); } if ( md->r[i].queue ) g_slist_free(md->r[i].queue); } } free( md->r ); if ( md->m ) g_mem_chunk_destroy ( md->m ); if ( md->server_sock ) close ( md->server_sock ); log_msg(md,"===> %s version %s finished",PACKAGE,VERSION); if ( md->log_fp != stderr ) fclose ( md->log_fp ); } free ( md ); } /* callback to "free" an unused memory chunk atom */ void chunk_free ( void *data, void *user_data ) { g_mem_chunk_free ( (GMemChunk *)user_data, data ); }