home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
HATCH
/
WWIVNEWS.ZIP
/
9308_3.NWS
< prev
next >
Wrap
Text File
|
1993-08-04
|
19KB
|
501 lines
log.Since this original program was written, Tolkien has expanded PACKSCAN's
features until today, it is a full-featured NETWORK2 pre-processor for WWIV
networks.
Current features of PACKSCAN v2.31:
■ Two versions for systems with different amounts of available memory.
The standard version has a well written graphical screen which displays
the progress of packet analysis. The memory-saving version gets rid of
graphics, and reports its progress in text mode.
■ Multi-network compatible.
■ Sysop configurable via a user-friendly configuration interface.
■ Packet logging to the WWIV sysop log.
■ Extended packet logging, providing even more detail than the standard
sysop log entries provide.
■ Detailed error logging which reports errors encountered by PACKSCAN
when packet transfers occur and are aborted.
■ File logging which reports the status of both incoming and outgoing
program files.
■ Ability to transmit and receive program files in specially encoded
packets or "chunks".
■ Ability to receive network updates from network coordinators who use
a specially written program called "PUS" (PackScan Update System -
available to all network coordinators for $20).
■ Ability to read the WWIV 4.21+ USER.LST to aid in file acquisition.
This ability may be disabled for those systems which are running
programs which may encounter SHARE violations, like Windows (R)*.
■ Fully implemented CRC-32 error checking of incoming program file
chunks.
■ Ability to accept or reject unsolicited program files sent by other
network sysops.
■ Built-in interface with ALLOW.EXE, a utility for storing and searching
for file names of previously uploaded programs.
■ Configurable ability to send SSM's (Small System Messages) to other
network systems when program files are received.
■ Ability to specify the directory "type" for the WWIV upload directory
where program files will be sent.
■ Full implementation and support for the WWIV external packet
pre-processor file redirection implemented in NET32.
■ Fully configurable "ALIAS" file which gives the sysop ultimate control
over who may access files from their system.
■ Allows transmission and receipt of program files using a "stealth mode"
which will bypass SSM notification to systems who would normally
receive notification of a PACKSCAN upload to your system.
■ File lists indicate which files are/are not available in transfer
areas on your system's hard drive at the time of the request. A tad
slower, perhaps, but then others won't spend the time requesting files
which are not available on your system. CD-ROM drives are not scanned
as all files are presumed to be there.
Future features of PACKSCAN:
■ Configurable upload event (virus scanning, etc.).
■ Automatic subscriber list generation for networked message echos.
■ Sysop configurable sound board support (Soundblaster, Adlib, Pro Audio
Spectrum, etc.).
As always, PACKSCAN version 2.31 is FREE. However, due to numerous upgraded
and newly implemented features, PACKSCAN version 2.31 is not compatible with
any previous version of itself. This includes file requesting, file sending
and file list requests. Also, because the network coordinator's update
utility (PUS) is being upgraded and improved (including some minor
de-bugging), those sysops who use PACKSCAN to receive their network updates
will need to upgrade to version 2.31.
Unlike previous versions, the four utility files which accompany PACKSCAN are
NOT free. These utilities, which give sysops the ability to request file
lists and send and receive files, now must be registered. These file
utilities will require registration before they will work. These utilities
are:
NETFILE .EXE Allows you to send a file to one or more nodes
FILEREQ .EXE Allows you to send a file request to another system
LISTREQ .EXE Allows you to send a file list request to another system
NFM .EXE Does all that the first three do, in one integrated
program, and allows use of "Stealth Mode" as well.
The utilities listed above must be registered. In an effort to keep sysop
registration costs down, normal registration is $20 for all four PACKSCAN
utilities. However, for a limited time, ALL FOUR PACKSCAN UTILITIES may be
purchased for $10. To take advantage of this LOW $10 registration fee, you
must send in your registration (check or money order - no cash please),
postmarked by July 31, 1993, to:
Sara Felix
c/o PACKSCAN REGISTRATION
7035 Ethel
St. Louis, MO 63117
Please make all checks payable to "Sara Felix". All registrations received
will be donated, by Tolkien, to one of the major network mail servers which
moves YOUR network mail around the world.
With this new version of PACKSCAN, the WWIV network sysop will gain more
knowledge about the nature of data flowing into their system. Without
PACKSCAN, you may be "flying in a fog"; with PACKSCAN, you should have
"unlimited visibility".
─────────────────────────────────────────────────────────────────────────────
Conclusions
──────────────────────────────────────────────────────────────────────────────
Despite the arguments presented against the use of WWIVNet for transmitting
large files in lieu of direct connections, there have always been those who'll
take the "Devil's Advocate" side in the matter. Wayne's final ruling on the
issue, as well as the DE1.EXE distribution will quiet some of the dissention,
but at the same time will no doubt raise other points of order.
The recent DE1.EXE distribution will no doubt be used as a prime example for
both sides of the debate. There will be those who'll use this event as
evidence of how UU encoded files can be beneficial to WWIVNet, while others
will use it to cry "foul!" and "double-standard!!" in what will no doubt be
described as a "sour grapes" response by those who wish to use the net any way
they see fit regardless of the consequences.
In any case, the matter does seem to be essentially a settled one for now.
With the development and forthcoming release of WW4-FREQ by 2@2050, as well
as the existence of FILENET and the PACKSCAN and NETPROBE utilities, perhaps
the final nail has been hammered into a coffin containing UUENCODE.
───────────────┬─────────────────────────────────────────────┬───────────────
│ Filo's Mod of the Month │
│ by Filo (1@2050) │
└─────────────────────────────────────────────┘
The Mod-of-The-Month Selection represents my choice of what appears to be a
useful, practical mod to WWIV. It does not mean it is the best mod posted or
even that it works as I may not have tested it. Given the limitations of this
media, uuencoded mods are NOT eligible for selection as mod-of-the-month.
The June selection is another contribution from The Bishop 1@7. This mod
should prove to be useful for those who need to move subs and/or directories.
╔═══════════════════════════════════════════════════════════════════════════╗
║ WWIV Desc : Re-Order Subs and Dirs in //BOARDEDIT and //DIREDIT ║
║ ║
║ Filename : TB15-422.ZIP Mod Version : 1.0σ ║
║ Author : τhe ßishop 1st File Modified : SUBEDIT.C ║
║ 1st Net : 1@ 7.WWIVnet 2nd File Modified : DIREDIT.C ║
║ 2nd Net : 1@ 7.WWIVweb 3rd File Modified : FCNS.H ║
║ 3rd Net : 1@ 7.ExpressNet 4th File Modified : ║
║ 4th Net : 1@ 7.FunNet 5th File Modified : ║
║ 5th Net : 1@4550.IceNet 6th File Modified : ║
║ 6th Net : 1@4550.USLink 7th File Modified : ║
║ ║
║ WWIV Version : 4.22 Date : 01 June 1993 ║
║ ║
║ Difficulty : ████▒▒▒▒▒▒ ║
║ ║
║ Description : Over the years I've wanted to re-order my subs and ║
║ directories more times than I can remember. So I finally ║
║ decided to do something about it. This mod allows SysOps ║
║ to take any one sub/dir and move it before any other one. ║
║ In addition, it maintains proper qscan pointers for all ║
║ all of your users (even deleted ones) after moving subs ║
║ and/or dirs. Enjoy! ║
║ ║
║ τß ║
╚═══════════════════════════════════════════════════════════════════════════╝
┌─────────────────────────────────┐
│ Legend: │
│ │
│ = Leave this line alone │
│ + Add this line │
│ - Delete this line │
│ | Change this line │
│ . Many statements elapse here │
└─────────────────────────────────┘
┌───────────────────────────┐
│ Disclaimer: LIVE WITH IT. │
└───────────────────────────┘
──────────────────────────────────────────────────────────────────────────────
Step 0: Back your source code up. In addition, back up the
following files in your DATA directory:
SUBS.*
DIRS.*
USER.*
I recommend putting them in one big zip file. I'll be shocked if
you need the backup, but I wouldn't be recommending it if I didn't
think you should do it.
──────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────
Step 1: Open up SUBEDIT.C. Block copy swap_subs() in before insert_sub().
──────────────────────────────────────────────────────────────────────────────
/* TB15-422.MOD */
void swap_subs(int sub1, int sub2)
{
int i,i1,i2,nu;
unsigned long *qsc, *qsc_p, *qsc_n, *qsc_q, m1, m2, m3, tl;
subboardrec sbt;
xtrasubsrec xst;
nu=number_userrecs();
close_user();
qsc=(unsigned long *)farmalloc(syscfg.qscn_len);
if (qsc) {
for (i=1; i<=nu; i++) {
read_qscn(i,qsc,1);
qsc_n=qsc+1;
qsc_q=qsc_n+(max_dirs+31)/32;
qsc_p=qsc_q+(max_subs+31)/32;
if (qsc_q[sub1/32] & (1L<<(sub1%32)))
i1=1;
else
i1=0;
if (qsc_q[sub2/32] & (1L<<(sub2%32)))
i2=1;
else
i2=0;
if (i1+i2==1) { /* One is scanned; the other isn't */
qsc_q[sub1/32] ^= (1L<<(sub1%32));
qsc_q[sub2/32] ^= (1L<<(sub2%32));
}
tl=qsc_p[sub1];
qsc_p[sub1]=qsc_p[sub2];
qsc_p[sub2]=tl;
write_qscn(i,qsc,1);
}
close_qscn();
farfree(qsc);
}
sbt=subboards[sub1];
subboards[sub1]=subboards[sub2];
subboards[sub2]=sbt;
tl=sub_dates[sub1];
sub_dates[sub1]=sub_dates[sub2];
sub_dates[sub2]=tl;
xst=xsubs[sub1];
xsubs[sub1]=xsubs[sub2];
xsubs[sub2]=xst;
save_subs();
}
──────────────────────────────────────────────────────────────────────────────
Step 2: Below, at the end of insert_sub(), comment out modify_sub(n);
──────────────────────────────────────────────────────────────────────────────
= save_subs();
= if (curlsub>=n)
= curlsub++;
| // modify_sub(n); /* Removed TB15-422.MOD */
──────────────────────────────────────────────────────────────────────────────
Step 3: Below in boardedit() make the following changes:
──────────────────────────────────────────────────────────────────────────────
void boardedit(void)
{
= int i,i1,i2,done,f;
= char s[81],s1[81],s2[81],ch;
=
= if (!checkpw())
= return;
= showsubs();
= done=0;
= do {
= nl();
- prt(2,get_string(211));
+ prt(2,"Subs: D:elete, I:nsert, M:odify, R:eorder, Q:uit, ? : ");
| ch=onek("QDIMR?"); /* TB15-422.MOD add R */
= switch(ch) {
= case '?':
= showsubs();
= break;
= case 'Q':
= done=1;
= break;
/* Add Block (+) */
case 'R':
if (num_subs<max_subs) {
nl();
prt(2,"Take Sub Number? ");
input(s,3);
i1=atoi(s);
if ((!s[0]) || (i1<0) || (i1>num_subs))
break;
nl();
prt(2,"And Move Before Sub Number? ");
input(s,3);
i2=atoi(s);
/*
*
* Note: inserting a sub before sub 0, 32, 64, 92, or etc will toggle on-for-
* scanning all the subs in that 32 sub block. For example, moving sub 4
* before sub 0 will cause all users to scan subs 0-31. This is not a bug
* in my code but rather in Wayne's stock insert_sub (try inserting sub
* 0 and the same thing will happen). It is minor, but should be fixed for
* WWIV v4.23. If you don't care about screwing up the "which subs to scan"
* qscan pointer when moving before these subs, remove the (i2%32==0)
* condition in the if statement below.
*
*/
if ((!s[0]) || (i2<0) || (i2%32==0) || (i2>num_subs) || (i1==i2) ||
(i1+1==i2))
break;
nl();
if (i2<i1)
i1++;
write_qscn(usernum,qsc,1);
insert_sub(i2);
swap_subs(i1,i2);
delete_sub(i1);
showsubs();
} else {
nl();
pl("You must increase the number of subs in INIT.EXE first.");
}
break;
/* End Block Add */
= case 'M':
= nl();
= prt(2,get_string(212));
= input(s,3);
= i=atoi(s);
= if ((s[0]!=0) && (i>=0) && (i<num_subs))
= modify_sub(i);
= break;
= case 'I':
= if (num_subs<max_subs) {
= nl();
= prt(2,get_string(213));
= input(s,3);
= i=atoi(s);
| if ((s[0]!=0) && (i>=0) && (i<=num_subs)) { /* { is TB15-422.MOD */
= insert_sub(i);
+ modify_sub(i); /* TB15-422.MOD */
+ } /* TB15-422.MOD */
= }
= break;
────────────────────────────────────────────────────────────────────────────-
Step 4: Save SUBEDIT.C and open DIREDIT.C. Block copy swap_dirs()
in before insert_dir(). Uncomment the appropriate lines if you've got
JAFO14.MOD installed, as I do.
────────────────────────────────────────────────────────────────────────────-
/* TB15-422.MOD */
void swap_dirs(int dir1, int dir2)
{
int i,i1,i2,nu;
unsigned long *qsc, *qsc_n, tl;
directoryrec drt;
// float tf; /* Only if JAFO14 is installed */
nu=number_userrecs();
close_user();
qsc=(unsigned long *)farmalloc(syscfg.qscn_len);
if (qsc) {
for (i=1; i<=nu; i++) {
read_qscn(i,qsc,1);
qsc_n=qsc+1;
if (qsc_n[dir1/32] & (1L<<(dir1%32)))
i1=1;
else
i1=0;
if (qsc_n[dir2/32] & (1L<<(dir2%32)))
i2=1;
else
i2=0;
if (i1+i2==1) { /* One is scanned, the other isn't */
qsc_n[dir1/32] ^= (1L<<(dir1%32));
qsc_n[dir2/32] ^= (1L<<(dir2%32));
}
write_qscn(i,qsc,1);
}
close_qscn();
farfree(qsc);
}
drt=directories[dir1];
directories[dir1]=directories[dir2];
directories[dir2]=drt;
tl=dir_dates[dir1];
dir_dates[dir1]=dir_dates[dir2];
dir_dates[dir2]=tl;
// tf=dir_ratios[dir1]; /* Only if JAFO14 is installed */
// dir_ratios[dir1]=dir_ratios[dir2]; /* Only if JAFO14 is installed */
// dir_ratios[dir2]=tf; /* Only if JAFO14 is installed */
// save_dir_ratios(); /* Only if JAFO14 is installed */
}
──────────────────────────────────────────────────────────────────────────────
Step 5: Below, at the end of insert_dir(), comment out modify_dir(n);
──────────────────────────────────────────────────────────────────────────────
= close_qscn();
= farfree(qsc);
= }
| // modify_dir(n); /* Removed TB15-422.MOD */
────────────────────────────────────────────────────────────────────────────-
Step 6: Below in dlboardedit() make the following changes:
────────────────────────────────────────────────────────────────────────────-
void dlboardedit(void)
{
= int i,i1,i2,done,f;
= char s[81],s1[81],s2[81],ch;
=
= if (!checkpw())
= return;
= showdirs();
= done=0;
= do {
= nl();
- prt(2,get_string(160));
+ prt(2,"Dirs: D:elete, I:nsert, M:odify, R:eorder, Q:uit, ? : ");
| ch=onek("QDIMR?"); /* TB15-422.MOD add R */
= switch(ch) {
= case '?':
= showdirs();
= break;
= case 'Q':
= done=1;
= break;
/* Add Block (+) */
case 'R':
if (num_dirs<max_dirs) {
nl();
prt(2,"Take Dir Number? ");
input(s,3);
i1=atoi(s);
if ((!s[0]) || (i1<0) || (i1>num_dirs))
break;
nl();
prt(2,"And Move Before Dir Number? ");
input(s,3);
i2=atoi(s);
/*
*
* Note: inserting a dir before dir 0, 32, 64, 92, or etc will toggle on-for-
* scanning all the dirs in that 32 dir block. For example, moving dir 4
* before dir 0 will cause all users to scan dirs 0-31. This is not a bug
* in my code but rather in Wayne's stock insert_dir (try inserting dir
* 0 and the same thing will happen). It is minor, but should be fixed for
* WWIV v4.23. If you don't care about screwing up the "which dirs to scan"
* qscan pointer when moving before these dirs, remove the (i2%32==0)
* condition in the if statement below.
*
*/
if ((!s[0]) || (i2<0) || (i2%32==0) || (i2>num_dirs) || (i1==i2))
break;
nl();
if (i2<i1)
i1++;
write_qscn(usernum,qsc,1);
insert_dir(i2);
swap_dirs(i1,i2);
delete_dir(i1);
showdirs();