diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-09-29 17:54:07 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-09-29 17:54:07 +0000 |
commit | f11e06eca8712a1dd7d308713baee2e4dd6d6997 (patch) | |
tree | d996b910b9e77135b2a9501b7fd79fce90bd9f46 /src/datafiles.c | |
parent | c565a28c43dd73b167c45dde4a7f7fb41183a7a5 (diff) |
BUILD : 1.7.15 (1162) BUGS : 604 NOTES : Added functions to let modules backup their own databases and added this functionality to the bundled modules
git-svn-id: svn://svn.anope.org/anope/trunk@1162 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@884 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/datafiles.c')
-rw-r--r-- | src/datafiles.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/datafiles.c b/src/datafiles.c index 117f2c32e..60434a28f 100644 --- a/src/datafiles.c +++ b/src/datafiles.c @@ -711,3 +711,63 @@ void backup_databases(void) send_event(EVENT_DB_BACKUP, 1, EVENT_STOP); } } + +/*************************************************************************/ + +void ModuleDatabaseBackup(char *dbname) +{ + + time_t t; + struct tm tm; + + if (!KeepBackups) { + return; + } + + time(&t); + tm = *localtime(&t); + + if (!curday) { + curday = tm.tm_yday; + return; + } + + if (curday != tm.tm_yday) { + + char ext[9]; + + if (debug) { + alog("Module Database Backing up %s", dbname); + } + ModuleRemoveBackups(dbname); + curday = tm.tm_yday; + strftime(ext, sizeof(ext), "%Y%m%d", &tm); + rename_database(dbname, ext); + } +} + +/*************************************************************************/ + +void ModuleRemoveBackups(char *dbname) +{ + char ext[9]; + char path[PATH_MAX]; + + time_t t; + struct tm tm; + + time(&t); + t -= (60 * 60 * 24 * KeepBackups); + tm = *localtime(&t); + strftime(ext, sizeof(ext), "%Y%m%d", &tm); + + snprintf(path, sizeof(path), "backups/%s.%s", dbname, ext); +#ifndef _WIN32 + unlink(path); +#else + DeleteFile(path); +#endif +} + +/*************************************************************************/ + |