wwivbbs / wwiv

WWIV BBS Software v5
http://www.wwivbbs.org
Other
186 stars 71 forks source link

in binkp, make it possible to add .flo files for wwivnet nodes. #1549

Open ericpareja opened 1 year ago

ericpareja commented 1 year ago

with the current code, binkp sends only one file to wwivnet nodes, Snodenumber.net. whereas ftn nodes can have multiple files sent as directed by .flo files.

will do more reading on how filenet did things, but being able to transfer files other than s.net files will give the wwivnet infra more room to maneuver and to grow. this will also bypass the limits of wwivnet packet sizes if we can send files besides the s.net file.

wwiv commented 1 year ago

filenet encoded things into wwivnet packets IIRC, but ask Frank, he helped make all of that

ericpareja commented 1 year ago

if i'm not mistaken, they took advantage of using email to transfer packets and files by uuencoding them.

from PPP README.DOC

The BBSLIST/CONNECT and associated network files are standard WWIV.
When you force a callout (from WFC or DOS), the program checks to
see if an ADDRESS.NET exists in the network directory.  If not, the
program ends, and normal network routines are used.  If ADDRESS.NET
contains an Internet account for the callout node, the program takes
control.  Pending packets (S*.NET and Z*.NET) for anyone listed in
the ADDRESS.NET are packed in UUE format with a message header
containing the appropriate addressees.  These are placed into an
MQUEUE directory (pending transmission).  The original packets are
then moved to a SENT directory (with a filename of the UNIX time, in
hex).  A PPP session is established with your ISP, packets in MQUEUE
are sent via your defined sendmail host and packets are received
from your defined POP server.

C.  POP3 routines.

The program can retrieve all packets from your POP3 server or just
those it identifies as network packets.  To determine whether email
should be retrieved, the first 25 lines of each message are viewed
by the program (using the POP3-specific "TOP" directive).  The lines
are scanned to see if they contain the words "begin 600" (a UUE
packet signature) with a file extension of NET (a net packet),
ZIP/ARJ/LZH (an archive) or GIF/JPG (a graphic file).  Email which
doesn't meet this criteria is left on the POP3 server for you to
read with your normal email program (Eudora, PMPop, Pegasus or
whatever).
wwiv commented 1 year ago

Not needed with binkp, the whole packet was uuencoded since not every mail server at that time supported a binary attachment properly.

Filenet used a main_type_file or something, with a special binary header that described what to do with it. Then just put the data into a wwivnet packet of that type. This is also how netup sends out the binkp.net, bbslist.net, and the rest of those files.

Here are those from NFT, not sure we need to match it since I doubt any of those tools work anymore and I don't have source to port forward to linux/win32.

/*************************/
/* FTS System Structures */
/*************************/
#ifdef USE_FTS
struct fts_header
{
    char            filename[13];       /* name of file */
    long            filesize;           /* size of file */
    char            description[59];    /* description  */
    unsigned long   crc32value;         /* crc value of file */
    short           maintype,           /* fts maintype */
                    fdltype,            /* fdl type */
                    chunkcount,         /* number of this chunk */
                    totalchunks;        /* total number of chunks */
    char            sysname[60],        /* name of originating system */
                    tonet[16];          /* destination network name */
    short           tosys,              /* destination system */
                    touser;             /* destination user */
    char            fromnet[16];        /* originating network name */
    short           fromsys,            /* originating system */
                    fromuser,           /* originating user */
                    ver,                /* version of fts system */
                    info;               /* 1=key 2=sec'd file req  */
    char            xtrastuff[16];      /*                                */
};

#define fdl_requestable 0x0001
#define fdl_postable    0x0004
#define fdl_wwivreg     0x0008

struct fdlrec_rec
{
    char  name[61];
    short fdl,
          host;
    long  status;
    char  res[41];
};

struct bltrec_rec
{
    char  name[61];
    short blt,
          host;
    long  status;
    char  res[41];
};

#endif
ericpareja commented 3 months ago

For reference on BSO flow and control files: http://ftsc.org/docs/fts-5005.003

See also http://wiki.synchro.net/ref:fidonet_files