home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
SYSOP
/
MODS1.ZIP
/
SPV-029D.MOD
< prev
next >
Wrap
Text File
|
1995-06-04
|
17KB
|
398 lines
Papa Bear #1 @11579
7Thursday1, 7June 11, 71995 2 66:221 am
0R 34 06/04 18:34 WWIVnet ->8339
0R 34 06/04 16:40 WWIVnet 8314->8304
0R 34 06/04 08:31 WWIVNET 4001->8314
0R 34 06/04 11:42 WWIVnet 4000->4001
0R 34 06/03 07:50 WWIVnet ->4000
0R 34 06/01 10:03 WWIVnet 4001->4000
0R 34 06/01 17:26 WWIVnet 11579->4001
0R 34 06/01 06:21 WWIVnet ->11579
4Msg. Status:9▄ 5Please reply!
9 ▀▀▀▀▀▀▀▀▀▀▀▀
┌────────────────────────────A CEREBRUM RELEASE!─────────────────────────────┐
│ Mod Name: SPV-029D.MOD Mod Authors: Pâpâ ßêâr (1@11579.wwivnet) │
│ Difficulty: ▓▓▓░░░░░░░ First .... [12/29/93] │
│ WWIV Version: 4.24 Last ..... [06/01/95] │
│ Files Affected: LILO.C UEDIT.C FCNS.H NEWUSER.C DEFAULTS.C │
│ Description: Preforms a "birth date" CHECK for security reasons. Uses pre-│
│existing [but unused] code. Now with BACKUP PASSWORD chacking and forced │
│E-Mail [w/logoff if aborted] if bad birthdate! │
╞═────────────────────────────────────═╤═───────────────────────────────────═╡
│ StarPort Valhalla [ ] - ASV 28.8kbps Home of the SPV mod series! │
└─────────────────────────────────────═╧═────────────────────────────────────┘
>>> OFFICIAL WWIV SUPPORT SITE! <<<
Word of Warning: You installed it, you're responsible! Make back-ups BEFORE
attempting to install this modification! Read all text before beginning.
─────────────────────────────────────────────────────────────────────────────
LEGEND:
== Original Code [use this to search on]
++ Add this Line [mods ALWAYS add stuff, don't they?]
-- Delete this Line [or comment out, its not needed]
-+ Change this Line [I usually comment these lines]
─────────────────────────────────────────────────────────────────────────────
LONG DESCRIPTION: This piece of code was requested by Snowman (1@7763).
What it does is allow you turn toggle on or off a "Birthday Check" in UEDIT
[either from the BBS proper or WFC].
When it is toggled ON, the following happens:
The next time the user logs on, they'll be asked to re-enter their birth
date as a routine deal. If they enter the SAME as when they first logged on,
then it allows them to continue to log on as normal. If they are incorrect,
then it asks them to enter the backup password [Just as a secondary check for
you, the SysOp, to see if they get it right. No action is taken by the BBS
against their account either way.] Then it lowers their SL and DSL, sends
you a SSM as notification, makes a SYSOPLOG entry, and forces them to leave
you E─Mail [in which, will have a RE: line telling you what went wrong]. If
they abort the E-Mail, they are auto-logged off.
This can be used as a "security" feature to your BBS.
Thanks to Okinawa Ranger (1@157 IceNET) for pointing out a bug!
─────────────────────────────────────────────────────────────────────────────
FEATURES:
o B command toggles ON/OFF the checking in UEDIT.
o Places banner at top of user's account letting you know if its on when
you're in UEDIT.
o Fault tolerant for user. Forces them to use mm/dd/yy format before
critical checking takes place.
o Easily modified to use your specified SL/DSL's.
o LOCAL [does not show up remotely] reporting of user's birth date as it
appears in the userrec when they log on and the checking is active.
o Automatically toggles check OFF after the user completes it. [Successfully
or not...]
REVISION "B" NOTES
o Fixes a bug in SPV─029.MOD
o Adds a backup password. This backup password is entered when a user logs
on for the first time, _OR_ if they already have an account, will prompt
them to enter a backup password during the first call (only) after you
install this. The backup password uses the pre─existing [but frequently
unused] CALL SIGN field in the userrec.
o Forces them to leave E─Mail if they fail the birthday check. Kicks them
off the BBS if they abort leaving mail.
o Leaves you an SSM and SYSOPLOG entries built as they fail checks, so
you'll no exactly when and what they failed.
o Builds and inserts a RE: line into their E─Mail [see above].
o If an existing user has birthdate checking on, and they haven't entered a
backup password, it will ask them for the P/W during the first call after
this is installed, and their birthdate on the second call after
installation. This is to insure that they aren't asked for the backup
password [for checking purposes] during the same call in which they
entered it in the first place!
o Ensures that the backup password and the main password cannot be the same!
o Enforces three character backup password checking so they can't just press
ENTER and get it wrong.
REVISION "C" NOTES
o Where it did not allow a backup p/w - p/w match, it WOULD allow a p/w -
backup p/w match IF the user changed their password after they entered
their backup password. This has been fixed.
REVISION "D" NOTES
o Updated for WWIV 4.24
o Changed from using sysstatus_rip to using thisuser.cbv.
NOTE: I'd check to see if any users currently have information in their
callsign field, and, if they do, zero it out immediately after installing
this mod and before the first user calls. That way you make sure everyone
has a backup passoword.
─────────────────────────────────────────────────────────────────────────────
STEP 1: Open up LILO.C and add these lines in function: void logon(void)
== int i,i1,dv,win,f;
== long len,pos;
== long l;
++ char Check_Against[11],User_Input[11],Check_Backup[7]; // SPV-029D
++ int bdok,buok,ch_mail; // SPV-029D
==
== if (usernum<1) {
== hangup=1;
─────────────────────────────────────────────────────────────────────────────
STEP 2: Futher down in the same function [all the way to the end] add this
chunk 'o code:
== setuconf(CONF_SUBS, curconfsub, -1);
== }
== }
== rip_cls();
== autox = -1;
// START SPV-029D BLOCK COPY
if ((thisuser.cbv) && (thisuser.callsign[0]!=NULL)) {
sprintf(Check_Against,"%2.2d/%2.2d/%2.2d",
thisuser.month,thisuser.day,thisuser.year);
printf("\r\nThis user's birthday = %s\r\n",Check_Against);
nl();
do {
bdok=0;
pl("5We must now preform a routine birthday check0");
npr(
"5Please enter your birthdate in the format 1mm5/1dd5/1yy2: 0");
mpl(8);
input(User_Input,8);
if ((User_Input[2]!='/') || (User_Input[5]!='/') ||
(strlen(User_Input)<8)) {
nl();
pl("6Incorrect format! Use 01/17/63 or 12/02/94!0");
nl();
bdok=1;
}
} while ((!hangup) && (bdok));
nln(2);
if (strcmp(Check_Against,User_Input)==0)
pl("5Thank you for completing this check!0");
else {
sprintf(irt,"2%s 6failed B/D check0",nam(&thisuser,usernum));
pl(
"2The birthdate you entered was NOT the same as the one you entered0");
pl("2when you first logged on. Please enter your backup password.0");
do {
buok=0;
nl();
npr(": ");
mpl(7);
input(Check_Backup,7);
if (strlen(Check_Backup)<3) {
buok=1;
nl();
pl(
"5You 6*2MUST6*5 enter your backup password, 3─6 characters.0");
nl();
}
} while ((!hangup) && (buok));
if (stricmp(Check_Backup,thisuser.callsign)!=0)
strcat(irt,"6 & Backup P/W check0");
nl();
pl("2You will now E─Mail the SysOp. Explain why you could not0");
pl("2remember your birthday/backup password. This is MANDATORY!0");
pl("2You will be LOGGED OFF if you do not leave mail!0");
nln(2);
ssm(1,0,irt);
sysoplog(irt);
ch_mail=thisuser.feedbacksent;
email(1,0,1,0);
thisuser.sl=10; // NOTE 1
thisuser.dsl=10; // NOTE 1
changedsl();
nln(2);
read_user(usernum,&thisuser);
if (ch_mail==thisuser.feedbacksent) {
pl("\007\0076You did not leave E─Mail. Now logging you off!0");
hangup=1;
dtr(0);
} else {
pl("5Thank you for leaving mail. Access levels ARE temporarily0");
pl("5decreased until the SysOp can read your E─Mail.0");
}
}
thisuser.cbv=0;
} else if (thisuser.callsign[0]==NULL) {
nl();
pl("3We have started using a 'backup' password system. Enter a 3-60");
pl(
"3letter password. Make sure to write this down. You may be asked0");
pl("3to re-enter it sometime in the future!0");
input_callsign();
nl();
pl("5Thank you for entering your 'backup' password! Remember it!0");
nl();
}
// END SPV-029D BLOCK COPY
== }
==
== void logoff(void)
== {
== long l;
NOTE!!! OK, OK, so I used thisuser.cbv. In the STOCK 4.23 code, it is in
there, but not used for anything. I borrowed it for this mod. If
this is used in any future versions of WWIV, or is changed, I'll
update the mod then to reflect the changes.
NOTE 1: This is where the SL/DSL are set. Change these values to whatever
you want to give the user if they FAIL their birthday checking.
─────────────────────────────────────────────────────────────────────────────
STEP 3: Add the following in UEDIT.C, function:
void print_data(int un, userrec *u, int lng, int cls)
== pl(get_string(236));
== nl();
== }
// SPV-029D BEGIN
++ if (u->cbv) {
++ pl("6>> 4This account is marked for birthday checking!0 6<<0");
++ nl();
++ }
// SPV-029D END
== outstr_x2(get_string(1005)); pl(nam(u,un));
== outstr_x2(get_string(238)); pl(u->realname);
─────────────────────────────────────────────────────────────────────────────
STEP 4: In UEDIT.C, function: void uedit(int usern, int other) change this:
== prt(2,get_string(266));
== if ((thisuser.sl==255) || (wfc))
-+ ch=onek("ABCDEGILMNOPQRSTUXYZ0123456789[]{}/,.?~%:"); // Add the B
== else
== ch=onek("ACDEGILMNOPQRSTUYZ0123456789[]{}/,.?%");
== switch(ch) {
NOTE: This change adds the B command to UEDIT. Changing it here allows on
local people and 255's to [de]activate the birth date checking.
─────────────────────────────────────────────────────────────────────────────
STEP 5: SAME bat─file, SAME bat─function, SAME bat─time :) Add this:
== u.ar ^= (1 << ch1);
== write_user(un,&u);
== }
== }
== break;
// SPV-029D START
++ case 'B':
++ u.cbv^=1;
++ write_user(un,&u);
++ break;
// SPV-029D END
== case 'C':
== nl();
─────────────────────────────────────────────────────────────────────────────
STEP 6: In NEWUSER.C replace the input_callsign(void) with this one:
// SPV-029D void input_callsign(void) REPLACEMENT START
void input_callsign(void)
{
int ok;
do {
ok=0;
nl();
pl(get_string(525));
npr(":");
mpl(6);
input(thisuser.callsign,6);
nl();
if (strlen(thisuser.callsign)<3) {
ok=1;
pl("\007\0076You must enter a 3-6 letter 'backup' password!0");
nl();
}
} while ((!hangup) && ((ok) || (pw_check())));
}
// SPV-029D void input_callsign(void) REPLACEMENT END
─────────────────────────────────────────────────────────────────────────────
STEP 7: Still in NEWUSER.C, function void newuser(void) remove this line:
== hang_it_up();
== return;
== }
== }
== }
== }
-- input_callsign(); // remove me - SPV-029D.MOD
== input_sex();
== input_age(&thisuser);
== input_comptype();
─────────────────────────────────────────────────────────────────────────────
STEP 8: STILLLLL in NEWUSER.C, STILLL in void newuser(void) add this line:
== prt(5,get_string(572));
== if (yn())
== input_pw();
++ input_callsign(); // SPV-029D
==
== if (sysinfo.flags & OP_FLAGS_SIMPLE_ASV) {
== if ((sysinfo.asv.sl>syscfg.newusersl) &&
== (sysinfo.asv.sl<100)) {
─────────────────────────────────────────────────────────────────────────────
STEP 9: Will we ever get out of NEWUSER.C?
void newuser(void) :
== case '7': input_comptype(); break;
== case '8': input_screensize(); break;
// START SPV-029D CHANGES
-- case '9': input_pw(); break; // REMOVE ME!
++ case '9':
++ do {
++ input_pw();
++ } while ((!hangup) && (pw_check()));
++ break;
// END SPV-029D CHANGES
== case 'A': input_street(); break;
== case 'B': input_city(); break;
─────────────────────────────────────────────────────────────────────────────
STEP 10: Add this function to the end of NEWUSER.C
// SPV-029D START
int pw_check(void)
{
if (stricmp(thisuser.pw,thisuser.callsign)==0) {
nl();
pl(
"\007\0076Your main password and backup password may not be the same!0");
nl();
return(1);
}
return(0);
}
// SPV─029D END
─────────────────────────────────────────────────────────────────────────────
STEP 11: Now in DEFAULTS.C, void defaults(void)
== case '5':
== config_qscan();
== break;
== case '6':
// START SPV-029D CHANGES
-- input_pw1(); // REMOVE ME!
++ do {
++ input_pw1();
++ } while ((!hangup) && (pw_check()));
// END SPV-029D CHANGES
== break;
== case '7':
== make_macros();
─────────────────────────────────────────────────────────────────────────────
STEP 12: Prototype the new function in FCNS.H
== int check_dupes(char *phone);
++ int pw_check(void); // SPV-029D
==
== /* File: readmail.c */
==
== int same_email(tmpmailrec *tm, mailrec *m);
─────────────────────────────────────────────────────────────────────────────
STEP 13: Recompile
─────────────────────────────────────────────────────────────────────────────
STEP 14: Open BBS.STR and change the following strings:
#270 ─ "New backup password? "
#271 ─ "Delete backup password? "
#525 - [ZERO THIS STRING OUT!]
#526 ─ "Please enter your 'backup' password. 3─6 characters."
#575 ─ "3. Backup P/W : "
NOTE: Do not include the quotes. Pay attention to spacing!
─────────────────────────────────────────────────────────────────────────────
SIDE NOTE... Steps 7 and 8 can be skipped... All I did was make it so a new
user was asked for their backup password after they entered the main
password... It seemed odd to have the BBS ask them for it after they entered
their country and before their sex.
That should be it! If you have any problems, please E─Mail me. Hell,
E─Mail me anyway!
This mod is copyright 1993,1994 by Tracy Baker, aka Papa Bear, and is
distributed as freeware. Permission is granted to distribute and post this
mod on BBS systems and online services, provided no alterations are made
(removal of message headers/taglines allowed). This mod may contain some
parts of WWIV source code, which is copyright 1988─1994 by Wayne Bell and
licensed only to registered users of WWIV. Use of WWIV source without
registration constitutes a license violation and could lead to legal
prosecution and certain doom.
Shareware distributors and CD─ROM publishers may not distribute this mod
without express written permission of the Author or WWIV Software Services.
7-9=1*6>2Pâpâ ßêâr6<1*9=7-0
8311579.wwivnet1· 2 ╪╫9≡8║7⌐¬4¥5╓╥╖1· · 2▒1 · 2▒ 3(510)522-35831 ·
732.sexnet 1∙ 6 ·0░░▒▒▓▓6∞0▓▒░6·2 StarPort ▒ ▒ 2 ▒1 ·2▒ ▒ ▒1 ·2 ▒ ▒1 ·2▒ ▒ 1·
6315061.wwivlink 0 ████1 · . 2 ▒ ▒ ▒ ▒ ▒1 · 2▒▒▒ ▒ ▒ ▒ ▒ ▒ ▒
535079.icenet 1. . 0 │└6·0└6· 1 ∙ 2 ▒ ▒ ▒ ▒▒▒ ▒ ▒ ▒1 ·2 ▒ ▒▒▒ ▒▒▒ ▒1 ∙ 2▒
---
1ATTENTION! Elvis has left this subboard.