home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
HATCH
/
WWIVNEWS.ZIP
/
9210_2.NWS
< prev
next >
Wrap
Text File
|
1992-10-27
|
25KB
|
490 lines
───────────────┬─────────────────────────────────────────────┬───────────────
│ USERREC - The Next Generation │
│ by Tolkien (1@3456) │
└─────────────────────────────────────────────┘
Editor's NOTE: As hinted at on Amber and in a recent Mail_to_all_sysops, 4.22
will feature a new userrec structure, one that will incorporate some features
previously found in major modification files such as FROM.MOD and 8COLORS.MOD.
In addition, there are certain aspects of pointer structuring that will be
handled quite differently to accommodate 4.22's ability to support up to
999 message bases.
As a service to WWIVnews' modders' contingent, the co-author of this new
structure, Tolkien, has contributed the following article detailing what this
new userrec will look like following the release of 4.22, and has included some
of the technical details behind the pointer structures as well. Modders are
advised to take note of the additions to the standard user record, and take
this opportunity to update their mods accordingly prior to 4.22's actual
release sometime in the first quarter of 1993.
─────────────────────────────────────────────────────────────────────────────
Well, as you all may or may not be aware, the following is the new "super
userrec" structure for WWIV v4.22 and later. The differences merit some
discussion, thus this article. However, first, here is the new structure:
typedef struct {
char
name[31], /* user's name/handle */
realname[21], /* user's real name */
callsign[7], /* user's amateur callsign */
phone[13], /* user's phone number */
dataphone[13], /* user's data phone */
street[31], /* street address */
city[31], /* city */
state[3], /* state code [MO, CA, etc] */
country[4], /* country [USA, CAN, FRA, etc] */
zipcode[11], /* zipcode [#####-####] */
pw[9], /* user's password */
laston[9], /* last date on */
firston[9], /* first date on */
note[61], /* sysop's note about user */
macros[3][81], /* macro keys */
sex; /* user's sex */
char
res_char[78]; /* bytes for more strings */
unsigned char
age, /* user's age */
inact, /* if deleted or inactive */
comp_type, /* computer type */
defprot, /* deflt transfer protocol */
defed, /* default editor */
screenchars, /* screen width */
screenlines, /* screen height */
num_extended, /* extended description lines */
optional_val, /* optional lines in msgs */
sl, /* security level */
dsl, /* transfer security level */
exempt, /* exempt from ratios, etc */
colors[10], /* user's colors */
bwcolors[10], /* user's b&w colors */
votes[20], /* user's votes */
illegal, /* illegal logons */
waiting, /* number mail waiting */
ontoday, /* num times on today */
month, /* birth month */
day, /* birth day */
year, /* birth year */
language; /* language to use */
char
res_byte[50]; /* reserved for byte values */
unsigned short
homeuser, /* user number where user can be found */
homesys, /* system where user can be found */
forwardusr, /* mail forwarded to this user number */
forwardsys, /* mail forwarded to this system number */
net_num, /* net num for forwarding */
msgpost, /* number messages posted */
emailsent, /* number of email sent */
feedbacksent, /* number of f-back sent */
fsenttoday1, /* feedbacks today */
posttoday, /* number posts today */
etoday, /* number emails today */
ar, /* board access */
dar, /* directory access */
restrict, /* restrictions on account */
ass_pts, /* bad things the user did */
uploaded, /* number files uploaded */
downloaded, /* number files downloaded */
lastrate, /* last baud rate on */
logons, /* total number of logons */
emailnet, /* email sent via net */
postnet, /* posts sent thru net */
deletedposts, /* how many posts deleted */
chainsrun, /* how many "chains" run */
gfilesread, /* how many gfiles read */
banktime; /* how many mins in timebank */
char
res_short[50]; /* reserved for short values */
unsigned long
msgread, /* total num msgs read */
uk, /* number of k uploaded */
dk, /* number of k downloaded */
daten, /* numerical time last on */
sysstatus, /* status/defaults */
wwiv_regnum, /* user's WWIV reg number */
filepoints; /* points to spend for files */
char
res_long[56]; /* reserved for long values */
float
timeontoday, /* time on today */
extratime, /* time left today */
timeon, /* total time on system */
pos_account, /* $ credit */
neg_account, /* $ debit */
gold; /* game money */
char
res_float[32]; /* reserved for real values */
char
res_gp[100]; /* reserved for whatever */
} userrec;
Okay, there are some significant differences between this structure and all
of the ones prior. The "old" userrec (the one you are currently using) had
grown into somewhat of a kludge over time. There wasn't really any way to
avoid that, at least not without a complete change of the structure from
version to version, which was impractical at best.
So, Wayne waited a long time before agreeing to make this level of change.
The first major difference is that there are several fields that are no
longer going to be in the USER.LST file at all: the qscan pointers, the nscan
pointers, and the sysopsub field. Because of this, you would think that the
USER.LST file itself would be smaller, but planning ahead is prudent and a
hefty amount of padding spread throughout the new userrec has been added. The
reason for this should be fairly obvious: people can use or change the
padding for whatever reason they wish, but utilities that are written for
this userrec will >*still be compatible*<. This is the single most useful
improvement over the prior structures. No more incompatibility problems such
as many of us have experienced over the past few years.
You can also see that there are several fields *added* to this structure:
an enhanced set of FROM fields (with a country field, and a zipcode field
large enough to accommodate both the extended US zipcodes as well as the
Canadian zipcodes), a language field, and some general purpose statistical
fields (deletedposts, chainsrun, banktime, gfilesread, filepoints). A field
for data telephone number was also added, and the color fields were expanded
to accommodate 10 ansi colors and 10 black-and-white colors (hey, there's
10 numeric keys, why not use 'em).
*HOWEVER*, some people seem to be making the assumption that because all
these fields are now going to be stock, that Wayne himself is going to
immediately use all of them internally. Not so. Some of them, maybe even
all of them, will not see use by Wayne, almost definitely not immediately.
Many or all of these additions are because large numbers of people already
add these fields in every time anyway. It's likely (and probable) that if
you wish to make use of them, you will have to add the code to do so
yourself. The storage has simply been allocated ahead of time, in an effort
to make long-term userrec compatibility vastly easier to attain (and
maintain).
I suspect that a little bit after 4.22 is released we shall see a fair number
of modifications that implement some of these additional fields. The planned
purposes for some of the additional fields are as follows:
FIELDNAME PURPOSE
──────────── ─────────────────────────────────────────────────────────────
colors[10] Ten user-definable ansi colors, instead of 8 (0-9).
bwcolors[10] For consistency with the ansi colors.
deletedposts How many posts the caller has made that have been deleted by
a sysop or cosysop.
chainsrun How many "chains" the caller has executed.
gfilesread How many gfiles the caller has viewed.
filepoints How many "points" the caller has to spend on downloading
files.
banktime How many minutes the caller has "stashed" in the virtual
"bank".
language Numeric value (much like computer type) representing this
caller's default viewing language (0=English, etc).
dataphone The caller's data (or BBS) telephone number.
note General-purpose note about the caller. Not an addition, but
expanded by twenty characters.
street The caller's home street address.
city The caller's home city.
state The caller's home state.
country The caller's home country (three-character designator).
The various res_xxxx fields are reserved for additional fields of a specific
type, either for later use by Wayne, or for you to make use of without
making your userrec incompatible. Fully one third of the new userrec is
devoted to this compatibility-maintaining padding (so I, for one, won't
have a lot of pity for anyone who goes so far as to make their userrec
incompatible - you'd really have to try hard to make doing so necessary).
Wayne made all these changes, indirectly, from suggestions from others.
Actually, I asked if the time was right for this level of change and asked
if I could coordinate it if so. I was somewhat surprised when he agreed.
Since I cannot think of everything myself, I solicited suggestions from about
three dozen boards or so (a representative sampling of the entire network),
and did the above design, then submitted it to Wayne. Wayne then tweaked it
somewhat (I hadn't allocated an extra character for a null terminator for
the state and country fields, and he wanted the sysopsub moved into one of
the additional files in order to prevent unnecessary opening and closing of
files).
Hopefully this has been a semi-lucid explanation of the intended purposes of
the new fields, as well as an indicator that Wayne most certainly does take
suggestions seriously and - if they're reasonable ones - implements them,
even when the changes are this sweeping. I *highly* recommend upgrading to
v4.22 when it is released - for the userrec structure alone, even if the
ability to have sub-gating and up to 999 subs and dirs isn't enough for you.
This "next-generation" userrec will enable third-party developers to write
better software, easier and quicker, usable by more people than ever before.
The userrec enhancement alone makes the 4.22 version of WWIV the single best
upgrade (in my opinion) - ever.
───────────────┬─────────────────────────────────────────────┬───────────────
│ Filo's Mod of the Month │
│ by Filo (1@5252) │
└─────────────────────────────────────────────┘
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.
This month's mod is by Lady Danica and offers a means of e-mailing the sub host
from BOARDEDIT.
─────────────────────────────────────────────────────────────────────────────
Editor's NOTE: some of the lines of code are larger than 80 characters, and
have been split by a CTRL-A. Be sure you correct these lines prior to
installing this mod.
"Thou hast been warned..."
─────────────────────────────────────────────────────────────────────────────
┌───────────────────────────────────────────────────────────────────────────┐
│ Mod Name: LDANICA2 Mod Author: Lady Danica 1@15286 │
│ Difficulty: 1 file, 3x 5-line blocks Date: It's 16 Oct, 1992 │
│ WWIV Version: v4.21a (maybe others; ask an expert, not me) │
│ Description: Write email to sub hosts right from boardedit, if the sub │
│ isn't autorequestable. Even adds a special "RE:" line. │
└───────────────────────────────────────────────────────────────────────────┘
#include WITTY_DISCLAIMER
Step 0: Just do it. The programming gods are watching you, and if you
don't do it, they'll see that and punish you for it.
Step 1: In SUBREQ.C, void sub_type_change, look for:
rem_from_files(r->type);
}
if (!ok) {
npr("\r\nYou should email 1@%u and ask to be dropped from sub type %u.
\r\n\r\n",ui, r->type);
And add this: (right after the previous excerpt, Dilbert)
/* begin LDANICA2.MOD */
npr("Would you like to write the mail now?\r\n");
if (yn())
{
sprintf(irt,"RE: Sub Type %u - DROP Request", r->type);
email(1,ui,0,0);
}
/* end LDANICA2.MOD */
Step 2: Go a bit lower down (3-4 screens), and find:
npr("\r\nAutomated add request sent to @%u\r\n\r\n",ui);
pausescr();
} else {
npr("\r\nYou should email 1@%u and ask to be added to sub type %u
.\r\n\r\n", ui, type);
And then add: [guess where?]
/* begin LDANICA2.MOD */
npr("Would you like to write the mail now?");
if (yn())
{
sprintf(irt, "RE: Sub Type %u - ADD Request", type);
email(1,ui,0,0);
}
/* end LDANICA2.MOD */
Step 3: Find this (about another screenful down):
sub_req(main_type_sub_add_req, type, ui);
} else {
npr("\r\nYou should email 1@%u and ask to be added to sub type
%u.\r\n\r\n",ui, type);
/* NOTE: above line reformatted to fit 80-columns */
And guess what you do now?
/* begin LDANICA2.MOD */
npr("Would you like to write the mail now?\r\n");
if (yn())
{
sprintf(irt,"RE: Sub Type %u - ADD request",type);
email(1,ui,0,0);
}
/* end LDANICA2.MOD */
Step 4: Don't even bother sending money; it's too late. I already died of
malnutrition and complications thereof. But, some e-mail would be
nifty; it'd look really nice on the coffin. Closed casket, as
starvation isn't pretty!
#include POINTLESS_THANKS
#include WITTY_BBS_ADD
───────────────┬─────────────────────────────────────────────┬───────────────
│ Dateline: @#$*()#! │
│ Editor's Notes by Omega Man (1@5282) │
└─────────────────────────────────────────────┘
Before I get to this month's editorial/call for articles, I'd like to take a
moment of "Mea Culprit" and correct a mistake made in last month's issue.
Apologies go out to Spackle, who is not 1@1995, but 1@19955. Somewhere in the
transfer of the document from one machine to another, a 5 got dropped between
the cracks. Sorry about any confusion caused by this error, and rest assured
it's been corrected for this and the final installment of Spackle's series on
.GIF compression techniques.
Another apology goes out to everyone who's requested back issues of WWIVnews,
and either hasn't gotten a reply or been able to log on to Klingon Empire and
download them. At this time, the "guest" account for @5282 hasn't been set up
yet, as I need to fix a nasty little bug that allowed some 13-year-old pest
to log on and change the account to suit his fancy. When this is taken care
of, the guest account will be opened for all to call and download all the
back issues of WWIVnews they can stomach! Until then, we apologize for the
inconvenience, and appreciate your patience.
On a side NOTE, the pest I mentioned is a sysop of a part-time Telegard BBS.
So go figure...
Finally, I'd like to dispel a rumor that's been going around lately about
WWIVnews. It is in no way, shape or form true that the December issue of
this electronic newsletter will contain a 32k infomercial for OS/2 that will
be indistinguishable from the normal editorial content. That sort of trick
may have been tried in the pages of _PC Magazine_, but it won't happen here,
I assure you!
So, with all apologies aside, let's get to this month's editorial/call for
articles, shall we?
As most of us know by heart, the first official network for WWIV was, of
course, WWIVnet. Founded on elements from both benevolent totalitarianism and
controlled anarchy, WWIVnet was somewhat of a different environmental approach
to BBS networking than anything previously attempted on a national level of
distribution. In retrospect, it probably should have come as no surprise when
the first rumblings of discontent were heard regarding the way WWIVnet was
being managed and utilized. It should also have come as no surprise when
roughly 150 systems abandoned ship and formed the first alternative WWIV
network, WWIVlink.
Alternative WWIV networking is therefore not a new concept. WWIVlink itself
has been around for over two years now, not to mention the fact that there have
been Usenet and Fidonet interfaces running around with varying degrees of
functionality for at least as long. Prior to 4.21a, however, running a board
with more than one WWIV network usually required either running a BBS for
each network you wished to carry - which required its own set of specialized
network executables - or modding the source using your own coding and at your
own risk. This risk, not to mention the inconvenience of having to extensively
mod the source to account for an extra network, was too great for most people.
Many felt the safest recourse was to simply run one network and be satisfied
with that.
With the arrival 4.21a in August of this year came something of a welcome
surprise: built-in multi-net capabilities. Overnight the risks and headaches
of running a BBS with more than one WWIV network virtually went out the
window. With the exception of WWIVlink, virtually all the WWIV alternative
networks could now be accessed using one BBS, and with a little extra work
gatewaying between those networks was finally within reach as well.
About the same time, Wayne used his column in _WWIVnews_ to explain his
policies regarding the registration of the netup program, as well as
his views on starting an alternative WWIV network. Wayne stressed that starting
a network wasn't all fun and games, and that it was a lot of thankless work
that took real dedication. Granted, a network coordinator's job possesses a
bit of prestige included with the satisfaction of a job well done, but there's
a lot of labor and headaches that one must go through as well as part of the
process. Running a WWIV network - or any network, for that matter - takes a
lot of dedication and hard work, and those in it for the glory and the power
probably need not bother trying to register the network source.
To further discourage those without the proper commitment and motivations from
starting networks that would be doomed from the start, Wayne also announced
that the registration fee for the netup program would be $300. Despite the price
tag, several people made serious inquiries, and one in particular resulted in
IceNET. Other, more enterprising individuals decided that the price was too
steep, and began work on their own set of third-party WWIVnet-compatible
executables. The first of these, the Network Coordinator by Doctor Fred
(FREDnet 1@1, WWIVnet 1@9800) has already been announced on several of the
National-level sysop subs, and rumors are heard through the E-mail paths
of at least two other Coordinator-configurable shareware clones of EN1 and
DE1.EXE that are currently in beta-test.
So, it should really have come as no surprise that as soon as WWIV 4.21a was
declared a stable version, that there was a population explosion in the number
of alternative WWIV networks. Overnight we saw the births of WWIVgrid, GayNet,
DrakeNet, and several other specialized networks. IceNET itself saw a massive
jump in membership, and interest grew from within WWIVlink in making the
original alternative network a bit more accessible to the WWIVnet it left
behind in disgust.
However, there has been some question of late as to whether or not the global
WWIV community of sysops and users will actually benefit from this sudden
increase in the number of available networks. Most of the sysop subs on both
the national and local levels have seen an increase in traffic regarding this
topic, and while most of the conversation has been rather devoid of the
expected combustion, the conclusions reached have been rather mixed and
somewhat incomplete.
So, as you may have guessed by now, this retrospective is an introduction of
sorts for an official call for articles. The November WWIVnews - that's next
month's issue - will be a special issue dedicated to alternative WWIV-based
networks. The technical, operational and ethical aspects of this radically
new and advanced facet of WWIV networking will be analyzed in detail in an
attempt to present the world-wide WWIV community with as complete a set of
facts and figures as possible. With this information in hand, the future of
Multinetted WWIV can be plotted with a bit more ease than the usual shots in
the dark that we've reveled over in the past.
However, for this issue to become a reality, your help is needed. This is an
official call for articles and opinion pieces on the subject of alternative
WWIV networking and WWIV 4.21a's new Multi-Net capabilities. If you are a
Coordinator for an Area, Group, Server, Zone, or even an entire Network itself,
or even if you're just an average "Joe User" who likes to haunt the networks,
you are urged to contribute your views, opinions, knowledge and information
on any aspect of this special topic. Technical articles, operational analysis
and testimonials, opinion/editorial pieces, anything relating to this topic
are requested and welcomed.
The deadline for submissions is November 24th, with the issue being sent for
distribution the following night. Those wishing to submit articles for this
special issue are also urged to request a WWIVnews Writer's Guide by E-mailing
1@5282. This guide contains valuable information on how to compose, format and
submit articles for print in WWIVnews, and no sysop or user who has the urge
to write for a networked electronic newsletter should be without at least one
copy.
Again, your assistance is appreciated in this call for articles. If you know
of an NC, ZC, SC, GC, AC, or of someone who would definitely be able to
contribute to the topic, please feel free to drop them a copy of this editorial
and let them know what's going on. As not all alternative networks receive this
newsletter even though it's part of the general WWIVnet distribution, there's
always the possibility that someone won't hear the call for articles because
it wasn't directed their way.
See you in a month, and keep those e-mails and articles coming!
┌───────────────────────────────────────────────────────────────────────────┐
│ Closing Credits │
├───────────────────────────────────────────────────────────────────────────┤
│ WWIVnews is an independent newsletter published monthly as a service to │
│ the WWIV community of sysops and users. The opinions and reviews expressed│
│ herein are the expressed views of the respective writers, and do not │
│ necessarily reflect those of the WWIVnews staff. Reproduction in whole or │
│ in part is allowed provided proper credit is given. All rights reserved. │
├───────────────────────────────────────────────────────────────────────────┤
│ The distribution sites for WWIVnews are the Klingon Empire BBS (512-459- │
│ 1088), WWIVnet node @5282, and the WWIVnews Editorial Desk networked │
│ subboard, subtype 15282 host 5282. Information regarding article and │
│ editorial submissions, back issue requests, and the WWIVnews Writer's │
│ Guide, can be requested in e-mail from the WWIVnews editor, 1@5282. │
├───────────────────────────────────────────────────────────────────────────┤
│ WWIV and WWIVnet, copyright 1986,1990 by Wayne Bell │
│ Any product or company mentioned or reviewed herein are copyrighted of │
│ their respective owners, creators, and other corporate pseudoentities. │
└───────────────────────────────────────────────────────────────────────────┘