Heading:
Mesa 6.0 Pup and Ftp Update
Page Numbers: Yes X: 527 Y: 10.5"
Copyright c Xerox Corporation 1980
Inter-Office Memorandum
ToMesa UsersDateOctober 27, 1980
FromHal Murray, Mark SapsfordLocationPalo Alto
SubjectMesa 6.0 Pup and Ftp UpdateOrganizationSDD/SS/Mesa
XEROX
Filed on: [Iris]<Mesa>Doc>PupFtp60.bravo (and .press)
This memo outlines changes made in the Mesa Pup and Ftp Packages since the University release of December 20, 1979. This release is essentially a recompilation of the Pup and Ftp packages using Mesa 6.0. As usual, a number of bugs have also been fixed, and minor changes have been made to the interfaces. More complete information is available in the functional specifications stored on <Mesa>Doc> as PupPackage.press and FtpPackage.press.
Pup Summary
Changes
The following changes were made to Stream. The procedure types GetProcedure, PutProcedure, SetSSTProcedure, SendAttentionProcedure, and WaitAttention-Procedure now take a new initial argument sh: Handle. In addition, SendAttention-Procedure now takes a second argument byte: Byte (which is ignored), and WaitAttentionProcedure now returns a Byte (which should be ignored). As a result of these type redefinitions, the inline procedures SendAttention and WaitAttention have different calling sequences, and a new return value has been added to WaitAttention.
The following changes were made to PupDefs. PupRouterSendThis no longer returns a SendReturnCode. SendReturnCode (a TYPE) has been deleted. If the buffer could not be sent, it is discarded.
The arguments to EnumeratePupAddresses are now named. The order of the two arguments to PupAddressLookup has been reversed. The second argument to AppendPupAddress is now a PupAddress, instead of a POINTER TO PupAddress. Similarly, the argument to Print-PupAddress is now a PupAddress, instead of a POINTER TO PupAddress. The local: PupSocketID argument to PupPktStreamCreate and PupByteStreamCreate has been removed.
Additions
The procedures AppendHostName and AppendMyName have been added to PupDefs.
UseAltoChecksumMicrocode has been added to speed up processing if you are running on an Alto with XMesa in the ROM or an Alto with a 3K RAM. The overflow microcode loaded into the RAM by RunMesa.run includes the necessary additions. (Beware if you load your own microcode.)
Subtle Implementation Changes
GetPupAddress will no longer return an address for a dying net. EnumeratePupAddresses will now pass the client supplied procedure addresses on dead or dying nets, but only after processing all the addresses on nets that are reachable. (It used to skip addresses on unreachable nets.)
The byte stream internals have been reworked to eliminate several unpleasant delays while opening and closing connections. It is now possible to open a connection, send a thousand words, and close the connection in less than a second. (Since closing deletes three module instances, it will take longer if there are many active global frames.) A byproduct of this cleanup is that SendNow will send an empty aData packet to request an acknowledgment even if the previous SendBlock happened to end on a convenient packet boundary.
When sending a packet whose destination is the local machine, the Ethernet driver puts a copy on the input queue and acts as though it had sent the packet. It now also copies broadcast packets to the input queue, so clients should check to be sure that their programs will not take undesired actions if they hear their own broadcasts. Packets that are sent to the local machine are now also sent out over the wire; this allows PeekPup.run to be used when analyzing timing problems.
Bug Fixes
The following change requests are closed by this release:
2848 GetMyName (actually net address) procedure
2906 Slow on Dorado
2998 Error strings in
NameConversion
3311 Pup ByteStream close
3341 Trivial bug in
PupTypes
3708
PupNameLookup+PupAddressLookup PupGlitch
4456 Recompile packages to fix long return record bug
4552 ByteStream timeout
5005 Delays when creating byte stream
5093 NameLookup vs dying nets
5098 Change priority of interrupt routine in EthernetDriver(s)
Ftp Summary
The arguments to the (client supplied) procedure passed to FTPInventoryDumpFile have been extended to allow proper processing of create dates. It is now compatable with the procedure passed to FTPEnumerateFiles.
The following change requests are closed by this release:
2906 Slow on Dorado
3584 Ftp vs IFS 1.23
3626 Sending mail
3664 MTP user: require sender property on
SendMessage
3900
UNWIND from FTPEnumerate/retrieve
3987
StringBoundsFault from TimeExtras.PacketTimeFromString
4335
FTPUtilities.TransferBytes
4352
FTPAltoFile.PreProcessFile does a blind ReleaseFile
4444
FTPInventorryDumpFile needs create date
4456 Recompile packages to fix long return record bug
4499
FTPTransferFile doesn’t pass through the creation date
4544
FTPRetrieve hangs on a timeout on a "no" mark
4763 Troubles if forget to call
IdentifyNextRejectedRecipient
5152
TimeExtras.PacketTimeFromString zone screwup
5198 Config with server and user things
Distribution:
Mesa Users
Mesa Group
SDSupport