Updated mbsebbs for new fdb code
This commit is contained in:
parent
0a4722b5cc
commit
17ab344dee
@ -41,6 +41,8 @@ v0.51.4 11-Apr-2004
|
||||
Fixed a bug that tossed echomail was attempted to post to the
|
||||
ISP newsserver (that didn't accept it).
|
||||
More debug logging info added for double filename announces.
|
||||
Added new experimental files database code which will only be
|
||||
used if configured with --enable-experiment.
|
||||
|
||||
mbfile:
|
||||
The toberep command now logs the toberep.data in the debug
|
||||
@ -52,6 +54,10 @@ v0.51.4 11-Apr-2004
|
||||
Added new experimental files database code which will only be
|
||||
used if configured with --enable-experiment.
|
||||
|
||||
mbaff:
|
||||
Added new experimental files database code which will only be
|
||||
used if configured with --enable-experiment.
|
||||
|
||||
mbnntp:
|
||||
New program, news server to read echomail with a news client.
|
||||
Reading news works, no posts yet.
|
||||
@ -60,6 +66,8 @@ v0.51.4 11-Apr-2004
|
||||
Added loging of virus scanner results.
|
||||
Patches for offline reader programs that create messages with
|
||||
wrong line terminaters (Sempoint).
|
||||
Added new experimental files database code which will only be
|
||||
used if configured with --enable-experiment.
|
||||
|
||||
mbsetup:
|
||||
Added auto setup for message area creation date. Also creates
|
||||
|
@ -119,7 +119,7 @@ depend:
|
||||
# DO NOT DELETE THIS LINE - MAKE DEPEND RELIES ON IT
|
||||
# Dependencies generated by make depend
|
||||
signature.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h signature.h funcs.h input.h language.h timeout.h
|
||||
filesub.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h filesub.h funcs.h language.h input.h misc.h timeout.h exitinfo.h change.h
|
||||
filesub.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/mbsedb.h filesub.h funcs.h language.h input.h misc.h timeout.h exitinfo.h change.h
|
||||
language.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h input.h language.h
|
||||
mbtoberep.o: ../config.h ../lib/mbselib.h
|
||||
msgutil.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/msgtext.h ../lib/msg.h oneline.h msgutil.h
|
||||
@ -147,7 +147,7 @@ pop3.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/mbinet.
|
||||
lastcallers.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h input.h language.h lastcallers.h
|
||||
timeout.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/msg.h timeout.h funcs.h bye.h filesub.h language.h
|
||||
chat.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h chat.h funcs.h input.h language.h misc.h whoson.h
|
||||
file.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h filesub.h file.h funcs.h input.h language.h misc.h timeout.h exitinfo.h whoson.h change.h dispfile.h
|
||||
file.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/mbsedb.h filesub.h file.h funcs.h input.h language.h misc.h timeout.h exitinfo.h whoson.h change.h dispfile.h
|
||||
mbstat.o: ../config.h ../lib/mbselib.h ../lib/users.h ../lib/mbsedb.h mbstat.h
|
||||
misc.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h funcs.h input.h language.h misc.h timeout.h exitinfo.h
|
||||
offline.o: ../config.h ../lib/mbselib.h ../lib/mbse.h ../lib/users.h ../lib/bluewave.h ../lib/msgtext.h ../lib/msg.h mail.h funcs.h input.h language.h file.h filesub.h exitinfo.h timeout.h msgutil.h pop3.h offline.h whoson.h
|
||||
|
197
mbsebbs/file.c
197
mbsebbs/file.c
@ -32,6 +32,7 @@
|
||||
#include "../lib/mbselib.h"
|
||||
#include "../lib/mbse.h"
|
||||
#include "../lib/users.h"
|
||||
#include "../lib/mbsedb.h"
|
||||
#include "filesub.h"
|
||||
#include "file.h"
|
||||
#include "funcs.h"
|
||||
@ -55,6 +56,24 @@ 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)
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* Check long and short filenames, case insensitive
|
||||
*/
|
||||
while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) {
|
||||
if (((strcasecmp(fdb.Name, File)) == 0) || ((strcasecmp(fdb.LName, File)) == 0)) {
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
#else
|
||||
FILE *pFileB;
|
||||
char *sFileArea;
|
||||
|
||||
@ -79,6 +98,7 @@ int CheckFile(char *File, int iArea)
|
||||
}
|
||||
|
||||
fclose(pFileB);
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -89,10 +109,14 @@ int CheckFile(char *File, int iArea)
|
||||
*/
|
||||
void File_List()
|
||||
{
|
||||
FILE *pFile;
|
||||
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);
|
||||
@ -109,18 +133,30 @@ 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;
|
||||
@ -130,7 +166,11 @@ void File_List()
|
||||
SetTag(T);
|
||||
|
||||
if (ShowOneFile() == 1) {
|
||||
#ifdef USE_EXPERIMENT
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
#else
|
||||
fclose(pFile);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
@ -150,7 +190,11 @@ 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();
|
||||
}
|
||||
|
||||
@ -163,7 +207,7 @@ void Download(void)
|
||||
{
|
||||
DIR *dirp;
|
||||
struct dirent *dp;
|
||||
FILE *tf, *fp, *fd;
|
||||
FILE *tf, *fd;
|
||||
int i, err, Count = 0;
|
||||
int OldArea;
|
||||
char *symTo, *symFrom;
|
||||
@ -171,6 +215,11 @@ 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;
|
||||
@ -202,6 +251,15 @@ 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)
|
||||
break;
|
||||
}
|
||||
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)
|
||||
@ -209,6 +267,7 @@ void Download(void)
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (strcmp(fdb.LName, Tag.LFile) == 0) {
|
||||
Syslog('b', "Found file %s in area %d", fdb.LName, Tag.Area);
|
||||
@ -429,6 +488,22 @@ 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)
|
||||
break;
|
||||
}
|
||||
Size += fdb.Size;
|
||||
fdb.TimesDL++;
|
||||
fdb.LastDL = time(NULL);
|
||||
if (mbsedb_LockFDB(fdb_area, 30)) {
|
||||
fseek(fdb_area->fp, - fdbhdr.recsize, SEEK_CUR);
|
||||
fwrite(&fdb, fdbhdr.recsize, 1, fdb_area->fp);
|
||||
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)
|
||||
@ -440,6 +515,7 @@ void Download(void)
|
||||
fseek(fp, - fdbhdr.recsize, SEEK_CUR);
|
||||
fwrite(&fdb, fdbhdr.recsize, 1, fp);
|
||||
fclose(fp);
|
||||
#endif
|
||||
Count++;
|
||||
}
|
||||
} else {
|
||||
@ -563,12 +639,16 @@ void File_RawDir(char *OpData)
|
||||
*/
|
||||
int KeywordScan()
|
||||
{
|
||||
FILE *pAreas, *pFile;
|
||||
FILE *pAreas;
|
||||
int i, z, y, Found, Count = 0;
|
||||
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));
|
||||
@ -612,14 +692,20 @@ 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));
|
||||
|
||||
@ -657,7 +743,11 @@ int KeywordScan()
|
||||
|
||||
} /* while */
|
||||
|
||||
#ifdef USE_EXPERIMENT
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
#else
|
||||
fclose(pFile);
|
||||
#endif
|
||||
if (Found) {
|
||||
Enter(2);
|
||||
if (iLC(2) == 1) {
|
||||
@ -695,12 +785,17 @@ int KeywordScan()
|
||||
*/
|
||||
int FilenameScan()
|
||||
{
|
||||
FILE *pAreas, *pFile;
|
||||
FILE *pAreas;
|
||||
int Found, Count = 0;
|
||||
char mask[256];
|
||||
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;
|
||||
@ -741,14 +836,20 @@ 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);
|
||||
@ -775,7 +876,11 @@ int FilenameScan()
|
||||
|
||||
} /* End of while */
|
||||
|
||||
#ifdef USE_EXPERIMENT
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
#else
|
||||
fclose(pFile);
|
||||
#endif
|
||||
if (Found) {
|
||||
Enter(2);
|
||||
if (iLC(2) == 1) {
|
||||
@ -808,11 +913,16 @@ int FilenameScan()
|
||||
*/
|
||||
int NewfileScan(int AskStart)
|
||||
{
|
||||
FILE *pAreas, *pFile;
|
||||
FILE *pAreas;
|
||||
long ifDate, itDate;
|
||||
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));
|
||||
@ -865,13 +975,20 @@ 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 */
|
||||
@ -891,7 +1008,11 @@ 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;
|
||||
}
|
||||
@ -910,7 +1031,11 @@ 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;
|
||||
}
|
||||
@ -918,8 +1043,12 @@ 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.
|
||||
*/
|
||||
@ -1958,10 +2087,14 @@ void FileArea_List(char *Option)
|
||||
*/
|
||||
void Copy_Home()
|
||||
{
|
||||
FILE *pFile;
|
||||
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));
|
||||
temp2 = calloc(PATH_MAX, sizeof(char));
|
||||
@ -2004,15 +2137,22 @@ void Copy_Home()
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef USE_EXPERIMENT
|
||||
if ((fdb_area = mbsedb_OpenFDB(iAreaNumber, 30)) == NULL) {
|
||||
#else
|
||||
if ((pFile = OpenFileBase(iAreaNumber, FALSE)) == NULL) {
|
||||
free(File);
|
||||
#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;
|
||||
@ -2045,7 +2185,11 @@ void Copy_Home()
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef USE_EXPERIMENT
|
||||
mbsedb_CloseFDB(fdb_area);
|
||||
#else
|
||||
fclose(pFile);
|
||||
#endif
|
||||
|
||||
if (!Found) {
|
||||
colour(CFG.HiliteF, CFG.HiliteB);
|
||||
@ -2188,7 +2332,12 @@ void ViewFile(char *name)
|
||||
{
|
||||
char *File, *temp, *arc;
|
||||
int count, total, rc, found = FALSE;
|
||||
FILE *fp, *pFile;
|
||||
FILE *fp;
|
||||
#ifdef USE_EXPERIMENT
|
||||
struct _fdbarea *fdb_area = NULL;
|
||||
#else
|
||||
FILE *pFile;
|
||||
#endif
|
||||
|
||||
Syslog('+', "ViewFile(%s)", printable(name, 0));
|
||||
|
||||
@ -2250,18 +2399,30 @@ 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);
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "../lib/mbselib.h"
|
||||
#include "../lib/mbse.h"
|
||||
#include "../lib/users.h"
|
||||
#include "../lib/mbsedb.h"
|
||||
#include "filesub.h"
|
||||
#include "funcs.h"
|
||||
#include "language.h"
|
||||
@ -153,6 +154,7 @@ 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;
|
||||
@ -177,7 +179,7 @@ FILE *OpenFileBase(unsigned long Area, int Write)
|
||||
free(FileBase);
|
||||
return pFile;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@ -877,10 +879,15 @@ int ImportFile(char *fn, int Area, int fileid, time_t iTime, off_t Size)
|
||||
*/
|
||||
int Addfile(char *File, int AreaNum, int fileid)
|
||||
{
|
||||
FILE *id, *pFileDB, *pPrivate;
|
||||
FILE *id, *pPrivate;
|
||||
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));
|
||||
@ -888,7 +895,11 @@ 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
|
||||
@ -900,7 +911,11 @@ 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);
|
||||
@ -1065,9 +1080,14 @@ 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)
|
||||
|
@ -2,7 +2,9 @@
|
||||
#define _FILESUB_H
|
||||
|
||||
|
||||
#ifndef USE_EXPERIMENT
|
||||
FILE *OpenFileBase(unsigned long Area, int);
|
||||
#endif
|
||||
FILE *OpenFareas(int);
|
||||
int ForceProtocol(void);
|
||||
int CheckBytesAvailable(long);
|
||||
|
Reference in New Issue
Block a user