diff --git a/client/client_state.cpp b/client/client_state.cpp index dde7acf9cb..bf9c357e54 100644 --- a/client/client_state.cpp +++ b/client/client_state.cpp @@ -1956,6 +1956,7 @@ int CLIENT_STATE::reset_project(PROJECT* project, bool detaching) { // - delete all file infos // - delete account file // - delete project directory +// - delete various per-project files // int CLIENT_STATE::detach_project(PROJECT* project) { vector::iterator project_iter; @@ -2030,6 +2031,11 @@ int CLIENT_STATE::detach_project(PROJECT* project) { ); } + // remove job log file + // + job_log_filename(*project, path, sizeof(path)); + boinc_delete_file(path); + rss_feeds.update_feed_list(); delete project; diff --git a/client/cs_notice.cpp b/client/cs_notice.cpp index 4482b0607e..fd39a140c9 100644 --- a/client/cs_notice.cpp +++ b/client/cs_notice.cpp @@ -704,6 +704,14 @@ int RSS_FEED::parse_items(XML_PARSER& xp, int& nitems) { return func_ret; } +void RSS_FEED::delete_files() { + char path[MAXPATHLEN]; + feed_file_name(path); + boinc_delete_file(path); + archive_file_name(path); + boinc_delete_file(path); +} + ///////////// RSS_FEED_OP //////////////// RSS_FEED_OP::RSS_FEED_OP() { @@ -914,6 +922,7 @@ void RSS_FEEDS::update_feed_list() { rf.url ); } + rf.delete_files(); iter = feeds.erase(iter); } } @@ -928,3 +937,9 @@ void RSS_FEEDS::write_feed_list() { write_rss_feed_descs(fout, feeds); fclose(f); } + +void delete_project_notice_files(PROJECT* p) { + char path[MAXPATHLEN]; + project_feed_list_file_name(p, path); + boinc_delete_file(path); +} diff --git a/client/cs_notice.h b/client/cs_notice.h index 8e1d5b443d..20e388daa3 100644 --- a/client/cs_notice.h +++ b/client/cs_notice.h @@ -111,6 +111,7 @@ struct RSS_FEED { void feed_file_name(char*); void archive_file_name(char*); int read_archive_file(); + void delete_files(); }; struct RSS_FEED_OP: public GUI_HTTP_OP { @@ -144,4 +145,6 @@ int parse_rss_feed_descs(XML_PARSER&, std::vector&); void handle_sr_feeds(std::vector&, struct PROJ_AM*); // process the feeds in a scheduler reply +void delete_project_notice_files(PROJECT*); + #endif