void filetransfer_free() { ft->shadowlib->log(SHADOW_LOG_LEVEL_DEBUG, __FUNCTION__, "filetransfer_free called"); if(ft->client) { /* stop the client */ service_filegetter_stop(ft->client); /* cleanup */ g_free(ft->client); ft->client = NULL; } if(ft->server) { /* log statistics */ ft->shadowlib->log(SHADOW_LOG_LEVEL_MESSAGE, __FUNCTION__, "fileserver stats: %lu bytes in, %lu bytes out, %lu replies", ft->server->bytes_received, ft->server->bytes_sent, ft->server->replies_sent); /* shutdown fileserver */ ft->shadowlib->log(SHADOW_LOG_LEVEL_INFO, __FUNCTION__, "shutting down fileserver"); fileserver_shutdown(ft->server); /* cleanup */ g_free(ft->server); ft->server = NULL; } }
static enum filegetter_code service_filegetter_expire(service_filegetter_tp sfg) { /* all done */ filegetter_filestats_t total; filegetter_stat_aggregate(&sfg->fg, &total); /* report aggregate stats */ service_filegetter_report(sfg, SFG_NOTICE, "[fg-finished]", &total, sfg->downloads_completed, sfg->downloads_requested); service_filegetter_stop(sfg); return FG_OK_200; }