home *** CD-ROM | disk | FTP | other *** search
- FSC-0028
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- Preamble
-
- Copyright 1988 Greylock Software, Inc.
-
- POBox 730
- Gt Barrington MA 01230
-
- FidoNet>1:321/202.0
-
-
- Synopsis
-
- This started as a reverse-engineered technical description of the
- core operations of Ron Bemis' Flea program, and an attempt to
- formulate a new specification which is a more symmetric superset
- of that functionality. Specifications for Mr. Bemis software is
- available with that software, which is not freely distributed.
-
- This document ONLY addresses the format of files transferred
- between systems. It does not address configuration information,
- which is really an implementation specific issue.
-
- This is currently only a base for discussion, which should be
- carried on in the SOFTWARE (SDS) and FTSC conferences.
-
-
- Distribution
-
- This document may be freely distributed, so long as it is
- complete.
-
- Comments should be directed to:
-
- Barry Geller: 266/12
- Tom Hendricks: 261/662
- Harry Lee: 321/202
- Rick Moore: 115/333
-
-
- 1 General
-
- 1.1 Existing Tools
-
- 1.1.1 FileFwd
-
- FileFwd is a program by Joe Keenan whose primary purpose is to
- move consistently named files on a routed, regular basis. It is
- extremely useful for routing echomail packets through intermediate
- nodes without unpacking and re-packing at each of the stations.
-
-
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 1 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- 1.1.2 Flea
-
- Flea is a program created by Ron Bemis which is used to broadcast
- files in a manner similar to EchoMail. It is the primary tool
- used by the FidoNet Software Distribution System.
-
- Specifications for the Flea program are ostensibly available from
- the author.
-
-
- 1.1.3 GlueFwd
-
- GlueFwd is a distributed document control system from Greylock
- Software that was considered and rejected for use by the FidoNet
- Software Distribution System.
-
- Unlike Flea and Tick, GlueFwd uses messages to contain the
- associated routing information.
-
-
- 1.1.4 Tick
-
- Tick is a program by Barry Geller, which performs approximately
- the same functions as Flea, but uses a unique associated
- information file format.
-
-
- 1.2 Basics
-
- 1.2.1 Associated Routing Information
-
- There are a number of problems associated with file routing,
- either point to point, or broadcast. The basic problem is how to
- handle the associated routing information. The approaches involve
- a spectrum ranging from information contained ONLY on the systems
- handling the files to carrying the information WITH the files
- being handled.
-
- In addition, there is the choice of how this information is to be
- conveyed. The choices range from associated files, to messages.
-
-
- 1.2.2 Name Collisions
-
-
- 1.2.3 Larva - starting the process
-
- The "Larva" process is usually invoked by the user at the command
- line. This is how a file is put in motion. It creates the
- appropriate outbound .Fle files and the file attach information
- required by the given mailer environment.
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 2 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- 1.2.4 Flea - moving stuff along
-
- The "Flea" process is the one that moves the files along. It does
- the following:
-
- Check the inbound for .Pre file, and process any that are
- releasable as you would a normal .Fle file
-
- Check the inbound for .Fle files, and process each as follows:
-
- Parse the .Fle file, making sure its associate file exists, it
- comes from a valid source, and that it is not a pre-release. If
- any of those conditions are violated, the file is renamed either
- to .Bad or .Pre.
-
- If all is well, move the file to the appropriate path associated
- with the area, and, if possible, update the FILES.BBS file.
-
- Using a Larva-like process, send the file along to any nodes in
- your echo list that have not seen the file.
-
- A Flea process is generally run whenever inbound mail is received.
-
-
- 1.3 Nomenclature
-
- 1.3.1 [Required]
-
-
- 1.3.2 {Optional}
-
-
- 1.3.3 Address: {Domain>}{Zone:}Net/Node{.Point}
-
- In the context of Flea 2.x, only Net/Node style addressing is
- supported.
-
-
- 1.3.4 Dates
-
-
- 2 New Forwarding Format (TICK)
-
- 2.1 General Goals
-
- 2.1.1 Removing order dependency
-
- The current structure of .Fle files is very order dependent. In
- some cases, .Fle file lines have verbs, in others, they do not.
- Presumably, Flea proper will have problems processing lines beyond
- the description that are not in the proper order.
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 3 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- This weakness should be eliminated, essentially by insisting on a
- verb per line, which makes possible free-form parsing, eliminating
- order dependency. Within some groups of entries with the same
- verb, order dependency may be required.
-
-
- 2.1.2 Limiting the type of information contained in a given datum
-
- Flea 2.x very often carries different types of information on a
- given line. While on the surface, this seems like an economical
- way to do things, it can lead to complications later on.
-
- Therefore, it is a general design goal to keep the type and use of
- a given datum associated with a given verb very clean.
-
-
- 2.1.3 Removing Case Sensitivity
-
- Flea is currently very case sensitive. Software should be soft.
-
- An argument has been made that case sensitivity is a protection
- against bad files being inserted into the system. If someone
- wants to generate a trojan horse, they will need passwords (the
- primary protection), and in all likelihood would use some sort of
- Larval tool to generate it anyway. Case sensitivity makes it
- slightly more difficult for a developer to "enter the fray".
-
-
- 2.1.4 Removing Inconsistent Colon Usage
-
- Flea currently is haphazard in its usage of colons after verbs.
- Colons should be made optional (or eliminated) on all verbs.
-
-
- 2.1.5 Optional Multiple DESC lines
-
- Flea currently supports a single description line, which is
- additionally position sensitive. By creating a DESC verb, the
- position sensitivity can be eliminated, and multiple DESC lines
- can optionally be supported.
-
- At the current time, .Tic files use the DESC verb, but multiple
- DESC lines are not permitted. Minimal compliance will be to
- handle one; multiple lines will be addressed later.
-
-
- 2.1.6 App (Application) line support
-
- In general, all mechanisms in FidoNet should allow for
- growth/variation by other developers in a non-harmful manner.
-
- In the case of Flea routing files, an APP verb with non-specific
- data should be provided for. For example, let's assume that UPCL
- supports some sort of a "return receipt" functionality - when a
-
-
-
- Copr 1988 Greylock Software, Inc 4 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- file hits you, so long as it's posted to your area, and with the
- sysop's consent (in the form of a configuration option), a message
- is sent to the Origin node.
-
- This might be done as follows:
-
- APP GREYLOCK Return-Receipt
-
- The "Greylock" sub-verb would keep APP conflicts from occurring.
-
- Processors other than UPCL would pass the line through to any
- rebroadcast .Tic files intact. (In fact, so would UPCL.)
-
- App lines, taken as a group, are order dependent. A Tick
- processor should output App lines created during forwarding in the
- same order they read them, and if a Tick processor creates new App
- lines, they should be added to the end of the existing App line
- list.
-
- Once the majority of processors support a given APP functionality,
- it might be moved to the spec proper.
-
- Indeed, any lines with "unrecognized verbs" should be passed
- through intact, and in the order encountered.
-
-
- 2.1.7 Use of PATH construct rather than sby kludge
-
- Seenby information is more easily digested by humans (and
- programs) if it is sorted. Unfortunately, such sorting removes
- the ability to use it for both seenby, and path information as it
- is in Flea 2.2. In addition, the mechanism used by Flea 2.2
- precludes tiny seenby's, or Zone gating.
-
- Therefore, a PATH construct, much like an EchoMail PATH line
- should be used, instead of the current mechanism. Once again,
- order dependency should be discouraged. Within a group of path
- lines, obviously, order is important.
-
-
- 2.1.8 Multiple Sby's per Sby line
-
- The current seen-by construct, with one seenby per line, with the
- word seen-by required on each line is hideously inefficient.
-
- This should be changed to mimic echomail's seen-by handling, where
- multiple seenby's are contained on each line, up to 78 or so
- characters worth.
-
- A possible reason to keep the seenby down to a single entry per
- line is if information on how and when that node got the file is
- to be included. While this might be worth considering, it will
- add considerable weight to the .Fle file.
-
-
-
-
- Copr 1988 Greylock Software, Inc 5 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- At the current time, Tick files are assumed to have one seen-by
- per line.
-
-
- 2.1.9 Full (Optional) Domain, Zone, and Point support
-
- In order to allow for the future growth of the network, and
- interactions with other networks, addresses should be able to
- contain a fully qualified FidoNet address:
-
- Domain>Zone:Net/Node.Point.
-
- Further, given that many authors' primary machines are points, the
- result is as shown in the sample above: completely unknown
- addresses appearing in the .Fle files.
-
- Of course, these should not be required, but used as necessary.
-
- At the current time, Domains are completely unsupported, and
- should not be used.
-
-
- 2.1.10 Different extensions to avoid problems with Opus Style Outbound
-
- The extension .Fle was chosen because it leads to some expedient
- side effects in the form of file truncation/elimination by Opus or
- Binkley when the files reside in the outbound directory.
-
- On the other hand, both Opus and Binkley explicitly specify their
- outbound areas should be used ONLY for that. A number of
- Binkley/Opus developers have expressed concern with this problem.
-
- For this, and other reasons, .Fle files should be given a new
- extension of some sort, one that is not closely related to the
- commonly used routing/message file extensions. In addition,
- rather than the three divergent extensions now used by Flea (.Fle,
- .Bad, and .Pre), any and all extensions used by file routers based
- on this technology should use extensions that are more closely
- grouped.
-
- As an ancillary note, the FTSC should consider a "File
- Specification Pattern Registry". This would not be limited to
- network tools, and it would not be an indication of ownership, it
- would simply be a reference.
-
-
- 2.1.11 RFC-822 Format
-
- It might make some sense to consider using an RFC-822 compatible
- format for these files. In a future version of this document,
- I'll detail this possibility.
-
- It would also be nice from the point of view of implementing a
- similar system on UseNet/Internet flavored systems.
-
-
-
- Copr 1988 Greylock Software, Inc 6 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- 2.1.12 Valid pairing of associated info file and file proper
-
- We need a mechanism to insure that the primary file and the
- associated information file are a valid pairing.
-
- Consider the following scenario ...
-
- System allows overwrites. A file and associated .Tic arrive.
- They are, for whatever reason, not processed. A file by the same
- name comes in. The pair is no longer valid, but given current
- technology, it would be passed along.
-
-
- 2.2 Considerations
-
- 2.2.1 Up and downness
-
- 2.2.1.1 Single Uplink
-
-
- 2.2.2 Table driven duplicate elimination
-
-
- 2.2.3 Mapping between distribution and on-line organization
-
- There is a problem in the current implementation in that the local
- organization of a system tends to defeat the duplicate catching
- aspects of the system.
-
- I.E., the SDS currently sends out ALL FidoNet files in one
- "channel". Many systems move files of this category or that to
- unique directories.
-
-
- 2.2.4 Many features are intended for local optional implementation
-
- Many of the features in this specification obviously affect how
- individual sysops run their systems. As such, these features
- should be optionally supported by each sysop, although the
- information should be passed through the associated information
- file regardless of whether or not they support the feature.
-
-
- 2.3 Schematic of .Tic file
-
- Area{:} [AreaName]
- {Release{:} [Time]}
- {Replaces{:} [FileName]}
- File{:} [FileName]
- DESC{:} [Description]
- {DESC{:} [Description]}
- {Size{:} [Bytes]}
- {Date{:} [FileDate]}
- {CRC{:} [Calculated CRC-32 (in hex?)]}
-
-
-
- Copr 1988 Greylock Software, Inc 7 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- Origin{:} [Address]
- From{:} [Address] [Pwd]
- {Created{:} [Program Banner]}
- Seenby{:} [Address] {Address} ...
- {Seenby{:} [Address] {Address} ...}
- {APP{:} [Application Specific Information]}
- Path{:} [Address] {Address} ...
- {Path{:} [Address] {Address} ...}
-
-
- Note this file is NOT order dependent. Some of the newer features
- are more for discussion than anything else.
-
-
- 2.4 Nomenclature and Rules
-
- 2.4.1 Address Format: Zone:Net/Node{.Point}
-
-
- 2.4.2 Don't Barf on appended or unknown stuff
-
- Lines that are unrecognizable (i.e., non-existent or non-supported
- verbs) should be passed through untouched.
-
- Lines that have additional data beyond the required data
- (separated by whitespace) should not cause the system to fail,
- although it is obviously difficult to pass this information
- through.
-
-
- 2.4.3 One or zero items of a given type unless otherwise specified
-
-
- 2.4.4 Simple ASCII Alphabet
-
-
- 2.4.5 Unix Date Time Formats
-
- All times are expressed as a long decimal in Unix format - the
- number of seconds since 1970.
-
-
- 2.4.6 [Required Data]
-
-
- 2.4.7 {Optional Data}
-
-
- 2.5 Detail
-
- 2.5.1 App [Ref] {Info}
-
- This is a "pass through" line to allow developers some room for
- development without breaking other developer's work.
-
-
-
- Copr 1988 Greylock Software, Inc 8 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
-
- An APP line should have the following form:
-
- APP [AppRef] {App Information}
-
- or
-
- APPLICATION [AppRef] {App Information}
-
- Application lines should have their order preserved, and
- applications adding lines should do so at the end of the existing
- application list.
-
-
- 2.5.2 Area [Name]
-
- Area names should probably be limited to 8 characters, with
- alphabet restrictions, to simplify their implementation.
-
- This is a mandatory line, and only one should exist in the file.
-
-
- 2.5.3 Author [Name]
-
- This is an item for discussion.
-
-
- 2.5.4 CRC [Decimal CRC Value]
-
- As .Fle files stand, it is possible to "slip something in" to the
- pipe, particularly if .Fle files are processed only once in a
- while as opposed to after each inbound call.
-
- A number of the proposed (and optional) features here provide
- safeguards against this. Specifically, computing the file CRC,
- and preserving the original file date and size in the .Tic file.
-
- This has some value as a verification tool, without the legal
- encumbrances of PKSCrypt, etc.
-
- This probably should be a CRC-32 value. This would also closely
- follow some of the ideas that are being considered for echomail
- processing.
-
- This is currently a point for discussion. It probably should be a
- mandatory field.
-
-
- 2.5.5 Created [Program Banner]
-
- This should contain some program identification information of the
- program that generated the attach information.
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 9 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- There might be some standard format for the first part of this
- line, allowing for variant information after this.
-
- This is an optional line.
-
-
- 2.5.6 Date [Date/Time of creation]
-
- This is a check for valid file pairing between the associated
- information file and the primary file. It is the file date stamp
- of the primary file in Unix format.
-
-
- 2.5.7 Desc [File Description]
-
- This is a description of the file. There is as yet unspecified
- length restriction on this line.
-
- At the current time, exactly one of these lines should appear in
- the Tick file.
-
- In the future, more than one line may be supported.
-
-
- 2.5.8 Dest [Address]
-
- This is related to Route (qv)
-
-
- 2.5.9 Encrypted [PKS Key]
-
- Read the section on "GARBLE", and change it as follows:
-
- The file is initially encrypted using a PKS style encryption.
- This would be the ONLY time the file is encrypted. The FTSC or
- someone would have to collect a list of valid public keys of
- authors (and probably eventually everyone). The file would then
- be of "known-quality", or at least from a known source. The key
- would be included in the .Tic file for ease of operation.
-
- The ramifications of this are considerable. First off, PKSCrypt
- is something the spook types in the world are bothered by.
- Secondly, the source is not available, and the program does not
- work on some machines (i.e., my 386.) Large keys would probably
- have to be used so a large number of possible keys will exist,
- which means considerable encryption and decryption processing
- time. Finally, there is the question of a "Key registry", and how
- you verify them.
-
- I am not sure if this and Garbled are and/or or either/or.
-
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 10 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- 2.5.10 File [FileName]
-
- ONLY a filename (no path information) is contained on the FILE
- line. No wildcards.
-
- Exactly one of these lines must exist in a Tick file.
-
-
- 2.5.11 From [Address]
-
- This is the address of the system sending the file on the current
- leg.
-
-
- 2.5.12 Garbled
-
- This is really just a thought for consideration than anything
- else.
-
- If this is present, the file referenced by the .Tic file is
- assumed to be archived (we'd have to address the issue of
- "deviant" archivers") by an agreed upon password between the
- sender and the sendee.
-
- The ramifications of this are considerable. It would mean that
- individual archives would need to be created for any node so
- protected, which would need to be deleted after sending. This
- implies a considerable expenditure of time and resources to create
- and store these archives.
-
-
- 2.5.13 Log [Comment]
-
- This is another one for consideration. Any such lines would be
- displayed on the console and/or the system log.
-
-
- 2.5.14 Magic [FileName]
-
- This is food for thought.
-
- In order to resolve and standardize version numbering in file
- names, and magic file names, this might be used to distribute a
- "magic file name" with a given file.
-
- More than one of these lines might exist.
-
-
- 2.5.15 Origin [Address]
-
- Where the file originally entered the system.
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 11 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- 2.5.16 Path [Address] {Arrival}
-
- Path lines are, among themselves, order dependent. However, they
- need not be contiguous.
-
- The current path specification allows for only one address per
- path statement.
-
- It might make sense to leave it this way, and add an "Arrival
- time", which would be the time the file was processed.
-
- I.E., the file would start out with the path for this node and the
- next node with the time of creation. When it gets to the next
- node, he changes his time to the time of processing, and puts out
- a similar line for the node(s) he sends to.
-
-
- 2.5.17 Pw [Password]
-
- This is the password between the sender and the sendee. This
- password is not case sensitive.
-
- Exactly one of these lines must exist in a Tick file.
-
- It would be nice to have some method of password securing that did
- not require the password to be exchanged in clear text.
-
-
- 2.5.18 Release [DateTime]
-
- This is an optional line used to contain a Unix Date Time (seconds
- since 1970) of the release of the file.
-
- The handling of this is really murky as far as I can tell. A
- brief digression into "political structures."
-
- Let's consider the case of the SDS. In SDS, it has generally been
- assumed that ONLY nodes that are a part of the SDS get their files
- using Flea/Tick technology. However, whether it is aware of it or
- not, this is not the case.
-
- Here's what I think was intended: a file comes in with a
- Pre-release time set. That is the time at which the file is moved
- to the publicly available area. I am not sure whether it is
- passed along the chain until that date, or if it is simply not to
- be made "publicly available" until that date.
-
-
- 2.5.19 Replaces [FileName]
-
- Only a filespec, no path information, is contained on this flavor
- line.
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 12 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- A REPLACES line is used to optionally (at each given node) dispose
- of older versions of the file being sent out. For instance,
- Binkley releases are named:
-
- BEXE_XXX.Arc
-
- Assuming the next version of Binkley was 2.10, and assuming
- REPLACES was enabled for the given area, the file named on the
- REPLACES line would either be erased or moved if found.
-
- I.E.:
-
- FILE BEXE_210.Zoo
- REPLACES BEXE_*.Arc
-
- If these lines are encountered, and replacement is allowed, and
- BEXE_200.Arc was found, it would, in some way, be removed from the
- access directory.
-
- Wildcards should be allowed, but should also be used with care.
-
- Multiple REPLACES lines should be allowed.
-
-
- 2.5.20 Route [Address]
-
- This is just thinking out loud.
-
- These would have to be order dependent. They would be set up at
- the point of creation, and there would have to be agreements all
- along the way.
-
- A political nightmare, but very useful in a corporate environment.
-
- Collisions are a very real problem here.
-
-
- 2.5.21 RtRcpt {Address}
-
- This is an item for discussion more than anything else. It would
- be nice to have a means to find out how far your files have
- moved. On the other hand, there are significant Policy type
- considerations for such a functionality.
-
- If the optional address is omitted, the ORIGIN is used.
-
-
- 2.5.22 Seenby [Address] {Arrival}
-
- The current seenby specification allows for only one seenby per
- line.
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 13 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
- Seenby's are NOT order dependent. Seenby information is more
- useful in "alphabetical" than encountered order, although it is
- not a requirement.
-
-
- 2.5.23 Size [File Size in Bytes]
-
-
- 2.5.24 Source [Address]
-
- Where the file actually came from.
-
- This is a point for discussion. Let's consider the SDS again.
-
- In theory, SDS is a controlled system. Files are only supposed to
- enter it from a very limited subset of FidoNet. Currently, the
- Origin is the location the file was "launched" from, a very
- different thing than the author's address.
-
- The Source address, if present, is the address of a primary system
- used by the actual author.
-
- For instance, consider Binkley. Binkley is supposed to enter the
- system at the region 16 SDS node, although it is written by nodes
- that do not participate in SDS.
-
-
- 2.5.25 Topo {Address}
-
- This feature, if enabled, can be used to generate a topology
- report for the area specified to the given node. If no node is
- specified, the report should be sent to the Origin node.
-
-
- 2.5.26 Unidentified Verb Handling
-
- Lines with unrecognized verbs should be passed through. Order is
- a critical issue here. Unknown lines should be output in the same
- order they were input.
-
-
- 2.6 Feature Table
-
- Feature Status Count
-
- Area [Name] 1
- File [FileName] 1
- Path [Address] >=1
- Created [Text] 0-1
- From [Address]
- Origin [Address]
- SeenBy [Address]
- Path [Address]
-
-
-
-
- Copr 1988 Greylock Software, Inc 14 Dec 2, 1988
-
-
-
-
- FwdSpec - A Collection of Notes on Moving Files in FidoNet
-
-
-
-
-
-
-
-
-
-
-
- Unidentified Verbs
-
-
- 2.7 TK123456.Tic (Updated and amended slightly from Barry's Orig)
-
- Area TICKTEST
- File TEST.TXT
- Desc This is the file description Line!
- Origin 1:266/1
- From 1:266/13
- Created by TICK v1.00 - Copyright (C) 1988 by I. Barry Geller
- Release 59000000
- Path 1:266/21
- Path 1:266/13
- Path 1:150/1
- Seenby 1:266/21
- Seenby 1:266/13
- Seenby 1:150/1
- Pw TESTPW
-
-
- 2.8 Notes
-
- 2.8.1 The primary file should be sent before the associated file
-
- The actual file should be sent before the associated information
- file. Consider this was not done in the following scenario:
-
- Associated file sent
- Primary file partially sent - session fails
- System processes associated files, and fails to find last primary
- During next session, primary is sent, with no associated
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Copr 1988 Greylock Software, Inc 15 Dec 2, 1988
-
-
-