Made FDB experiment permanent and bumped to version 0.51.5

This commit is contained in:
Michiel Broek
2004-05-19 21:18:14 +00:00
parent d87e61987f
commit 2804bac993
26 changed files with 2403 additions and 2615 deletions

View File

@@ -56,7 +56,6 @@ int FileRecno = 0;
int CheckFile(char *, int);
int CheckFile(char *File, int iArea)
{
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
if ((fdb_area = mbsedb_OpenFDB(iArea, 30)) == NULL)
@@ -73,32 +72,6 @@ int CheckFile(char *File, int iArea)
}
mbsedb_CloseFDB(fdb_area);
#else
FILE *pFileB;
char *sFileArea;
sFileArea = calloc(PATH_MAX, sizeof(char));
sprintf(sFileArea,"%s/fdb/file%d.data", getenv("MBSE_ROOT"), iArea);
if ((pFileB = fopen(sFileArea,"r+")) == NULL) {
mkdir(sFileArea, 775);
return FALSE;
}
free(sFileArea);
fread(&fdbhdr, sizeof(fdbhdr), 1, pFileB);
/*
* Check long and short filenames, case insensitive
*/
while (fread(&fdb, fdbhdr.recsize, 1, pFileB) == 1) {
if (((strcasecmp(fdb.Name, File)) == 0) || ((strcasecmp(fdb.LName, File)) == 0)) {
fclose(pFileB);
return TRUE;
}
}
fclose(pFileB);
#endif
return FALSE;
}
@@ -112,11 +85,7 @@ void File_List()
int FileCount = 0;
unsigned FileBytes = 0;
_Tag T;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
iLineCount = 0;
WhosDoingWhat(FILELIST, NULL);
@@ -133,30 +102,17 @@ void File_List()
InitTag();
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(iAreaNumber, 30)) == NULL)
return;
#else
if ((pFile = OpenFileBase(iAreaNumber, FALSE)) == NULL)
return;
#endif
clear();
Header();
if (iLC(2) == 1) {
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
return;
}
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
memset(&T, 0, sizeof(T));
T.Area = iAreaNumber;
T.Active = FALSE;
@@ -166,11 +122,7 @@ void File_List()
SetTag(T);
if (ShowOneFile() == 1) {
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
return;
}
@@ -190,11 +142,7 @@ void File_List()
printf("\n%s%d / %d bytes\n\n", (char *) Language(242), FileCount, FileBytes);
iLineCount = 0;
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
Pause();
}
@@ -215,11 +163,7 @@ void Download(void)
long Size = 0, CostSize = 0;
time_t ElapstimeStart, ElapstimeFin, iTime;
long iTransfer = 0;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *fp;
#endif
Enter(2);
OldArea = iAreaNumber;
@@ -256,7 +200,6 @@ void Download(void)
* Check password for selected file FIXME: Where???
*/
memset(&fdb, 0, sizeof(fdb));
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(Tag.Area, 30)) != NULL) {
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
if (strcmp(fdb.LName, Tag.LFile) == 0)
@@ -264,15 +207,6 @@ void Download(void)
}
mbsedb_CloseFDB(fdb_area);
}
#else
if ((fp = OpenFileBase(Tag.Area, FALSE)) != NULL) {
while (fread(&fdb, fdbhdr.recsize, 1, fp) == 1) {
if (strcmp(fdb.LName, Tag.LFile) == 0)
break;
}
fclose(fp);
}
#endif
if (strcmp(fdb.LName, Tag.LFile) == 0) {
Syslog('b', "Found file %s in area %d", fdb.LName, Tag.Area);
@@ -493,7 +427,6 @@ void Download(void)
* Update the download counter and the last download date.
*/
SetFileArea(Tag.Area);
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(Tag.Area, 30))) {
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
if (strcmp(fdb.LName, Tag.LFile) == 0)
@@ -508,19 +441,6 @@ void Download(void)
mbsedb_UnlockFDB(fdb_area);
}
mbsedb_CloseFDB(fdb_area);
#else
if ((fp = OpenFileBase(Tag.Area, TRUE)) != NULL) {
while (fread(&fdb, fdbhdr.recsize, 1, fp) == 1) {
if (strcmp(fdb.LName, Tag.LFile) == 0)
break;
}
Size += fdb.Size;
fdb.TimesDL++;
fdb.LastDL = time(NULL);
fseek(fp, - fdbhdr.recsize, SEEK_CUR);
fwrite(&fdb, fdbhdr.recsize, 1, fp);
fclose(fp);
#endif
Count++;
}
} else {
@@ -649,11 +569,7 @@ int KeywordScan()
char *Name, *tmpname, *BigDesc, temp[81];
_Tag T;
unsigned long OldArea;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
Name = calloc(81, sizeof(char));
tmpname = calloc(81, sizeof(char));
@@ -697,20 +613,12 @@ int KeywordScan()
if ((Access(exitinfo.Security, area.LTSec)) && (area.Available) && (strlen(area.Password) == 0)) {
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(arecno, 30))) {
#else
if ((pFile = OpenFileBase(arecno, FALSE)) != NULL) {
#endif
Nopper();
Found = FALSE;
Sheader();
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
for (i = 0; i < 25; i++)
sprintf(BigDesc, "%s%s", BigDesc, *(fdb.Desc + i));
@@ -748,11 +656,7 @@ int KeywordScan()
} /* while */
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
if (Found) {
Enter(2);
if (iLC(2) == 1) {
@@ -796,11 +700,7 @@ int FilenameScan()
char *Name;
_Tag T;
unsigned long OldArea;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
Name = calloc(81, sizeof(char));
OldArea = iAreaNumber;
@@ -841,20 +741,12 @@ int FilenameScan()
while (fread(&area, areahdr.recsize, 1, pAreas) == 1) {
if ((Access(exitinfo.Security, area.LTSec)) && (area.Available) && (strlen(area.Password) == 0)) {
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(arecno, 30))) {
#else
if ((pFile = OpenFileBase(arecno, FALSE)) != NULL) {
#endif
Found = FALSE;
Sheader();
Nopper();
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
if (re_exec(fdb.Name) || re_exec(fdb.LName)) {
if (!Found) {
Enter(2);
@@ -881,11 +773,7 @@ int FilenameScan()
} /* End of while */
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
if (Found) {
Enter(2);
if (iLC(2) == 1) {
@@ -923,11 +811,7 @@ int NewfileScan(int AskStart)
char *temp, *Date;
int Found, Count = 0;
_Tag T;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
Date = calloc(81, sizeof(char));
temp = calloc(81, sizeof(char));
@@ -980,20 +864,12 @@ int NewfileScan(int AskStart)
if ((Access(exitinfo.Security, area.LTSec)) && (area.Available) && (strlen(area.Password) == 0) && (area.New)) {
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(arecno, 30))) {
#else
if ((pFile = OpenFileBase(arecno, FALSE)) != NULL ) {
#endif
Sheader();
Found = FALSE;
Nopper();
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
strcpy(temp, StrDateDMY(fdb.UploadDate)); /* Realloc Space for Date */
Date[0] = temp[6]; /* Swap the date around */
Date[1] = temp[7]; /* Instead of DD-MM-YYYY */
@@ -1013,11 +889,7 @@ int NewfileScan(int AskStart)
if (iLC(2) == 1) {
free(Date);
free(temp);
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
fclose(pAreas);
return 1;
}
@@ -1036,11 +908,7 @@ int NewfileScan(int AskStart)
if (ShowOneFile() == 1) {
free(Date);
free(temp);
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
fclose(pAreas);
return 1;
}
@@ -1048,11 +916,7 @@ int NewfileScan(int AskStart)
} /* End of if */
} /* End of while */
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
/*
* Add 2 blank lines after found files.
@@ -2094,11 +1958,7 @@ void Copy_Home()
{
char *File, *temp1, *temp2;
int err, Found = FALSE;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
File = calloc(81, sizeof(char));
temp1 = calloc(PATH_MAX, sizeof(char));
@@ -2142,22 +2002,14 @@ void Copy_Home()
return;
}
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(iAreaNumber, 30)) == NULL) {
#else
if ((pFile = OpenFileBase(iAreaNumber, FALSE)) == NULL) {
#endif
free(File);
free(temp1);
free(temp2);
return;
}
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
if ((strcasecmp(File, fdb.Name) == 0) || (strcasecmp(File, fdb.LName) == 0)) {
Found = TRUE;
@@ -2190,11 +2042,7 @@ void Copy_Home()
}
}
}
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
if (!Found) {
colour(CFG.HiliteF, CFG.HiliteB);
@@ -2338,11 +2186,7 @@ void ViewFile(char *name)
char *File, *temp, *arc;
int count, total, rc, found = FALSE;
FILE *fp;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
#endif
Syslog('+', "ViewFile(%s)", printable(name, 0));
@@ -2404,30 +2248,18 @@ void ViewFile(char *name)
/*
* Now check if this file is present
*/
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(iAreaNumber, 30)) == NULL) {
#else
if ((pFile = OpenFileBase(iAreaNumber, FALSE)) == NULL) {
#endif
free(File);
return;
}
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
if (((strcasecmp(File, fdb.Name) == 0) || (strcasecmp(File, fdb.LName) == 0)) && (!fdb.Deleted)) {
found = TRUE;
break;
}
}
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
if (!found) {
colour(YELLOW, BLACK);

View File

@@ -151,36 +151,6 @@ void GetstrD(char *sStr, int iMaxlen)
/*
* Open FileDataBase, the filepointer is at the begin of the first record.
*/
#ifndef USE_EXPERIMENT
FILE *OpenFileBase(unsigned long Area, int Write)
{
FILE *pFile;
char *FileBase;
FileBase = calloc(PATH_MAX, sizeof(char));
sprintf(FileBase,"%s/fdb/file%ld.data", getenv("MBSE_ROOT"), Area);
if (Write)
pFile = fopen(FileBase, "r+");
else
pFile = fopen(FileBase, "r");
if (pFile == NULL) {
WriteError("$Can't open file: %s", FileBase);
/* Can't open file database for this area */
printf("%s\n\n", (char *) Language(237));
sleep(2);
}
fread(&fdbhdr, sizeof(fdbhdr), 1, pFile);
free(FileBase);
return pFile;
}
#endif
/*
* Open the fareas.data file for read or R/W and read the headerrecord.
@@ -883,11 +853,7 @@ int Addfile(char *File, int AreaNum, int fileid)
int err = 1, iDesc = 1, iPrivate = FALSE, GotId = FALSE, lines, i, j;
char *Filename, *temp1, *idname = NULL, *Desc[26], *lname, temp[81];
struct stat statfile;
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFileDB;
#endif
Filename = calloc(PATH_MAX, sizeof(char));
temp1 = calloc(PATH_MAX, sizeof(char));
@@ -895,11 +861,7 @@ int Addfile(char *File, int AreaNum, int fileid)
sprintf(Filename, "%s/%s", area.Path, File);
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(AreaNum, 30))) {
#else
if ((pFileDB = OpenFileBase(AreaNum, TRUE)) != NULL) {
#endif
/*
* Do a physical check of file to see if it exists
* if it fails it will return a zero which will not
@@ -911,11 +873,7 @@ int Addfile(char *File, int AreaNum, int fileid)
/* Upload was unsuccessful for: */
printf("\n%s%s\n\n", (char *) Language(284), File);
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFileDB);
#endif
free(Filename);
free(temp1);
free(lname);
@@ -1080,14 +1038,8 @@ int Addfile(char *File, int AreaNum, int fileid)
free(Desc[i]);
}
#ifdef USE_EXPERIMENT
mbsedb_InsertFDB(fdb_area, fdb, area.AddAlpha);
mbsedb_CloseFDB(fdb_area);
#else
fseek(pFileDB, 0, SEEK_END);
fwrite(&fdb, fdbhdr.recsize, 1, pFileDB);
fclose(pFileDB);
#endif
sprintf(temp, "%s/log/uploads.log", getenv("MBSE_ROOT"));
if ((pPrivate = fopen(temp, "a+")) == NULL)

View File

@@ -1,10 +1,8 @@
#ifndef _FILESUB_H
#define _FILESUB_H
/* $Id$ */
#ifndef USE_EXPERIMENT
FILE *OpenFileBase(unsigned long Area, int);
#endif
FILE *OpenFareas(int);
int ForceProtocol(void);
int CheckBytesAvailable(long);

View File

@@ -275,14 +275,7 @@ void Masterlist()
unsigned long NewAreaFiles, NewAreaBytes;
char *sAreas;
char temp[81], pop[81];
#ifdef USE_EXPERIMENT
struct _fdbarea *fdb_area = NULL;
#else
FILE *pFile;
char *fAreas;
fAreas = calloc(PATH_MAX, sizeof(char));
#endif
sAreas = calloc(PATH_MAX, sizeof(char));
@@ -342,23 +335,11 @@ void Masterlist()
Nopper();
#ifdef USE_EXPERIMENT
if ((fdb_area = mbsedb_OpenFDB(AreaNr, 30)) == 0) {
#else
sprintf(fAreas, "%s/fdb/file%d.data", getenv("MBSE_ROOT"), AreaNr);
if ((pFile = fopen (fAreas, "r")) == NULL) {
#endif
WriteError("$Can't open Area %d (%s)! Skipping ...", AreaNr, area.Name);
} else {
#ifndef USE_EXPERIMENT
fread(&fdbhdr, sizeof(fdbhdr), 1, pFile);
#endif
popdown = 0;
#ifdef USE_EXPERIMENT
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
if (!fdb.Deleted) {
/*
* The next is to reduce system load.
@@ -412,13 +393,8 @@ void Masterlist()
BotBox(fp, TRUE);
BotBox(np, NewAreaFiles);
#ifdef USE_EXPERIMENT
fseek(fdb_area->fp, fdbhdr.hdrsize, SEEK_SET);
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
#else
fseek(pFile, fdbhdr.hdrsize, SEEK_SET);
while (fread(&fdb, fdbhdr.recsize, 1, pFile) == 1) {
#endif
if (!fdb.Deleted) {
New = (((t_start - fdb.UploadDate) / 84400) <= CFG.newdays);
sprintf(temp, "%-12s%10lu K %s [%04ld] Uploader: %s",
@@ -449,11 +425,7 @@ void Masterlist()
}
}
}
#ifdef USE_EXPERIMENT
mbsedb_CloseFDB(fdb_area);
#else
fclose(pFile);
#endif
}
}
} /* End of While Loop Checking for Areas Done */
@@ -500,9 +472,6 @@ void Masterlist()
Syslog('+', "Allfiles: %ld, %ld MBytes", AllFiles, AllKBytes / 1024);
Syslog('+', "Newfiles: %ld, %ld MBytes", NewFiles, NewKBytes / 1024);
free(sAreas);
#ifndef USE_EXPERIMENT
free(fAreas);
#endif
}