Example #1
0
int delete_backups(struct sdirs *sdirs, struct conf *cconf)
{
	// Deleting a backup might mean that more become available to delete.
	// Keep trying to delete until we cannot delete any more.
	while(1) switch(do_delete_backups(sdirs, cconf))
	{
		case 0: return 0;
		case -1: return -1;
		default: continue;
	}
	return -1; // Not reached.
}
Example #2
0
int delete_backups(struct sdirs *sdirs,
	const char *cname, struct strlist *keep, const char *manual_delete)
{
	int ret=-1;
	struct bu *bu_list=NULL;
	// Deleting a backup might mean that more become available to delete.
	// Keep trying to delete until we cannot delete any more.
	while(1)
	{
		if(bu_get_list(sdirs, &bu_list)) goto end;
		switch(do_delete_backups(sdirs, cname, keep, bu_list,
			manual_delete))
		{
			case 0: ret=0; goto end;
			case -1: ret=-1; goto end;
			default: break;
		}
		bu_list_free(&bu_list);
	}
end:
	bu_list_free(&bu_list);
	return ret;
}