Removed safe cracker door

This commit is contained in:
Michiel Broek 2003-02-23 15:55:36 +00:00
parent ced93cb072
commit 84c43b6855
18 changed files with 107 additions and 1049 deletions

View File

@ -14,6 +14,9 @@ v0.37.01 14-Jan-2003.
areas. areas.
After upgrade you may remove ~/etc/maptabs and it's contents. After upgrade you may remove ~/etc/maptabs and it's contents.
After upgrade you may remove ~/etc/bank.data. After upgrade you may remove ~/etc/bank.data.
After upgrade you may remove ~/etc/safe.data.
If you want, download and install the nu-door and safe-door
packages.
general: general:
This version may be used on production systems, but be This version may be used on production systems, but be
@ -32,6 +35,7 @@ v0.37.01 14-Jan-2003.
the html docs. the html docs.
The main Makefile now sets each txtfiles directory to mode 775 The main Makefile now sets each txtfiles directory to mode 775
to allow doors to write ansi/ascii screens. to allow doors to write ansi/ascii screens.
Removed the safe cracker door, this is now external.
nodelist.a: nodelist.a:
Added experimental support for IP nodes lookup using a default Added experimental support for IP nodes lookup using a default
@ -92,6 +96,9 @@ v0.37.01 14-Jan-2003.
Added setup for rules directory. Added setup for rules directory.
Added setup for menu 221. Changed description of menu 103. Added setup for menu 221. Changed description of menu 103.
The menu editor is machine endian independant. The menu editor is machine endian independant.
Removed setup for the safe cracker door.
In menu 8.3 showing long option data lines, the lines were too
long for a 80 characters display.
mbsebbs: mbsebbs:
It will now refuse to up/download OLR packets when the system It will now refuse to up/download OLR packets when the system
@ -123,6 +130,7 @@ v0.37.01 14-Jan-2003.
now only the writer or those with sysop access to the area are now only the writer or those with sysop access to the area are
allowed to delete messages. allowed to delete messages.
Finally wrote Delete Message from the menu (menu 206). Finally wrote Delete Message from the menu (menu 206).
Removed the safe cracker door.
examples: examples:
The English and Dutch templates are updated to show the new The English and Dutch templates are updated to show the new

View File

@ -12,7 +12,7 @@
</HEAD> </HEAD>
<BODY> <BODY>
<BLOCKQUOTE> <BLOCKQUOTE>
<DIV align=right><h5>Last update 02-Feb-2003</h5></DIV> <DIV align=right><h5>Last update 23-Feb-2003</h5></DIV>
<DIV align=center><h1>MBSE BBS Global Menus</h1></DIV> <DIV align=center><h1>MBSE BBS Global Menus</h1></DIV>
<hr> <hr>
@ -160,10 +160,6 @@
even if the display line is empty. In that case an empty line is displayed.<br> even if the display line is empty. In that case an empty line is displayed.<br>
<strong>Optional data:</strong> None.<br> <strong>Optional data:</strong> None.<br>
<P> <P>
<LI value="25"><strong>Safe cracker door:</strong> This runs the Safe Cracker
door.<br>
<strong>Optional data:</strong> None.<br>
</OL> </OL>
<HR> <HR>

View File

@ -78,9 +78,6 @@ struct languagehdr langhdr; /* Language data */
struct language lang; struct language lang;
struct langdata ldata; struct langdata ldata;
struct crackerhdr safehdr; /* Safe cracker structure */
struct cracker safe;
struct _fidonethdr fidonethdr; /* Fidonet structure */ struct _fidonethdr fidonethdr; /* Fidonet structure */
struct _fidonet fidonet; struct _fidonet fidonet;
struct domhdr domainhdr; struct domhdr domainhdr;

View File

@ -49,7 +49,7 @@ typedef enum {IGNORE, CREATE, KILL} ORPHANTYPE;
typedef enum {SEND, RECV, BOTHDIR} NODETYPE; typedef enum {SEND, RECV, BOTHDIR} NODETYPE;
typedef enum {POTS, ISDN, NETWORK, LOCAL} LINETYPE; typedef enum {POTS, ISDN, NETWORK, LOCAL} LINETYPE;
typedef enum {BROWSING, DOWNLOAD, UPLOAD, READ_POST, DOOR, SYSOPCHAT, typedef enum {BROWSING, DOWNLOAD, UPLOAD, READ_POST, DOOR, SYSOPCHAT,
FILELIST, TIMEBANK, SAFE, WHOSON, OLR} DOESTYPE; FILELIST, WHOSON, OLR} DOESTYPE;
typedef enum {I_AVT0, I_ANSI, I_VT52, I_VT100, I_TTY} ITERM; typedef enum {I_AVT0, I_ANSI, I_VT52, I_VT100, I_TTY} ITERM;
typedef enum {I_DZA, I_ZAP, I_ZMO, I_SLK, I_KER} IPROT; typedef enum {I_DZA, I_ZAP, I_ZMO, I_SLK, I_KER} IPROT;
typedef enum {E_NOISP, E_TMPISP, E_PRMISP} EMODE; typedef enum {E_NOISP, E_TMPISP, E_PRMISP} EMODE;
@ -618,16 +618,15 @@ struct sysconfig {
char xNuScreen[50]; /* Obsolete Next User Door */ char xNuScreen[50]; /* Obsolete Next User Door */
char xNuQuote[81]; char xNuQuote[81];
/* Safe Cracker Door */ int xSafeFirstDigit;
int iSafeFirstDigit; /* Safe Door First Digit */ int xSafeSecondDigit;
int iSafeSecondDigit; /* Safe Door Second Digit */ int xSafeThirdDigit;
int iSafeThirdDigit; /* Safe Door Third Digit */ int xSafeMaxTrys;
int iSafeMaxTrys; /* Max trys per day */ int xSafeMaxNumber;
int iSafeMaxNumber; /* Maximum Safe Number */ unsigned xSafeNumGen : 1;
unsigned iSafeNumGen : 1; /* Use number generator */ char xSafePrize[81];
char sSafePrize[81]; /* Safe Prize */ char xSafeWelcome[81];
char sSafeWelcome[81]; /* Safe welcome file */ char xSafeOpened[81];
char sSafeOpened[81]; /* Opended safe file */
/* Sysop Paging */ /* Sysop Paging */
int iPageLength; /* Page Length in Seconds */ int iPageLength; /* Page Length in Seconds */
@ -962,23 +961,6 @@ struct langdata {
/*
* Structure for Safe Cracker Door Data File (safe.data)
*/
struct crackerhdr {
long hdrsize; /* Size of header */
long recsize; /* Size of records */
};
struct cracker {
char Date[12]; /* Date used */
char Name[36]; /* User name */
int Trys; /* Trys today */
unsigned Opened : 1; /* If user succeeded */
};
/* /*
* Fidonet Networks (fidonet.data) * Fidonet Networks (fidonet.data)
*/ */

View File

@ -10,7 +10,7 @@ SRCS = signature.c filesub.c language.c mbtoberep.c \
bye.c funcs.c mail.c \ bye.c funcs.c mail.c \
newuser.c pinfo.c timecheck.c change.c \ newuser.c pinfo.c timecheck.c change.c \
exitinfo.c mball.c mbsebbs.c menu.c pop3.c lastcallers.c \ exitinfo.c mball.c mbsebbs.c menu.c pop3.c lastcallers.c \
safe.c timeout.c chat.c file.c mbchat.c mbstat.c misc.c \ timeout.c chat.c file.c mbchat.c mbstat.c misc.c \
offline.c user.c mbnewusr.c input.c whoson.c \ offline.c user.c mbnewusr.c input.c whoson.c \
door.c dispfile.c userlist.c timestats.c logentry.c door.c dispfile.c userlist.c timestats.c logentry.c
HDRS = signature.h filesub.h language.h mbsebbs.h misc.h offline.h \ HDRS = signature.h filesub.h language.h mbsebbs.h misc.h offline.h \
@ -19,11 +19,11 @@ HDRS = signature.h filesub.h language.h mbsebbs.h misc.h offline.h \
funcs.h mail.h mbuser.h page.h \ funcs.h mail.h mbuser.h page.h \
change.h exitinfo.h mball.h newuser.h \ change.h exitinfo.h mball.h newuser.h \
pinfo.h chat.h file.h menu.h \ pinfo.h chat.h file.h menu.h \
pop3.h safe.h timecheck.h mbnewusr.h input.h whoson.h \ pop3.h timecheck.h mbnewusr.h input.h whoson.h \
door.h dispfile.h userlist.h timestats.h logentry.h lastcallers.h door.h dispfile.h userlist.h timestats.h logentry.h lastcallers.h
MBSEBBS_OBJS = signature.o bbslist.o chat.o file.o funcs.o mail.o menu.o \ MBSEBBS_OBJS = signature.o bbslist.o chat.o file.o funcs.o mail.o menu.o \
misc.o pinfo.o oneline.o page.o fsedit.o \ misc.o pinfo.o oneline.o page.o fsedit.o \
bye.o change.o mbsebbs.o safe.o timeout.o user.o timecheck.o \ bye.o change.o mbsebbs.o timeout.o user.o timecheck.o \
exitinfo.o filesub.o lineedit.o offline.o language.o msgutil.o \ exitinfo.o filesub.o lineedit.o offline.o language.o msgutil.o \
pop3.o email.o input.o whoson.o door.o dispfile.o userlist.o timestats.o \ pop3.o email.o input.o whoson.o door.o dispfile.o userlist.o timestats.o \
logentry.o morefile.o lastcallers.o logentry.o morefile.o lastcallers.o
@ -158,10 +158,9 @@ change.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/struc
exitinfo.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h funcs.h input.h language.h oneline.h misc.h bye.h timeout.h timecheck.h exitinfo.h exitinfo.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h funcs.h input.h language.h oneline.h misc.h bye.h timeout.h timecheck.h exitinfo.h
mball.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/mbse.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/dbcfg.h ../lib/clcomm.h ../lib/mberrors.h mball.h mball.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/mbse.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/dbcfg.h ../lib/clcomm.h ../lib/mberrors.h mball.h
mbsebbs.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h ../lib/mberrors.h mbsebbs.h user.h dispfile.h language.h menu.h misc.h bye.h timeout.h funcs.h mbsebbs.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h ../lib/mberrors.h mbsebbs.h user.h dispfile.h language.h menu.h misc.h bye.h timeout.h funcs.h
menu.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mberrors.h oneline.h mail.h bbslist.h change.h chat.h file.h funcs.h input.h misc.h safe.h timeout.h menu.h page.h pinfo.h bye.h timecheck.h whoson.h language.h offline.h email.h door.h dispfile.h userlist.h timestats.h logentry.h morefile.h lastcallers.h signature.h menu.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mberrors.h oneline.h mail.h bbslist.h change.h chat.h file.h funcs.h input.h misc.h timeout.h menu.h page.h pinfo.h bye.h timecheck.h whoson.h language.h offline.h email.h door.h dispfile.h userlist.h timestats.h logentry.h morefile.h lastcallers.h signature.h
pop3.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mbinet.h ../lib/msgtext.h ../lib/msg.h msgutil.h pop3.h pop3.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mbinet.h ../lib/msgtext.h ../lib/msg.h msgutil.h pop3.h
lastcallers.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h input.h language.h lastcallers.h lastcallers.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h input.h language.h lastcallers.h
safe.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h whoson.h dispfile.h input.h misc.h safe.h timeout.h language.h
timeout.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h timeout.h funcs.h bye.h filesub.h language.h timeout.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h timeout.h funcs.h bye.h filesub.h language.h
chat.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h chat.h funcs.h input.h language.h misc.h whoson.h chat.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h chat.h funcs.h input.h language.h misc.h whoson.h
file.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h filesub.h file.h funcs.h input.h language.h misc.h timeout.h exitinfo.h whoson.h change.h file.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/mbse.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h filesub.h file.h funcs.h input.h language.h misc.h timeout.h exitinfo.h whoson.h change.h

View File

@ -47,7 +47,6 @@
#include "funcs.h" #include "funcs.h"
#include "input.h" #include "input.h"
#include "misc.h" #include "misc.h"
#include "safe.h"
#include "timeout.h" #include "timeout.h"
#include "menu.h" #include "menu.h"
#include "page.h" #include "page.h"
@ -410,13 +409,6 @@ void DoMenu(int Type)
/* display menuline only */ /* display menuline only */
break; break;
/* Menus 22, 23 and 24 were obsolete doors */
case 25:
/* safe cracker door */
Safe();
break;
case 101: case 101:
FileArea_List(menus.OptionalData); FileArea_List(menus.OptionalData);
break; break;

View File

@ -1,468 +0,0 @@
/*****************************************************************************
*
* $Id$
* Purpose ...............: Safe Door
*
*****************************************************************************
* Copyright (C) 1997-2002
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
* 1971 BV IJmuiden
* the Netherlands
*
* This file is part of MBSE BBS.
*
* This BBS is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* MBSE BBS is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MBSE BBS; see the file COPYING. If not, write to the Free
* Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*****************************************************************************/
#include "../config.h"
#include "../lib/libs.h"
#include "../lib/memwatch.h"
#include "../lib/mbse.h"
#include "../lib/structs.h"
#include "../lib/users.h"
#include "../lib/records.h"
#include "../lib/clcomm.h"
#include "../lib/common.h"
#include "whoson.h"
#include "dispfile.h"
#include "input.h"
#include "misc.h"
#include "safe.h"
#include "timeout.h"
#include "language.h"
FILE *pSafe;
int iLoop, iFirst, iSecond, iThird;
char sFirst[4], sSecond[4], sThird[4];
int cracked;
int tries;
int getdigits(void);
int SafeCheckUser(int);
void Safe(void)
{
long isize;
int i;
isize = sizeof(int);
srand(Time_Now);
cracked = FALSE;
tries = 0;
WhosDoingWhat(SAFE);
Syslog('+', "User starts Safe Cracker Door");
Enter(1);
/* Safe Cracker Door */
pout(WHITE, BLACK, (char *) Language(86));
Enter(1);
clear();
DisplayFile(CFG.sSafeWelcome);
if (SafeCheckUser(TRUE) == TRUE)
return;
/* In the safe lies */
pout(WHITE, BLACK, (char *) Language(87));
fflush(stdout);
alarm_on();
Getone();
clear();
Enter(2);
pout(LIGHTGREEN, BLACK, (char *) Language(88));
Enter(2);
colour(LIGHTMAGENTA, BLACK);
printf("%s", CFG.sSafePrize);
Enter(2);
/* Do you want to open the safe ? [Y/n]: */
pout(WHITE, BLACK, (char *) Language(102));
fflush(stdout);
alarm_on();
i = toupper(Getone());
if (i == Keystroke(102, 1)) {
Syslog('+', "User exited Safe Cracker Door");
return;
}
/*
* Loop until the safe is opened, maximum trys
* exceeded or the user is tired of this door.
*/
while (TRUE) {
/* Get digits, TRUE if safe cracked. */
if (getdigits() == TRUE) {
SafeCheckUser(FALSE);
break;
}
Enter(1);
/* Do you want to try again ? [Y/n]: */
pout(LIGHTRED, BLACK, (char *) Language(101));
fflush(stdout);
alarm_on();
i = toupper(Getone());
if (i == Keystroke(101, 1)) {
SafeCheckUser(FALSE);
break;
}
if (SafeCheckUser(FALSE) == TRUE)
break;
}
Syslog('+', "User exited Safe Cracker Door");
}
/*
* Ask use for digits, returns TRUE if the safe is cracked.
*/
int getdigits(void)
{
int i;
char temp[81];
colour(WHITE, BLACK);
/* Please enter three numbers consisting from 1 to */
printf("\n\n%s%d\n", (char *) Language(89), CFG.iSafeMaxNumber);
/* Please enter three combinations. */
printf("%s", (char *) Language(90));
while (TRUE) {
Enter(2);
/* 1st Digit */
pout(LIGHTRED, BLACK, (char *) Language(91));
colour(LIGHTBLUE, BLACK);
fflush(stdout);
Getnum(sFirst, 2);
sprintf(temp, "1st: %s", sFirst);
if((strcmp(sFirst, "")) != 0) {
iFirst=atoi(sFirst);
}
if((iFirst > CFG.iSafeMaxNumber) || (iFirst <= 0) || (strcmp(sFirst, "") == 0)) {
colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.", (char *) Language(92), CFG.iSafeMaxNumber);
} else
break;
}
while (TRUE) {
Enter(1);
/* 2nd digit: */
pout(LIGHTRED, BLACK, (char *) Language(93));
colour(LIGHTBLUE, BLACK);
fflush(stdout);
Getnum(sSecond, 2);
sprintf(temp, "2nd: %s", sSecond);
if((strcmp(sSecond, "")) != 0) {
iSecond=atoi(sSecond);
}
if((iSecond > CFG.iSafeMaxNumber) || (iSecond <= 0) || (strcmp(sSecond, "") == 0)) {
colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber);
} else
break;
}
while (TRUE) {
Enter(1);
pout(LIGHTRED, BLACK, (char *) Language(94));
colour(LIGHTBLUE, BLACK);
fflush(stdout);
Getnum(sThird, 2);
sprintf(temp, "3rd: %s", sThird);
if((strcmp(sThird, "")) != 0) {
iThird=atoi(sThird);
}
if((iThird > CFG.iSafeMaxNumber) || (iThird <= 0) || (strcmp(sThird, "") == 0)) {
colour(WHITE, BLUE);
/* Please try again! You must input a number greater than Zero and less than */
printf("\n%s%d.\n", (char *) Language(92), CFG.iSafeMaxNumber);
} else
break;
}
/* Left: */
Enter(1);
pout(LIGHTRED, BLACK, (char *) Language(95));
poutCR(LIGHTBLUE, BLACK, sFirst);
/* Right: */
pout(LIGHTRED, BLACK, (char *) Language(96));
poutCR(LIGHTBLUE, BLACK, sSecond);
/* Left: */
pout(LIGHTRED, BLACK, (char *) Language(95));
poutCR(LIGHTBLUE, BLACK, sThird);
Enter(1);
/* Attempt to open safe with this combination [Y/n]: */
pout(LIGHTRED, BLACK, (char *) Language(97));
fflush(stdout);
alarm_on();
i = toupper(Getone());
sprintf(temp, "%c", i);
if ((i == Keystroke(97, 0)) || (i == 13)) {
printf("\n\n");
tries++;
Syslog('+', "Attempt %d with combination %d %d %d", tries, iFirst, iSecond, iThird);
/* Left: */
pout(LIGHTRED, BLACK, (char *) Language(95));
for (iLoop = 0; iLoop < iFirst; iLoop++) {
pout(YELLOW, BLACK, (char *)".");
fflush(stdout);
usleep(100000);
}
poutCR(LIGHTBLUE, BLACK, sFirst);
/* Right: */
pout(LIGHTRED, BLACK, (char *) Language(96));
for (iLoop = 0; iLoop < iSecond; iLoop++) {
pout(YELLOW, BLACK, (char *)".");
fflush(stdout);
usleep(100000);
}
poutCR(LIGHTBLUE, BLACK, sSecond);
/* Left: */
pout(LIGHTRED, BLACK, (char *) Language(95));
for (iLoop = 0; iLoop < iThird; iLoop++) {
pout(YELLOW, BLACK, (char *)".");
fflush(stdout);
usleep(100000);
}
poutCR(LIGHTBLUE, BLACK, sThird);
if(CFG.iSafeNumGen) {
CFG.iSafeFirstDigit = (rand() % CFG.iSafeMaxNumber) + 1;
CFG.iSafeSecondDigit = (rand() % CFG.iSafeMaxNumber) + 1;
CFG.iSafeThirdDigit = (rand() % CFG.iSafeMaxNumber) + 1;
}
if ((CFG.iSafeFirstDigit == iFirst) && (CFG.iSafeSecondDigit == iSecond) && (CFG.iSafeThirdDigit == iThird)) {
DisplayFile(CFG.sSafeOpened);
cracked = TRUE;
Enter(1);
/* You have won the following... */
pout(LIGHTRED, BLACK, (char *) Language(98));
Enter(2);
poutCR(LIGHTMAGENTA, BLACK, CFG.sSafePrize);
Enter(1);
Syslog('!', "User opened Safe Cracker Door");
Pause();
return TRUE;
}
Enter(1);
pout(LIGHTGREEN, BLACK, (char *) Language(99));
Enter(1);
if(CFG.iSafeNumGen) {
Enter(1);
/* The safe code was: */
pout(LIGHTRED, BLACK, (char *) Language(100));
Enter(2);
colour(LIGHTRED, BLACK);
/* Left: */
printf("%s%d\n", (char *) Language(95), CFG.iSafeFirstDigit);
/* Right */
printf("%s%d\n", (char *) Language(96), CFG.iSafeSecondDigit);
/* Left */
printf("%s%d\n", (char *) Language(95), CFG.iSafeThirdDigit);
}
Enter(1);
/* Please press key to continue */
pout(LIGHTGREEN, BLACK, (char *) Language(87));
alarm_on();
getchar();
}
return FALSE;
}
/*
* Returns true when safe already cracked or maximum trys exceeded
*/
int SafeCheckUser(int init)
{
char *File, *Name, *Date;
File = calloc(PATH_MAX, sizeof(char));
Name = calloc(50, sizeof(char));
Date = calloc(50, sizeof(char));
sprintf(Name, "%s", exitinfo.sUserName);
sprintf(Date, "%s", (char *) GetDateDMY());
sprintf(File, "%s/etc/safe.data", getenv("MBSE_ROOT"));
if ((pSafe = fopen(File, "r+")) == NULL) {
if ((pSafe = fopen(File, "w")) != NULL) {
safehdr.hdrsize = sizeof(safehdr);
safehdr.recsize = sizeof(safe);
fwrite(&safehdr, sizeof(safehdr), 1, pSafe);
sprintf(safe.Date, "%s", (char *) GetDateDMY());
sprintf(safe.Name, "%s", Name);
safe.Trys = 0;
safe.Opened = FALSE;
fwrite(&safe, sizeof(safe), 1, pSafe);
fclose(pSafe);
chmod(File, 0660);
}
} else {
fread(&safehdr, sizeof(safehdr), 1, pSafe);
/*
* Check if safe already cracked
*/
while (fread(&safe, safehdr.recsize, 1, pSafe) == 1) {
if (safe.Opened) {
fclose(pSafe);
Syslog('+', "Safe is currently LOCKED - exiting door.");
/* THE SAFE IS CURRENTLY LOCKED */
poutCR(WHITE, RED, (char *) Language(103));
Enter(1);
colour(LIGHTRED, BLACK);
/* has cracked the safe. */
printf("%s, %s\n", safe.Name, (char *) Language(104));
/* The safe will remain locked until the sysop rewards the user. */
pout(LIGHTGREEN, BLACK, (char *) Language(105));
Enter(2);
Pause();
free(File);
free(Name);
free(Date);
return TRUE;
}
}
fseek(pSafe, safehdr.hdrsize, SEEK_SET);
/*
* Check if this user is already in the database
*/
while (fread(&safe, safehdr.recsize, 1, pSafe) == 1) {
if ((strcmp(Name, safe.Name)) == 0) {
if ((strcmp(Date, safe.Date)) != 0) {
/*
* User found, but last time used is not today.
* Reset this user.
*/
fseek(pSafe, - safehdr.recsize, SEEK_CUR);
sprintf(safe.Date, "%s", (char *) GetDateDMY());
safe.Trys = 0;
tries = 0;
safe.Opened = FALSE;
fwrite(&safe, safehdr.recsize, 1, pSafe);
fclose(pSafe);
free(File);
free(Name);
free(Date);
return FALSE;
} else {
/*
* User found, last time is today, check attempts
*/
fseek(pSafe, - safehdr.recsize, SEEK_CUR);
if (init)
tries = safe.Trys;
else {
safe.Trys = tries;
}
safe.Opened = cracked;
fwrite(&safe, safehdr.recsize, 1, pSafe);
fclose(pSafe);
free(File);
free(Name);
free(Date);
if (safe.Trys >= CFG.iSafeMaxTrys) {
Syslog('+', "Maximum trys per day exceeded");
Enter(2);
/* Maximum trys per day exceeded */
pout(WHITE, BLACK, (char *) Language(106));
Enter(1);
sleep(3);
return TRUE;
}
return FALSE;
}
}
}
/*
* User not found, append new record
*/
fclose(pSafe);
if ((pSafe = fopen(File, "a")) == NULL) {
WriteError("Can't append to %s", File);
free(File);
free(Name);
free(Date);
return TRUE;
}
fseek(pSafe, 0, SEEK_END);
memset(&safe, 0, sizeof(safe));
sprintf(safe.Date, "%s", (char *) GetDateDMY());
sprintf(safe.Name, "%s", Name);
safe.Trys = 0;
safe.Opened = FALSE;
tries = 0;
fwrite(&safe, sizeof(safe), 1, pSafe);
fclose(pSafe);
Syslog('+', "Append new safe.data record");
}
free(File);
free(Name);
free(Date);
return FALSE;
}

View File

@ -1,11 +0,0 @@
/* safe.h */
#ifndef _SAFE_H
#define _SAFE_H
void Safe(void);
#endif

View File

@ -238,14 +238,6 @@ void WhosDoingWhat(int iStatus)
case FILELIST: strcpy(temp, "List Files"); case FILELIST: strcpy(temp, "List Files");
break; break;
case TIMEBANK: strcpy(temp, "Time Bank");
LC_Door = TRUE;
break;
case SAFE: strcpy(temp, "Safe Cracker");
LC_Door = TRUE;
break;
case WHOSON: strcpy(temp, "View Whoson List"); case WHOSON: strcpy(temp, "View Whoson List");
break; break;

View File

@ -9,19 +9,19 @@ SRCS = grlist.c m_domain.c m_fgroup.c m_lang.c m_marea.c m_new.c \
m_limits.c m_menu.c m_ngroup.c m_service.c m_tty.c mutil.c m_archive.c \ m_limits.c m_menu.c m_ngroup.c m_service.c m_tty.c mutil.c m_archive.c \
m_fdb.c m_global.c m_magic.c m_mgroup.c m_node.c m_task.c m_users.c \ m_fdb.c m_global.c m_magic.c m_mgroup.c m_node.c m_task.c m_users.c \
screen.c m_bbs.c m_ff.c m_hatch.c m_mail.c m_modem.c m_ol.c m_tic.c \ screen.c m_bbs.c m_ff.c m_hatch.c m_mail.c m_modem.c m_ol.c m_tic.c \
m_virus.c stlist.c m_bbslist.c m_safe.c m_route.c m_virus.c stlist.c m_bbslist.c m_route.c
HDRS = grlist.h m_domain.h m_fgroup.h m_lang.h m_marea.h m_new.h m_protocol.h \ HDRS = grlist.h m_domain.h m_fgroup.h m_lang.h m_marea.h m_new.h m_protocol.h \
m_ticarea.h mutil.h ledit.h m_farea.h m_fido.h m_limits.h m_menu.h \ m_ticarea.h mutil.h ledit.h m_farea.h m_fido.h m_limits.h m_menu.h \
m_ngroup.h m_service.h m_tty.h screen.h m_archive.h m_fdb.h m_global.h \ m_ngroup.h m_service.h m_tty.h screen.h m_archive.h m_fdb.h m_global.h \
m_magic.h m_mgroup.h m_node.h m_task.h m_users.h stlist.h m_bbs.h m_ff.h \ m_magic.h m_mgroup.h m_node.h m_task.h m_users.h stlist.h m_bbs.h m_ff.h \
m_hatch.h m_mail.h m_modem.h m_ol.h m_tic.h m_virus.h m_bbslist.h m_safe.h \ m_hatch.h m_mail.h m_modem.h m_ol.h m_tic.h m_virus.h m_bbslist.h \
m_route.h m_route.h
OBJS = grlist.o m_domain.o m_fgroup.o m_lang.o m_marea.o m_new.o m_protocol.o \ OBJS = grlist.o m_domain.o m_fgroup.o m_lang.o m_marea.o m_new.o m_protocol.o \
m_ticarea.o mbsetup.o ledit.o m_farea.o m_fido.o m_limits.o m_menu.o \ m_ticarea.o mbsetup.o ledit.o m_farea.o m_fido.o m_limits.o m_menu.o \
m_ngroup.o m_service.o m_tty.o mutil.o m_archive.o m_fdb.o m_global.o \ m_ngroup.o m_service.o m_tty.o mutil.o m_archive.o m_fdb.o m_global.o \
m_magic.o m_mgroup.o m_node.o m_task.o m_users.o screen.o m_bbs.o m_ff.o \ m_magic.o m_mgroup.o m_node.o m_task.o m_users.o screen.o m_bbs.o m_ff.o \
m_hatch.o m_mail.o m_modem.o m_ol.o m_tic.o m_virus.o stlist.o m_bbslist.o \ m_hatch.o m_mail.o m_modem.o m_ol.o m_tic.o m_virus.o stlist.o m_bbslist.o \
m_safe.o m_route.o m_route.o
LIBS += ../lib/libmemwatch.a ../lib/libclcomm.a ../lib/libcommon.a ../lib/libmsgbase.a ../lib/libdbase.a LIBS += ../lib/libmemwatch.a ../lib/libclcomm.a ../lib/libcommon.a ../lib/libmsgbase.a ../lib/libdbase.a
OTHER = Makefile OTHER = Makefile
@ -80,7 +80,7 @@ m_marea.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/u
m_new.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h grlist.h m_new.h m_lang.h m_marea.h m_ngroup.h m_new.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h grlist.h m_new.h m_lang.h m_marea.h m_ngroup.h
m_protocol.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_protocol.h m_protocol.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_protocol.h
m_ticarea.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.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 m_ticarea.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.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/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mberrors.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_safe.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 mbsetup.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/mberrors.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/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h screen.h mutil.h ledit.h ledit.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h ../lib/msg.h screen.h mutil.h ledit.h
m_farea.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.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/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.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/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h m_fido.h m_fido.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h m_fido.h
@ -99,7 +99,7 @@ m_node.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/us
m_task.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_task.h m_task.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_task.h
m_users.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_lang.h m_global.h m_archive.h m_protocol.h m_users.h m_users.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_lang.h m_global.h m_archive.h m_protocol.h m_users.h
screen.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/ansi.h ../lib/common.h ../lib/clcomm.h screen.h screen.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/ansi.h ../lib/common.h ../lib/clcomm.h screen.h
m_bbs.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/common.h screen.h mutil.h ledit.h m_lang.h m_protocol.h m_ol.h m_fgroup.h m_farea.h m_menu.h m_safe.h m_bbs.h m_bbslist.h m_limits.h m_bbs.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/common.h screen.h mutil.h ledit.h m_lang.h m_protocol.h m_ol.h m_fgroup.h m_farea.h m_menu.h m_bbs.h m_bbslist.h m_limits.h
m_ff.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h screen.h mutil.h ledit.h stlist.h m_global.h m_ff.h m_lang.h m_marea.h m_ff.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h screen.h mutil.h ledit.h stlist.h m_global.h m_ff.h m_lang.h m_marea.h
m_hatch.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h m_fgroup.h m_ticarea.h m_hatch.h m_hatch.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h m_fgroup.h m_ticarea.h m_hatch.h
m_mail.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h screen.h mutil.h ledit.h m_global.h m_marea.h m_mgroup.h m_mail.h m_mail.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h screen.h mutil.h ledit.h m_global.h m_marea.h m_mgroup.h m_mail.h
@ -109,6 +109,5 @@ m_tic.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/com
m_virus.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_virus.h m_virus.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/clcomm.h ../lib/common.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_virus.h
stlist.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/common.h ../lib/clcomm.h stlist.h stlist.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/common.h ../lib/clcomm.h stlist.h
m_bbslist.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_global.h m_bbslist.h m_bbslist.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_global.h m_bbslist.h
m_safe.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h m_global.h m_safe.h
m_route.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h grlist.h m_node.h m_route.h m_route.o: ../config.h ../lib/libs.h ../lib/memwatch.h ../lib/structs.h ../lib/users.h ../lib/records.h ../lib/common.h ../lib/clcomm.h screen.h mutil.h ledit.h stlist.h m_global.h grlist.h m_node.h m_route.h
# End of generated dependencies # End of generated dependencies

View File

@ -2087,8 +2087,6 @@ char *getmenutype(int val)
case 20: return (char *)"Display .A?? file with Enter"; case 20: return (char *)"Display .A?? file with Enter";
case 21: return (char *)"Display Text Only"; case 21: return (char *)"Display Text Only";
case 25: return (char *)"Safe cracker door";
case 101: return (char *)"Select new file area"; case 101: return (char *)"Select new file area";
case 102: return (char *)"List files in current area"; case 102: return (char *)"List files in current area";
case 103: return (char *)"View file contents"; case 103: return (char *)"View file contents";

View File

@ -42,7 +42,6 @@
#include "m_fgroup.h" #include "m_fgroup.h"
#include "m_farea.h" #include "m_farea.h"
#include "m_menu.h" #include "m_menu.h"
#include "m_safe.h"
#include "m_bbs.h" #include "m_bbs.h"
#include "m_bbslist.h" #include "m_bbslist.h"
#include "m_limits.h" #include "m_limits.h"
@ -64,9 +63,8 @@ void bbs_menu(void)
mvprintw(11, 6, "5. Edit Transfer Protocols"); mvprintw(11, 6, "5. Edit Transfer Protocols");
mvprintw(12, 6, "6. Edit BBS List Data"); mvprintw(12, 6, "6. Edit BBS List Data");
mvprintw(13, 6, "7. Edit Oneliners"); mvprintw(13, 6, "7. Edit Oneliners");
mvprintw(14, 6, "8. Edit Safecracker Data");
switch(select_menu(8)) { switch(select_menu(7)) {
case 0: return; case 0: return;
case 1: EditLimits(); case 1: EditLimits();
@ -89,9 +87,6 @@ void bbs_menu(void)
case 7: ol_menu(); case 7: ol_menu();
break; break;
case 8: EditSafe();
break;
} }
} }
} }

View File

@ -545,55 +545,11 @@ void e_colors(void)
void e_safe_door(void)
{
clr_index();
set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.9 EDIT SAFE DOOR");
set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Digit 1");
mvprintw( 8, 2, "2. Digit 2");
mvprintw( 9, 2, "3. Digit 3");
mvprintw(10, 2, "4. Max trys");
mvprintw(11, 2, "5. Max numb");
mvprintw(12, 2, "6. Num gen");
mvprintw(13, 2, "7. Prize");
mvprintw(14, 2, "8. Welcome");
mvprintw(15, 2, "9. Opened");
for (;;) {
set_color(WHITE, BLACK);
show_int( 7,16, CFG.iSafeFirstDigit);
show_int( 8,16, CFG.iSafeSecondDigit);
show_int( 9,16, CFG.iSafeThirdDigit);
show_int(10,16, CFG.iSafeMaxTrys);
show_int(11,16, CFG.iSafeMaxNumber);
show_bool(12,16, CFG.iSafeNumGen);
show_str(13,16,64, CFG.sSafePrize);
show_str(14,16,64, CFG.sSafeWelcome);
show_str(15,16,64, CFG.sSafeOpened);
switch(select_menu(9)) {
case 0: return;
case 1: E_INT( 7,16, CFG.iSafeFirstDigit, "Enter ^first^ digit of the safe")
case 2: E_INT( 8,16, CFG.iSafeSecondDigit, "Enter ^second^ digit of the safe")
case 3: E_INT( 9,16, CFG.iSafeThirdDigit, "Enter ^third^ digit of the safe")
case 4: E_INT( 10,16, CFG.iSafeMaxTrys, "Maximum ^trys^ per day")
case 5: E_INT( 11,16, CFG.iSafeMaxNumber, "^Maximum number^ of each digit")
case 6: E_BOOL(12,16, CFG.iSafeNumGen, "^Automatic^ number generation")
case 7: E_STR( 13,16,64, CFG.sSafePrize, "The ^prize^ the user wins when he opens the safe")
case 8: E_STR( 14,16,64, CFG.sSafeWelcome, "The ^welcome^ screen for the safe door")
case 9: E_STR( 15,16,64, CFG.sSafeOpened, "The file to display when the safe is ^opened^")
}
};
}
void e_paging(void) void e_paging(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.10 EDIT SYSOP PAGING"); mvprintw( 5, 2, "1.9 EDIT SYSOP PAGING");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Ext. Chat"); mvprintw( 7, 2, "1. Ext. Chat");
mvprintw( 8, 2, "2. Chat Device"); mvprintw( 8, 2, "2. Chat Device");
@ -697,7 +653,7 @@ void e_flags(int Users)
if (Users) if (Users)
mvprintw( 5, 6, "1.6 EDIT USER FLAG DESCRIPTIONS"); mvprintw( 5, 6, "1.6 EDIT USER FLAG DESCRIPTIONS");
else else
mvprintw( 5, 6, "1.18 EDIT MANAGER FLAG DESCRIPTIONS"); mvprintw( 5, 6, "1.17 EDIT MANAGER FLAG DESCRIPTIONS");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
for (i = 0; i < 32; i++) { for (i = 0; i < 32; i++) {
@ -767,7 +723,7 @@ void e_ticconf(void)
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 6, "1.11 EDIT FILEECHO PROCESSING"); mvprintw( 5, 6, "1.10 EDIT FILEECHO PROCESSING");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Keep days"); mvprintw( 7, 2, "1. Keep days");
@ -859,7 +815,7 @@ void s_fidomailcfg(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 5, "1.12 EDIT FIDONET MAIL AND ECHOMAIL PROCESSING"); mvprintw( 5, 5, "1.11 EDIT FIDONET MAIL AND ECHOMAIL PROCESSING");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Badboard"); mvprintw( 7, 2, "1. Badboard");
mvprintw( 8, 2, "2. Dupeboard"); mvprintw( 8, 2, "2. Dupeboard");
@ -967,7 +923,7 @@ void s_intmailcfg(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 5, "1.13 EDIT INTERNET MAIL AND NEWS PROCESSING"); mvprintw( 5, 5, "1.12 EDIT INTERNET MAIL AND NEWS PROCESSING");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. POP3 node"); mvprintw( 7, 2, "1. POP3 node");
mvprintw( 8, 2, "2. SMTP node"); mvprintw( 8, 2, "2. SMTP node");
@ -1036,7 +992,7 @@ void e_uucp(void)
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 6, "1.13 EDIT UUCP GATEWAY"); mvprintw( 5, 6, "1.12 EDIT UUCP GATEWAY");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 6, "1. Zone"); mvprintw( 7, 6, "1. Zone");
mvprintw( 8, 6, "2. Net"); mvprintw( 8, 6, "2. Net");
@ -1090,7 +1046,7 @@ void e_intmailcfg(void)
case 6: E_STR( 12,16,15, CFG.nntpuser, "The ^Username^ for the NNTP server if needed.") case 6: E_STR( 12,16,15, CFG.nntpuser, "The ^Username^ for the NNTP server if needed.")
case 7: E_STR( 13,16,15, CFG.nntppass, "The ^Password^ for the NNTP server if needed.") case 7: E_STR( 13,16,15, CFG.nntppass, "The ^Password^ for the NNTP server if needed.")
case 8: E_INT( 14,16, CFG.nntpdupes, "The number of ^dupes^ to store in the news articles dupes database.") case 8: E_INT( 14,16, CFG.nntpdupes, "The number of ^dupes^ to store in the news articles dupes database.")
case 9: tmp = PickAka((char *)"1.15.9", FALSE); case 9: tmp = PickAka((char *)"1.13.9", FALSE);
if (tmp != -1) if (tmp != -1)
CFG.EmailFidoAka = CFG.aka[tmp]; CFG.EmailFidoAka = CFG.aka[tmp];
s_intmailcfg(); s_intmailcfg();
@ -1120,7 +1076,7 @@ void s_newfiles(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.14 ALLFILES & NEWFILES LISTINGS"); mvprintw( 5, 2, "1.13 ALLFILES & NEWFILES LISTINGS");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. New days"); mvprintw( 7, 2, "1. New days");
mvprintw( 8, 2, "2. Security"); mvprintw( 8, 2, "2. Security");
@ -1143,7 +1099,7 @@ void e_newfiles(void)
switch(select_menu(3)) { switch(select_menu(3)) {
case 0: return; case 0: return;
case 1: E_INT(7,16, CFG.newdays, "Add files younger than this in newfiles report.") case 1: E_INT(7,16, CFG.newdays, "Add files younger than this in newfiles report.")
case 2: E_SEC(8,16, CFG.security, "1.16 NEWFILES REPORTS SECURITY", s_newfiles) case 2: E_SEC(8,16, CFG.security, "1.13 NEWFILES REPORTS SECURITY", s_newfiles)
case 3: temp = CFG.new_groups; case 3: temp = CFG.new_groups;
temp = edit_int( 9, 16, temp, (char *)"The maximum of ^newfiles^ groups in the newfiles database"); temp = edit_int( 9, 16, temp, (char *)"The maximum of ^newfiles^ groups in the newfiles database");
if (temp < CountNewfiles()) { if (temp < CountNewfiles()) {
@ -1311,7 +1267,7 @@ void s_mailer(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.15 EDIT MAILER SETTINGS"); mvprintw( 5, 2, "1.14 EDIT MAILER SETTINGS");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Mailer logl."); mvprintw( 7, 2, "1. Mailer logl.");
mvprintw( 8, 2, "2. Default phone"); mvprintw( 8, 2, "2. Default phone");
@ -1346,7 +1302,7 @@ void e_trans(int start)
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 6, "1.15 EDIT PHONE TRANSLATION"); mvprintw( 5, 6, "1.14 EDIT PHONE TRANSLATION");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 12, "String to match String to replace"); mvprintw( 7, 12, "String to match String to replace");
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
@ -1398,7 +1354,7 @@ void e_mailer(void)
switch(select_menu(23)) { switch(select_menu(23)) {
case 0: return; case 0: return;
case 1: E_LOGL(CFG.cico_loglevel, "1.15.1", s_mailer) case 1: E_LOGL(CFG.cico_loglevel, "1.14.1", s_mailer)
case 2: E_STR( 8,23,20,CFG.Phone, "The mailer default ^phone number^ for this system") case 2: E_STR( 8,23,20,CFG.Phone, "The mailer default ^phone number^ for this system")
case 3: E_STR( 9,23,30,CFG.Flags, "The mailer ^TCP/IP capability flags^ for this system") case 3: E_STR( 9,23,30,CFG.Flags, "The mailer ^TCP/IP capability flags^ for this system")
case 4: E_INT( 10,23, CFG.Speed, "The mailer ^default linespeed^ for this system") case 4: E_INT( 10,23, CFG.Speed, "The mailer ^default linespeed^ for this system")
@ -1434,7 +1390,7 @@ void e_ftpd(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.16 EDIT FTPD SETTINGS"); mvprintw( 5, 2, "1.15 EDIT FTPD SETTINGS");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Upload pth"); mvprintw( 7, 2, "1. Upload pth");
mvprintw( 8, 2, "2. Banner msg"); mvprintw( 8, 2, "2. Banner msg");
@ -1510,7 +1466,7 @@ void e_html(void)
{ {
clr_index(); clr_index();
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
mvprintw( 5, 2, "1.17 EDIT HTML SETTINGS"); mvprintw( 5, 2, "1.16 EDIT HTML SETTINGS");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw( 7, 2, "1. Docs root"); mvprintw( 7, 2, "1. Docs root");
mvprintw( 8, 2, "2. Link to ftp"); mvprintw( 8, 2, "2. Link to ftp");
@ -1628,19 +1584,18 @@ void global_menu(void)
mvprintw(12, 6, "6. Edit User flag Descriptions"); mvprintw(12, 6, "6. Edit User flag Descriptions");
mvprintw(13, 6, "7. Edit New Users defaults"); mvprintw(13, 6, "7. Edit New Users defaults");
mvprintw(14, 6, "8. Edit Text Colors"); mvprintw(14, 6, "8. Edit Text Colors");
mvprintw(15, 6, "9. Edit Safe Door"); mvprintw(15, 6, "9. Edit Sysop Paging");
mvprintw(16, 6, "10. Edit Sysop Paging");
mvprintw( 7,46, "11. Edit Files Processing"); mvprintw( 7,46, "10. Edit Files Processing");
mvprintw( 8,46, "12. Edit Fidonet Mail/Echomail"); mvprintw( 8,46, "11. Edit Fidonet Mail/Echomail");
mvprintw( 9,46, "13. Edit Internet Mail/News"); mvprintw( 9,46, "12. Edit Internet Mail/News");
mvprintw(10,46, "14. Edit All-/Newfiles lists"); mvprintw(10,46, "13. Edit All-/Newfiles lists");
mvprintw(11,46, "15. Edit Mailer global setup"); mvprintw(11,46, "14. Edit Mailer global setup");
mvprintw(12,46, "16. Edit Ftp daemon setup"); mvprintw(12,46, "15. Edit Ftp daemon setup");
mvprintw(13,46, "17. Edit HTML pages setup"); mvprintw(13,46, "16. Edit HTML pages setup");
mvprintw(14,46, "18. Edit Mgr flag descriptions"); mvprintw(14,46, "17. Edit Mgr flag descriptions");
switch(select_menu(18)) { switch(select_menu(17)) {
case 0: case 0:
crc1 = 0xffffffff; crc1 = 0xffffffff;
crc1 = upd_crc32((char *)&CFG, crc1, sizeof(CFG)); crc1 = upd_crc32((char *)&CFG, crc1, sizeof(CFG));
@ -1677,33 +1632,30 @@ void global_menu(void)
e_colors(); e_colors();
break; break;
case 9: case 9:
e_safe_door();
break;
case 10:
e_paging(); e_paging();
break; break;
case 11: case 10:
e_ticconf(); e_ticconf();
break; break;
case 12: case 11:
e_fidomailcfg(); e_fidomailcfg();
break; break;
case 13: case 12:
e_intmailcfg(); e_intmailcfg();
break; break;
case 14: case 13:
e_newfiles(); e_newfiles();
break; break;
case 15: case 14:
e_mailer(); e_mailer();
break; break;
case 16: case 15:
e_ftpd(); e_ftpd();
break; break;
case 17: case 16:
e_html(); e_html();
break; break;
case 18: case 17:
e_flags(FALSE); e_flags(FALSE);
break; break;
} }
@ -1927,20 +1879,8 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " File description %s on %s\n", get_color(CFG.FiledescF), get_color(CFG.FiledescB)); fprintf(fp, " File description %s on %s\n", get_color(CFG.FiledescF), get_color(CFG.FiledescB));
fprintf(fp, " Message input %s on %s\n", get_color(CFG.MsgInputColourF), get_color(CFG.MsgInputColourB)); fprintf(fp, " Message input %s on %s\n", get_color(CFG.MsgInputColourF), get_color(CFG.MsgInputColourB));
addtoc(fp, toc, 1, 10, page, (char *)"Safecracker door");
fprintf(fp, " Digit nr 1 %d\n", CFG.iSafeFirstDigit);
fprintf(fp, " Digit nr 2 %d\n", CFG.iSafeSecondDigit);
fprintf(fp, " Digit nr 3 %d\n", CFG.iSafeThirdDigit);
fprintf(fp, " Maximum tries %d\n", CFG.iSafeMaxTrys);
fprintf(fp, " Maximum number %d\n", CFG.iSafeMaxNumber);
fprintf(fp, " Show generator %s\n", getboolean(CFG.iSafeNumGen));
fprintf(fp, " Prize %s\n", CFG.sSafePrize);
fprintf(fp, " Safe welcome %s\n", CFG.sSafeWelcome);
fprintf(fp, " Safe opened file %s\n", CFG.sSafeOpened);
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1, 11, page, (char *)"Sysop paging"); addtoc(fp, toc, 1, 10, page, (char *)"Sysop paging");
fprintf(fp, " Ext. Chat program %s\n", CFG.sExternalChat); fprintf(fp, " Ext. Chat program %s\n", CFG.sExternalChat);
fprintf(fp, " Chat device %s\n", CFG.sChatDevice); fprintf(fp, " Chat device %s\n", CFG.sChatDevice);
@ -1964,7 +1904,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Friday %s %s\n", CFG.cStartTime[5], CFG.cStopTime[5]); fprintf(fp, " Friday %s %s\n", CFG.cStartTime[5], CFG.cStopTime[5]);
fprintf(fp, " Saterday %s %s\n", CFG.cStartTime[6], CFG.cStopTime[6]); fprintf(fp, " Saterday %s %s\n", CFG.cStartTime[6], CFG.cStopTime[6]);
addtoc(fp, toc, 1, 12, page, (char *)"Fileecho processing"); addtoc(fp, toc, 1, 11, page, (char *)"Fileecho processing");
fprintf(fp, " Keep days on hold %d\n", CFG.tic_days); fprintf(fp, " Keep days on hold %d\n", CFG.tic_days);
fprintf(fp, " Hatch password %s\n", CFG.hatchpasswd); fprintf(fp, " Hatch password %s\n", CFG.hatchpasswd);
@ -1983,7 +1923,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " FileMgr: pause %s\n", getboolean(CFG.ct_Pause)); fprintf(fp, " FileMgr: pause %s\n", getboolean(CFG.ct_Pause));
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1, 13, page, (char *)"Fidonet Mail and Echomail processing"); addtoc(fp, toc, 1, 12, page, (char *)"Fidonet Mail and Echomail processing");
fprintf(fp, " Max .pkt size %d Kb.\n", CFG.maxpktsize); fprintf(fp, " Max .pkt size %d Kb.\n", CFG.maxpktsize);
fprintf(fp, " Max archive size %d Kb.\n", CFG.maxarcsize); fprintf(fp, " Max archive size %d Kb.\n", CFG.maxarcsize);
@ -2003,7 +1943,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " AreaMgr: passwd %s\n", getboolean(CFG.ca_Passwd)); fprintf(fp, " AreaMgr: passwd %s\n", getboolean(CFG.ca_Passwd));
fprintf(fp, " AreaMgr: pause %s\n", getboolean(CFG.ca_Pause)); fprintf(fp, " AreaMgr: pause %s\n", getboolean(CFG.ca_Pause));
addtoc(fp, toc, 1, 14, page, (char *)"Internet Mail and News processing"); addtoc(fp, toc, 1, 13, page, (char *)"Internet Mail and News processing");
fprintf(fp, " Split messages at %d KBytes\n", CFG.new_split); fprintf(fp, " Split messages at %d KBytes\n", CFG.new_split);
fprintf(fp, " Force split at %d KBytes\n", CFG.new_force); fprintf(fp, " Force split at %d KBytes\n", CFG.new_force);
@ -2029,14 +1969,14 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Allow control msgs %s\n", getboolean(CFG.allowcontrol)); fprintf(fp, " Allow control msgs %s\n", getboolean(CFG.allowcontrol));
fprintf(fp, " Don't regate msgs %s\n", getboolean(CFG.dontregate)); fprintf(fp, " Don't regate msgs %s\n", getboolean(CFG.dontregate));
addtoc(fp, toc, 1, 15, page, (char *)"Newfile reports"); addtoc(fp, toc, 1, 14, page, (char *)"Newfile reports");
fprintf(fp, " New files days %d\n", CFG.newdays); fprintf(fp, " New files days %d\n", CFG.newdays);
fprintf(fp, " Highest sec. level %s\n", get_secstr(CFG.security)); fprintf(fp, " Highest sec. level %s\n", get_secstr(CFG.security));
fprintf(fp, " Max. newfile grps %ld\n", CFG.new_groups); fprintf(fp, " Max. newfile grps %ld\n", CFG.new_groups);
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1, 16, page, (char *)"Mailer setup"); addtoc(fp, toc, 1, 15, page, (char *)"Mailer setup");
p = getloglevel(CFG.cico_loglevel); p = getloglevel(CFG.cico_loglevel);
fprintf(fp, " Mailer loglevel %s\n", p); fprintf(fp, " Mailer loglevel %s\n", p);
@ -2063,7 +2003,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Translate %-20s %s\n", CFG.phonetrans[i].match, CFG.phonetrans[i].repl); fprintf(fp, " Translate %-20s %s\n", CFG.phonetrans[i].match, CFG.phonetrans[i].repl);
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1, 17, page, (char *)"FTP server setup"); addtoc(fp, toc, 1, 16, page, (char *)"FTP server setup");
fprintf(fp, " Connections limit %d\n", CFG.ftp_limit); fprintf(fp, " Connections limit %d\n", CFG.ftp_limit);
fprintf(fp, " Login fails %d\n", CFG.ftp_loginfails); fprintf(fp, " Login fails %d\n", CFG.ftp_loginfails);
@ -2083,7 +2023,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Path filter %s\n", CFG.ftp_pth_filter); fprintf(fp, " Path filter %s\n", CFG.ftp_pth_filter);
fprintf(fp, " Path message %s\n", CFG.ftp_pth_message); fprintf(fp, " Path message %s\n", CFG.ftp_pth_message);
addtoc(fp, toc, 1, 18, page, (char *)"WWW server setup"); addtoc(fp, toc, 1, 17, page, (char *)"WWW server setup");
fprintf(fp, " HTML root %s\n", CFG.www_root); fprintf(fp, " HTML root %s\n", CFG.www_root);
fprintf(fp, " Link to FTP base %s\n", CFG.www_link2ftp); fprintf(fp, " Link to FTP base %s\n", CFG.www_link2ftp);
@ -2094,7 +2034,7 @@ int global_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " File per webpage %d\n", CFG.www_files_page); fprintf(fp, " File per webpage %d\n", CFG.www_files_page);
page = newpage(fp, page); page = newpage(fp, page);
addtoc(fp, toc, 1,19, page, (char *)"Manager flag descriptions"); addtoc(fp, toc, 1,18, page, (char *)"Manager flag descriptions");
fprintf(fp, " 1 1 2 2 3 3\n"); fprintf(fp, " 1 1 2 2 3 3\n");
fprintf(fp, " 1 5 0 5 0 5 0 2\n"); fprintf(fp, " 1 5 0 5 0 5 0 2\n");
fprintf(fp, " --------------------------------\n"); fprintf(fp, " --------------------------------\n");

View File

@ -136,13 +136,13 @@ void Show_A_Menu(void)
S_COL(15,16, "Normal display color", le_int(menus.ForeGnd), le_int(menus.BackGnd)) S_COL(15,16, "Normal display color", le_int(menus.ForeGnd), le_int(menus.BackGnd))
S_COL(16,16, "Bright display color", le_int(menus.HiForeGnd), le_int(menus.HiBackGnd)) S_COL(16,16, "Bright display color", le_int(menus.HiForeGnd), le_int(menus.HiBackGnd))
set_color(WHITE, BLACK); set_color(WHITE, BLACK);
show_bool(17,16, menus.AutoExec); show_bool(17,16, le_int(menus.AutoExec));
if (le_int(menus.MenuType) == 7) { if (le_int(menus.MenuType) == 7) {
show_bool(13,58, menus.NoDoorsys); show_bool(13,58, le_int(menus.NoDoorsys));
show_bool(14,58, menus.Y2Kdoorsys); show_bool(14,58, le_int(menus.Y2Kdoorsys));
show_bool(15,58, menus.Comport); show_bool(15,58, le_int(menus.Comport));
show_bool(16,58, menus.NoSuid); show_bool(16,58, le_int(menus.NoSuid));
show_bool(17,58, menus.NoPrompt); show_bool(17,58, le_int(menus.NoPrompt));
} }
} }
@ -195,7 +195,7 @@ int GetMenuType(void)
mvprintw(12, 6, "6. BBS List menus"); mvprintw(12, 6, "6. BBS List menus");
switch (select_menu(6)) { switch (select_menu(6)) {
case 1: return GetSubmenu(1, 25); case 1: return GetSubmenu(1, 21);
case 2: return GetSubmenu(101, 19); case 2: return GetSubmenu(101, 19);
case 3: return GetSubmenu(201, 21); case 3: return GetSubmenu(201, 21);
case 4: return GetSubmenu(301, 19); case 4: return GetSubmenu(301, 19);
@ -254,25 +254,38 @@ void Edit_A_Menu(void)
menus.HiBackGnd = le_int(bg); menus.HiBackGnd = le_int(bg);
Show_A_Menu(); Show_A_Menu();
break; break;
case 10:E_BOOL(17,16, menus.AutoExec, "Is this an ^Autoexecute^ menu item") case 10:temp = le_int(menus.AutoExec);
temp = edit_bool(17,16, temp, (char *)"Is this an ^Autoexecute^ menu item");
menus.AutoExec = le_int(temp);
break;
case 11:if (le_int(menus.MenuType) == 7) { case 11:if (le_int(menus.MenuType) == 7) {
E_BOOL(13,58, menus.NoDoorsys, "Suppress writing ^door.sys^ dropfile") temp = le_int(menus.NoDoorsys);
temp = edit_bool(13,58, temp, (char *)"Suppress writing ^door.sys^ dropfile");
menus.NoDoorsys = le_int(temp);
} else } else
break; break;
case 12:if (le_int(menus.MenuType) == 7) { case 12:if (le_int(menus.MenuType) == 7) {
E_BOOL(14,58, menus.Y2Kdoorsys, "Create ^door.sys^ with 4 digit yearnumbers") temp = le_int(menus.Y2Kdoorsys);
temp = edit_bool(14,58, temp, (char *)"Create ^door.sys^ with 4 digit yearnumbers");
menus.Y2Kdoorsys = le_int(temp);
} else } else
break; break;
case 13:if (le_int(menus.MenuType) == 7) { case 13:if (le_int(menus.MenuType) == 7) {
E_BOOL(15,58, menus.Comport, "Write real ^COM port^ in door.sys for Vmodem patch") temp = le_int(menus.Comport);
temp = edit_bool(15,58, temp, (char *)"Write real ^COM port^ in door.sys for Vmodem patch");
menus.Comport = le_int(temp);
} else } else
break; break;
case 14:if (le_int(menus.MenuType) == 7) { case 14:if (le_int(menus.MenuType) == 7) {
E_BOOL(16,58, menus.NoSuid, "Run the door as ^real user (nosuid)^") temp = le_int(menus.NoSuid);
temp = edit_bool(16,58, temp, (char *)"Run the door as ^real user (nosuid)^");
menus.NoSuid = le_int(temp);
} else } else
break; break;
case 15:if (le_int(menus.MenuType) == 7) { case 15:if (le_int(menus.MenuType) == 7) {
E_BOOL(17,58, menus.NoPrompt, "^Don't display prompt^ when door is finished") temp = le_int(menus.NoPrompt);
temp = edit_bool(17,58, temp, (char *)"^Don't display prompt^ when door is finished");
menus.NoPrompt = le_int(temp);
} else } else
break; break;
} }
@ -326,7 +339,7 @@ void EditMenu(char *Name)
if (menus.MenuKey[0] || menus.AutoExec) { if (menus.MenuKey[0] || menus.AutoExec) {
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
mvprintw(y, 5, "%3d. ", o + i); mvprintw(y, 5, "%3d. ", o + i);
if (menus.AutoExec) { if (le_int(menus.AutoExec)) {
set_color(LIGHTRED, BLACK); set_color(LIGHTRED, BLACK);
mvprintw(y, 10, "a"); mvprintw(y, 10, "a");
set_color(CYAN, BLACK); set_color(CYAN, BLACK);
@ -334,10 +347,12 @@ void EditMenu(char *Name)
mvprintw(y, 10, "%1s", menus.MenuKey); mvprintw(y, 10, "%1s", menus.MenuKey);
} }
if (le_int(menus.MenuType) == 999 ) { if (le_int(menus.MenuType) == 999 ) {
mvprintw(y, 12, "%-29s %5d %s", menus.TypeDesc, le_int(menus.MenuSecurity.level), menus.Display); sprintf(temp, "%-29s %5d %s", menus.TypeDesc, le_int(menus.MenuSecurity.level), menus.Display);
} else { } else {
mvprintw(y, 12, "%-29s %5d %s", menus.TypeDesc, le_int(menus.MenuSecurity.level), menus.OptionalData); sprintf(temp, "%-29s %5d %s", menus.TypeDesc, le_int(menus.MenuSecurity.level), menus.OptionalData);
} }
temp[68] = '\0';
mvprintw(y, 12, temp);
} else { } else {
set_color(LIGHTBLUE, BLACK); set_color(LIGHTBLUE, BLACK);
mvprintw(y, 5, "%3d.", o + i); mvprintw(y, 5, "%3d.", o + i);
@ -588,7 +603,7 @@ int bbs_menu_doc(FILE *fp, FILE *toc, int page)
while (fread(&menus, sizeof(menus), 1, mn) == 1) { while (fread(&menus, sizeof(menus), 1, mn) == 1) {
if (menus.MenuKey[0]) if (menus.MenuKey[0])
fprintf(fp, " Menu select %s\n", menus.MenuKey); fprintf(fp, " Menu select %s\n", menus.MenuKey);
if (menus.AutoExec) if (le_int(menus.AutoExec))
fprintf(fp, " Menu select Autoexec\n"); fprintf(fp, " Menu select Autoexec\n");
fprintf(fp, " Type %d %s\n", le_int(menus.MenuType), menus.TypeDesc); fprintf(fp, " Type %d %s\n", le_int(menus.MenuType), menus.TypeDesc);
fprintf(fp, " Opt. data %s\n", menus.OptionalData); fprintf(fp, " Opt. data %s\n", menus.OptionalData);
@ -601,11 +616,11 @@ int bbs_menu_doc(FILE *fp, FILE *toc, int page)
fprintf(fp, " Hi-colors %s on %s\n", fprintf(fp, " Hi-colors %s on %s\n",
get_color(le_int(menus.HiForeGnd)), get_color(le_int(menus.HiBackGnd))); get_color(le_int(menus.HiForeGnd)), get_color(le_int(menus.HiBackGnd)));
if (le_int(menus.MenuType) == 7) { if (le_int(menus.MenuType) == 7) {
fprintf(fp, " No door.sys %s\n", getboolean(menus.NoDoorsys)); fprintf(fp, " No door.sys %s\n", getboolean(le_int(menus.NoDoorsys)));
fprintf(fp, " Y2K door.sys %s\n", getboolean(menus.Y2Kdoorsys)); fprintf(fp, " Y2K door.sys %s\n", getboolean(le_int(menus.Y2Kdoorsys)));
fprintf(fp, " Use COM port %s\n", getboolean(menus.Comport)); fprintf(fp, " Use COM port %s\n", getboolean(le_int(menus.Comport)));
fprintf(fp, " No setuid %s\n", getboolean(menus.NoSuid)); fprintf(fp, " No setuid %s\n", getboolean(le_int(menus.NoSuid)));
fprintf(fp, " No Prompt %s\n", getboolean(menus.NoPrompt)); fprintf(fp, " No Prompt %s\n", getboolean(le_int(menus.NoPrompt)));
} }
fprintf(fp, "\n\n"); fprintf(fp, "\n\n");
j++; j++;

View File

@ -1,349 +0,0 @@
/*****************************************************************************
*
* $Id$
* Purpose ...............: Setup Safecracker Data
*
*****************************************************************************
* Copyright (C) 1997-2002
*
* Michiel Broek FIDO: 2:280/2802
* Beekmansbos 10
* 1971 BV IJmuiden
* the Netherlands
*
* This file is part of MBSE safe.
*
* This safe is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* MB safe is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MB safe; see the file COPYING. If not, write to the Free
* Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*****************************************************************************/
#include "../config.h"
#include "../lib/libs.h"
#include "../lib/memwatch.h"
#include "../lib/structs.h"
#include "../lib/users.h"
#include "../lib/records.h"
#include "../lib/common.h"
#include "../lib/clcomm.h"
#include "screen.h"
#include "mutil.h"
#include "ledit.h"
#include "m_global.h"
#include "m_safe.h"
int SafeUpdated = 0;
/*
* Count nr of safecracker records in the database.
* Creates the database if it doesn't exist.
*/
int CountSafe(void)
{
FILE *fil;
char ffile[PATH_MAX];
int count;
sprintf(ffile, "%s/etc/safe.data", getenv("MBSE_ROOT"));
if ((fil = fopen(ffile, "r")) == NULL) {
if ((fil = fopen(ffile, "a+")) != NULL) {
Syslog('+', "created new %s", ffile);
safehdr.hdrsize = sizeof(safehdr);
safehdr.recsize = sizeof(safe);
fwrite(&safehdr, sizeof(safehdr), 1, fil);
fclose(fil);
chmod(ffile, 0660);
return 0;
} else
return -1;
}
count = 0;
fread(&safehdr, sizeof(safehdr), 1, fil);
while (fread(&safe, safehdr.recsize, 1, fil) == 1) {
count++;
}
fclose(fil);
return count;
}
/*
* Open database for editing. The datafile is copied, if the format
* is changed it will be converted on the fly. All editing must be
* done on the copied file.
*/
int OpenSafe(void);
int OpenSafe(void)
{
FILE *fin, *fout;
char fnin[PATH_MAX], fnout[PATH_MAX];
long oldsize;
sprintf(fnin, "%s/etc/safe.data", getenv("MBSE_ROOT"));
sprintf(fnout, "%s/etc/safe.temp", getenv("MBSE_ROOT"));
if ((fin = fopen(fnin, "r")) != NULL) {
if ((fout = fopen(fnout, "w")) != NULL) {
fread(&safehdr, sizeof(safehdr), 1, fin);
/*
* In case we are automaic upgrading the data format
* we save the old format. If it is changed, the
* database must always be updated.
*/
oldsize = safehdr.recsize;
if (oldsize != sizeof(safe)) {
SafeUpdated = 1;
Syslog('+', "Upgraded %s, format changed", fnin);
} else
SafeUpdated = 0;
safehdr.hdrsize = sizeof(safehdr);
safehdr.recsize = sizeof(safe);
fwrite(&safehdr, sizeof(safehdr), 1, fout);
/*
* The datarecord is filled with zero's before each
* read, so if the format changed, the new fields
* will be empty.
*/
memset(&safe, 0, sizeof(safe));
while (fread(&safe, oldsize, 1, fin) == 1) {
fwrite(&safe, sizeof(safe), 1, fout);
memset(&safe, 0, sizeof(safe));
}
fclose(fin);
fclose(fout);
return 0;
} else
return -1;
}
return -1;
}
void CloseSafe(int);
void CloseSafe(int force)
{
char fin[PATH_MAX], fout[PATH_MAX];
sprintf(fin, "%s/etc/safe.data", getenv("MBSE_ROOT"));
sprintf(fout,"%s/etc/safe.temp", getenv("MBSE_ROOT"));
if (SafeUpdated == 1) {
if (force || (yes_no((char *)"Database is changed, save changes") == 1)) {
working(1, 0, 0);
if ((rename(fout, fin)) == 0)
unlink(fout);
chmod(fin, 0660);
Syslog('+', "Updated \"safe.data\"");
return;
}
}
chmod(fin, 0660);
working(1, 0, 0);
unlink(fout);
}
/*
* Edit one record, return -1 if there are errors, 0 if ok.
*/
int EditSafeRec(int Area)
{
FILE *fil;
char mfile[PATH_MAX];
long offset;
int j, Open;
unsigned long crc, crc1;
clr_index();
working(1, 0, 0);
IsDoing("Edit Safe");
sprintf(mfile, "%s/etc/safe.temp", getenv("MBSE_ROOT"));
if ((fil = fopen(mfile, "r")) == NULL) {
working(2, 0, 0);
return -1;
}
offset = sizeof(safehdr) + ((Area -1) * sizeof(safe));
if (fseek(fil, offset, 0) != 0) {
working(2, 0, 0);
return -1;
}
fread(&safe, sizeof(safe), 1, fil);
fclose(fil);
crc = 0xffffffff;
crc = upd_crc32((char *)&safe, crc, sizeof(safe));
working(0, 0, 0);
set_color(WHITE, BLACK);
mvprintw( 5, 5, "8.8 EDIT safe");
set_color(CYAN, BLACK);
mvprintw( 7, 5, "1. Name");
mvprintw( 8, 5, "2. Date");
mvprintw( 9, 5, "3. Tries");
mvprintw(10, 5, "4. Opended");
for (;;) {
set_color(WHITE, BLACK);
show_str( 7,17,35, safe.Name);
show_str( 8,17,10, safe.Date);
show_int( 9,17, safe.Trys);
show_bool(10,17, safe.Opened);
j = select_menu(4);
switch(j) {
case 0: crc1 = 0xffffffff;
crc1 = upd_crc32((char *)&safe, crc1, sizeof(safe));
if (crc != crc1) {
if (yes_no((char *)"Record is changed, save") == 1) {
working(1, 0, 0);
if ((fil = fopen(mfile, "r+")) == NULL) {
working(2, 0, 0);
return -1;
}
fseek(fil, offset, 0);
fwrite(&safe, sizeof(safe), 1, fil);
fclose(fil);
SafeUpdated = 1;
working(1, 0, 0);
working(0, 0, 0);
}
}
IsDoing("Browsing Menu");
return 0;
case 1: E_STR( 7,17,35, safe.Name, "The Safecrackers ^Username^")
case 2: E_STR( 8,17,10, safe.Date, "The ^last date^ attempt to open the safe (DD-MM-YYYY)")
case 3: E_INT( 9,17, safe.Trys, "The ^number of tries^ for today to open the safe")
case 4: Open = edit_bool(10,17, safe.Opened, (char *)"Set or reset the safe ^cracked^ status");
if (safe.Opened && !Open) {
safe.Opened = FALSE;
safe.Trys = 0;
}
break;
}
}
return 0;
}
void EditSafe(void)
{
int records, i, x, y, o;
char pick[12];
FILE *fil;
char temp[PATH_MAX];
long offset;
clr_index();
working(1, 0, 0);
IsDoing("Browsing Menu");
if (config_read() == -1) {
working(2, 0, 0);
return;
}
records = CountSafe();
if (records == -1) {
working(2, 0, 0);
return;
}
if (OpenSafe() == -1) {
working(2, 0, 0);
return;
}
working(0, 0, 0);
o = 0;
for (;;) {
clr_index();
set_color(WHITE, BLACK);
mvprintw( 5, 5, "8.8 SAFE CRACKER SETUP");
set_color(CYAN, BLACK);
if (records != 0) {
sprintf(temp, "%s/etc/safe.temp", getenv("MBSE_ROOT"));
working(1, 0, 0);
if ((fil = fopen(temp, "r")) != NULL) {
fread(&safehdr, sizeof(safehdr), 1, fil);
x = 2;
y = 7;
set_color(CYAN, BLACK);
for (i = 1; i <= 20; i++) {
if (i == 11) {
x = 42;
y = 7;
}
if ((o + i) <= records) {
offset = sizeof(safehdr) + (((o + i) - 1) * safehdr.recsize);
fseek(fil, offset, 0);
fread(&safe, safehdr.recsize, 1, fil);
if (safe.Opened)
set_color(LIGHTRED, BLACK);
else
set_color(CYAN, BLACK);
sprintf(temp, "%3d. %-32s", o + i, safe.Name);
temp[38] = '\0';
mvprintw(y, x, temp);
y++;
}
}
fclose(fil);
}
}
working(0, 0, 0);
strcpy(pick, select_pick(records,20));
if (strncmp(pick, "-", 1) == 0) {
CloseSafe(FALSE);
return;
}
if (strncmp(pick, "N", 1) == 0)
if ((o + 20) < records)
o = o + 20;
if (strncmp(pick, "P", 1) == 0)
if ((o - 20) >= 0)
o = o - 20;
if ((atoi(pick) >= 1) && (atoi(pick) <= records)) {
EditSafeRec(atoi(pick));
o = ((atoi(pick) - 1) / 20) * 20;
}
}
}
void InitSafe(void)
{
CountSafe();
OpenSafe();
CloseSafe(TRUE);
}

View File

@ -1,12 +0,0 @@
/* $Id$ */
#ifndef _SAFE_H
#define _SAFE_H
int CountSafe(void);
void EditSafe(void);
void InitSafe(void);
#endif

View File

@ -62,7 +62,6 @@
#include "m_new.h" #include "m_new.h"
#include "m_ol.h" #include "m_ol.h"
#include "m_bbslist.h" #include "m_bbslist.h"
#include "m_safe.h"
#include "m_protocol.h" #include "m_protocol.h"
#include "m_ff.h" #include "m_ff.h"
#include "m_modem.h" #include "m_modem.h"
@ -386,7 +385,6 @@ void initdatabases(void)
InitNodes(); InitNodes();
InitOneline(); InitOneline();
InitBBSlist(); InitBBSlist();
InitSafe();
InitProtocol(); InitProtocol();
InitService(); InitService();
InitTicarea(); InitTicarea();

View File

@ -250,19 +250,6 @@ void load_maincfg(void)
CFG.MsgInputColourF = CYAN; CFG.MsgInputColourF = CYAN;
CFG.MsgInputColourB = BLACK; CFG.MsgInputColourB = BLACK;
/*
* Safe Door
*/
CFG.iSafeFirstDigit = 1;
CFG.iSafeSecondDigit = 2;
CFG.iSafeThirdDigit = 3;
CFG.iSafeMaxTrys = 4;
CFG.iSafeMaxNumber = 20;
CFG.iSafeNumGen = FALSE;
strcpy(CFG.sSafePrize, "Free access for a year!");
sprintf(CFG.sSafeWelcome, "safewel");
sprintf(CFG.sSafeOpened, "safeopen");
/* /*
* Paging * Paging
*/ */