void pwipe()
{
DESCRIPTOR_DATA *d;
struct dirent *Dir;
struct stat Stat;
DIR *Directory;
DIR *Backup;
DIR *Store;
char FName[80];
char F2Name[80];
char F3Name[80];
time_t real_time = current_time;
time_t Ptime;
d = new_ghost_descriptor();
Directory=opendir(PLAYER_DIR);
Backup = opendir(BACKUP_DIR);
Store = opendir( BACK2_DIR);
Dir=readdir(Directory);
log_string("Begining Scan/deletion of old pfiles.\n\r");
while(Dir!=NULL)
{
xprintf(FName, PLAYER_DIR"%s", Dir->d_name);
xprintf(F2Name, BACKUP_DIR"%s", Dir->d_name);
xprintf(F3Name, BACK2_DIR"%s", Dir->d_name);
stat( FName, &Stat);
if(S_ISREG(Stat.st_mode)) {
if (Dir->d_name[0] >= 'A' && Dir->d_name[0] <= 'Z') {
load_char_obj( d, Dir->d_name);
// wipe files older than 90 days
Ptime = (int) d->character->lasttime;
if ( (real_time - Ptime) > (86400 * 90))
{
log_string(Dir->d_name);
unlink(FName);
unlink(F2Name);
unlink(F3Name);
}
}
}
Dir=readdir(Directory);
}
log_string("Done with player scan.\n\r");
closedir(Directory);
closedir(Backup);
closedir(Store);
}
1) How would you search a pfile that is not logged in, so I'd need to scan the file, what would I use?
2) What value would I check? Last logout time, I'd think.
3) How would I convert that big number into something like 3 days or 30 days or whatever?