Updates for new fdb code

This commit is contained in:
Michiel Broek
2004-05-07 14:31:47 +00:00
parent 17ab344dee
commit b10f7ae4c0
5 changed files with 84 additions and 11 deletions

View File

@@ -81,7 +81,7 @@ m_protocol.o: ../config.h ../lib/mbselib.h ../paths.h screen.h mutil.h ledit.h s
m_ticarea.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h grlist.h m_global.h m_node.h m_fgroup.h m_farea.h m_archive.h m_ticarea.h
mbsetup.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/mbsedb.h screen.h mutil.h ledit.h m_global.h m_bbs.h m_farea.h m_fgroup.h m_mail.h m_mgroup.h m_hatch.h m_tic.h m_ticarea.h m_magic.h m_fido.h m_lang.h m_archive.h m_virus.h m_tty.h m_limits.h m_users.h m_node.h m_fdb.h m_new.h m_ol.h m_bbslist.h m_protocol.h m_ff.h m_modem.h m_marea.h m_ngroup.h m_service.h m_domain.h m_task.h m_route.h
ledit.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/msg.h screen.h mutil.h ledit.h
m_farea.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_global.h m_fgroup.h m_archive.h m_farea.h m_fgroup.h m_ngroup.h
m_farea.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/mbsedb.h screen.h mutil.h ledit.h m_global.h m_fgroup.h m_archive.h m_farea.h m_fgroup.h m_ngroup.h
m_fido.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_global.h m_fido.h
m_limits.o: ../config.h ../lib/mbselib.h ../lib/users.h screen.h mutil.h ledit.h stlist.h m_global.h m_limits.h
m_menu.o: ../config.h ../lib/mbselib.h mutil.h screen.h ledit.h m_lang.h m_global.h m_menu.h
@@ -90,7 +90,7 @@ m_service.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_gl
m_tty.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_modem.h m_global.h m_tty.h
mutil.o: ../config.h ../lib/mbselib.h ../lib/diesel.h screen.h ledit.h mutil.h
m_archive.o: ../config.h ../lib/mbselib.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_archive.h
m_fdb.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_global.h m_farea.h m_fdb.h
m_fdb.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/mbsedb.h screen.h mutil.h ledit.h m_global.h m_farea.h m_fdb.h
m_global.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_node.h m_marea.h m_ticarea.h m_new.h m_fgroup.h m_mgroup.h m_limits.h m_global.h
m_magic.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_ticarea.h m_global.h m_magic.h
m_mgroup.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_global.h m_node.h m_marea.h m_mgroup.h

View File

@@ -30,6 +30,8 @@
#include "../config.h"
#include "../lib/mbselib.h"
#include "../lib/users.h"
#include "../lib/mbsedb.h"
#include "screen.h"
#include "mutil.h"
#include "ledit.h"
@@ -244,7 +246,7 @@ void FileScreen(void)
*/
int EditFileRec(int Area)
{
FILE *fil, *fp;
FILE *fil;
char mfile[PATH_MAX], *temp, tpath[65], frpath[81], topath[81];
long offset;
unsigned long crc, crc1;
@@ -252,6 +254,11 @@ int EditFileRec(int Area)
DIR *dp;
struct dirent *de;
struct stat stb;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *fp;
#endif
clr_index();
working(1, 0, 0);
@@ -370,6 +377,17 @@ int EditFileRec(int Area)
/*
* Attempt to disable this area, but check first.
*/
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(Area, 30))) {
fseek(fdb_area->fp, 0, SEEK_END);
files = ((ftell(fdb_area->fp) - fdbhdr.hdrsize) / fdbhdr.recsize);
if (files) {
errmsg("There are stil %d files in this area", files);
Available = TRUE;
}
mbsedb_CloseFDB(fdb_area);
}
#else
if ((fp = fopen(temp, "r"))) {
if (fread(&fdbhdr, sizeof(fdbhdr), 1, fp) == 1) {
fseek(fp, 0, SEEK_END);
@@ -381,6 +399,7 @@ int EditFileRec(int Area)
}
fclose(fp);
}
#endif
if (!Available) {
if (yes_no((char *)"Are you sure you want to delete this area") == 0)
Available = TRUE;
@@ -416,6 +435,10 @@ int EditFileRec(int Area)
}
if (!area.Available && Available) {
area.Available = TRUE;
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(Area, 30)))
mbsedb_CloseFDB(fdb_area);
#else
if ((fp = fopen(temp, "a+")) == NULL) {
WriteError("$Can't create file database %s", temp);
} else {
@@ -425,6 +448,7 @@ int EditFileRec(int Area)
fclose(fp);
}
chmod(temp, 0660);
#endif
}
free(temp);
break;

View File

@@ -30,6 +30,8 @@
#include "../config.h"
#include "../lib/mbselib.h"
#include "../lib/users.h"
#include "../lib/mbsedb.h"
#include "screen.h"
#include "mutil.h"
#include "ledit.h"
@@ -357,7 +359,10 @@ void InitFDB(void)
struct dirent *de;
struct OldFILERecord old;
struct stat sb;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#endif
records = CountFilearea();
if (records <= 0)
return;
@@ -448,7 +453,17 @@ void InitFDB(void)
fclose(fp1);
sprintf(temp, "%s/fdb/fdb%ld.data", getenv("MBSE_ROOT"), Area);
unlink(temp);
}
} // Old area type upgrade.
/*
* Current area, check
*/
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(Area, 30)) == NULL)
WriteError("InitFDB(): database area %ld might be corrupt", Area);
else
mbsedb_CloseFDB(fdb_area);
#endif
}
}
fclose(fil);