client: delete per-project files when detach project

This commit is contained in:
David Anderson 2014-05-29 10:40:03 -07:00
parent cf5ccaa4d0
commit d78d445789
3 changed files with 24 additions and 0 deletions

View File

@ -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<PROJECT*>::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;

View File

@ -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);
}

View File

@ -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<RSS_FEED>&);
void handle_sr_feeds(std::vector<RSS_FEED>&, struct PROJ_AM*);
// process the feeds in a scheduler reply
void delete_project_notice_files(PROJECT*);
#endif