Differences between Envoy 1.5 and 1.6: Fix to EFS so that if a Read/Write is failed, and after that one of the transactions sent for it comes back, if the connection is still not reestablished don't try to unwind the transaction. I.e. if the transaction is marked as aborted, ignore it if it comes back with an error. Differences between Envoy 1.4 and 1.5: MAJOR fix to handling of transmission failures. In EFS, when a reconnect happens EFS makes sure that it doesn't try to reconnect again when queued packets from the previous connection come back with errors (because of the shutting down of the old connection). This avoids the continuous reconnect cycle. MAJOR fix to NIPC: NIPC was causing transmission failures because when it had to retry a dropped RDP packet, it was mistakenly stripping the RDP header off the packet (thinking it was an IP header). This bug was introduced when sending of NIPCBuffers was added. This bug helped cause problems by forcing EFS to do reconnects (see above). Fix to NIPC: NIPC was having to retry packets because the window size was set large enough for fast networks (ethernet, arcnet) that a full window of max-size RDP packets would be more than NIPC had buffers to handle queued on the SANA driver. Dropped RDP window to 8 from 16, and under normal conditions no retries are seen now. This bug was causing the NIPC bug above to get hit often, causing the EFS bug to get hit often. NIPC piggyback acks enabled. Cuts down on network traffic considerably. Also fixed bug in piggyback acks so it doesn't force an ACK until the RDP window is half-used-up. Since EFS is a request/response protocol, only rarely will acks be generated - most will piggyback. Fix to NIPC/NIPCBuffPointer(): if passed an offset that was exactly the beginning of a BuffEntry (other than the first), it would return a pointer to one byte past the end of the previous entry (boundary error). Also affected are other NIPC buffer functions: see the NIPC autodoc BUGS entries for details. Fix to enforcer/mungwall hit with freeing of servernames on locks. Differences between Envoy 1.3 and 1.4: Fixes problems with failed reconnect during write (from the client to the server), broken since use of NIPCbufs was added in 0.138. Differences between Envoy 0.142 (1.0) and 1.3: Added V40 c:SetPatch to the distribution, since it has an ExAll() patch needed by V37 servers using ExAll() emulation (such as on CDFileSystem). Also added V37 setpatch with exall patch added, since pre-2.1 WB machines can't use post-2.1 setpatches. Install scripts modified to install c:SetPatch, and version numbers added. Failures to connect by the client no longer hang the machine. Read/Write of 0 bytes is now queued behind other reads/writes for the same filehandle (like all other reads/writes) instead of being replied immediately. Retry of Read/Write packets on temporary loss of network while no longer blows up. New NIPC library fixed some Inquiry stuff, uses piggybacked acks. Differences between Envoy 0.138 and 0.142 (1.0): Fixed selection in fs exports after deleting entries. Fixed selection of filesystems in fs imports after changing hosts. Fixed Mungwall hit in fs exports when deleting users. Many changes to documentation and install scripts. Deferred: fix to Users and Groups to select the string gadget on Add. Differences between Envoy 0.133 and 0.138: MAJOR CHANGE: large reads/writes are "throttled", and other packets for a FH while it's reading/writing are queued. No more than 2 32K transactions will be queued at any given time. Side effect: Client uses NIPCbuffs for BeginTransaction on read/write (saves an allocation and copy). MAJOR CHANGE: when using Full Security (i.e. protection bits), the bits are now interpreted according to dos/dos.h. I.e. 0 is NOT allowed, 1 is allowed. Also, if userid or groupid is 0, the server does not assume you have User access to the file (important since the default groupid is 0, and files created locally default to UID 0 GID 0). NIPC.library takes NIPCBuffs for request or response data. New tags and functions for using NIPCBuffs added. This allows you to tack headers and trailers to data from elsewhere for use with BeginTransaction. Fixed a lot of error-handling of a "stale" filehandles (network down) - many (non r/w/s) packets were returning -1 instead of 0 for failure. Reworked the retry code to better handle network loss/reconnect during a read/ write. No longer restarts read/writes from the beginning (which was wrong, since part of the read/write might have completed). Fixed server to handle client requests that don't use the same buffer for request and response (i.e. when using NIPCBuffs). Fixed server handling of V37 ROM/RDSK filesystems. (It doesn't handle ED_OWNER correctly, and filecomments are returned as BSTRs instead of CSTRs). Fixed enforcer hits when Exall returns TRUE but no files are in the block. Fixed ExAll on root of a filesystem (this was broken, causing problems with DirOpus and others using ExAll). Network Configuration now sorts the realm lists. "Users" no longer prints passwords out to the serial port(!) WARNING: the new client REQUIRES the new server AND the new nipc.library. The client opens nipc.library version 40. The new server will work fine with old clients. WARNING: if using Full Security on a server, you'll need to change a lot of protection bits. I advise writing a program to do so recursively to the whole file-tree you're exporting. ============================================================================= Differences between Envoy 0.131 and 0.133: Picks up the new List that vertex released (shouldn't crash). Fixed a bug with servers running V37 (I need to remember if the filesystem I'm exporting doesn't like ED_OWNER). Fixed FileSystem Imports to put on the right entry, instead of always on the first one. Differences between Envoy 0.130 and 0.131: Fixed ACTION_EXAMINE_FH. It had apparently never worked correctly, and attempting to use it would have crashed the server. Both the FS server and client need to be updated. No other changes were made. Note that the Version command uses NameFromFH, and would crash the server under 0.130. Differences between Envoy 0.110 and 0.130: (Note: these are mostly differences since 0.126, when I (Randell Jesup) took over EnvoyFS and did a bunch of cleanup. Greg may have made other changes unknown to me, since he didn't use RCS often or at all.) Much cleanup done on the code and RCS/server directories. FileSystem: New packets supported: EXAMINE_ALL, EXAMINE_ALL_END, EXAMINE_FH (may have already been supported). ExNext now is handled transparently with read-ahead ExAll directory caching (3-5 times faster on ethernet, more on slower nets). On reconnect to server after server reset/etc, now properly restores the position in a file that has had a Seek(fh,xxx,OFFSET_END). Timeout code modified (first by Greg, then by Randell) SAS 6.3 now used to compile it, also client now uses the optimizer. Configuration: FS Import host requester now has a sizing gadget. Also, it shows as soon as the connection is made. FS Import/Export and Printer Import/Export now compiled with SAS 6.3. Libs: New NIPC released (Ken, please fill in). C: Commands: Now compiled with SAS 6.3. Minor code cleanup. List/Protect replaced by new beta versions of List/protect (envoy support is being put into the main-line List and Protect). List now supports sorting. Printer: Server now compiled with SAS 6.3. Client re-assembled, but should not be functionally different. ------------------------------------------------------------------------------ Differences between DevCon distribution (disk rev 0.92) and 0.110: =================================== = WARNING WARNING WARNING WARNING = =================================== When you update your Envoy installation to the newest Envoy, be SURE to check your S:User-Startup file -- old versions of Envoy used to have two 'RUN' statements there, to start up 'Services Manager' and 'Accounts manager'. These are now started up by placing the files in SYS:WBStartup. The programs were being started from two different places, apparently giving odd effects. Therefore: DELETE THOSE LINES FROM YOUR USER-STARTUP WHEN UPDATING. PS: If on a 2.04 system, Envoy may add an ASSIGN statement to your user-startup. Don't delete that! =================================== = WARNING WARNING WARNING WARNING = =================================== 'Filesystem Imports' now encrypts the password you enter for storage in the mountfile. The Filesystem server, 'filesystem.service' had to be modified to accept both encrypted and unencrypted (old-style) passwords. HOWEVER, for you to use 'Filesystem Imports', the machines you are talking to MUST BE USING THE NEWEST REVISION OF 'filesystem.service', or you may well be refused access. ====== = GP = ====== - Icons added for everything except 'Network Printing'. - Now distributing the V39 parallel.device, as Darren fixed several bugs in it, and feels that between PARNET SANA-II devices and parallel-port Ethernet adapters, it'd be a good idea to distribute the correct version with Envoy. =========== =LIBRARIES= =========== nipc.library 37.102 released. Changes: o Fixed the operation of the NIPCInquiry() tags for determining ExecBase->AttnFlags and the four tags for finding out how much memory a machine has. All of these would previously return 0. nipc.library V37.103 released to the server. - ARP SANA-II IORequests now increased. - Entries in the ARP table now time out. - Caching of Buffer and BuffEntry structs turned off. (was fragmenting memory) - Private Statistics calls expanded to allow external viewing of NIPC's routing tables. - A fix to MATCH_SERVICE was made to respect Services that're currently disabled. - With the aid of several EuroDevelopers, I've expanded NIPC's awareness of the types of HW attached to it. A better numerical guesswork system of what kind of network bandwidth can be expected between two machines is now in place. This makes the BPS and MTU values returned by a SANA-II device -very- important. (Slower devices incur higher timeouts in NIPC.) Both trans_Timeout and lower-level RDP timeouts are affected. nipc.library V37.104 released to the server. - I found this morning that the work I'd done last week on NIPC timeouts was only, say, 25% effective. It was only being processed on the passive end of an RDP connection. The important side -- the -active- side -- was doing nothing. The result was that things didn't improve. (I finally managed to get a setup where I could reproduce a set of bug reports! Yay!) nipc.library V37.106 released to the server. - Fixed/Added code for checking NIPC and shared library version & revision numbers via NIPCInquiry(). - As much as I wanted to avoid it, I needed to set an option on an Entity the other day which wasn't currently available. So, rather than write a specific routine to do so, I added SetEntityAttrs() and GetEntityAttrs() -- which will handle all similar cases in the future. - The Entity option I needed to set was the ability to tell NIPC on a case-by-case basis to nuke hanging link Entities on given periods of disuse. nipc.library V37.107 released to the server. - A long-outstanding hole in FindEntity() has finally been taken care of. Since FindEntity() cannot use the api (which requires that a FindEntity() has already taken place to operate), it's made up of direct communication to RDP. Unfortuanately, that communication had a recovery hole where if the net went down (or a target machine rebooted) at -just- the right instant, FindEntity() could Wait() forever. ---------- accounts.library 37.3 released. o Added support for multiple machines to share a common Accounts Manager. This is enabled by setting the environment variable Envoy/AccountsServer to the name of the central host. ---------- envoy.library 37.10 released. - The user selection requester wasn't compensating for the display bar under V37 listview gadgets, so the Okay and Cancel gadgets were not getting centered correctly. ---------- ============== = FILESYSTEM = ============== Envoy's EnvoyFileSystem V37.13 released to the Envoy tree on the server. - Fixed a bug reported by Martin, where doing a 'version' over the network filesystem caused an enforcer hit. I missed a special case for packet type 'ACTION_PARENT_FH'. Envoy's "EnvoyFileSystem" V37.14 has been released to the server. - Many people (mostly Willy Langefeld) have complained that the requesters that EFS brings up are annoying -- even though they time out. Most of these people have been begging for an option to "turn them off". I dislike such options because they're entirely power-user oriented, and are likely to confuse Joe-Sixpack. Nevertheless, I've given in and added the low-level support for just such an option. The flags field in the Unit string in an EFS mountfile now has a third option -- 'R'. If included, that EFS mount will NEVER bring up a requester. This is only the low-level support -- no point-and-click method exists for setting this option, so the only recourse for a power-user is manually editing the mount files. Higher-level support may or may not arrive soon. Envoy's EnvoyFileSystem V37.15 released to the server. - The client now has a little bit better retry mechanism, and should be slightly more transparent. (What this means to the average user? Almost nothing. :') ) ---------- Envoy's "Filesystem Imports" 37.11 released to the server. - Fixed an Enforcer hit that I found while at DevCon. A line of code wasn't cased correctly -- and made the mistake of assuming that IAddress of the Intuition Message always pointed to a Gadget structure. In the case of "Filesystem Imports"' window close gadget, it didn't. :') Envoy's 'Filesystem Imports' V37.12 has been released to the server. - The Host requester window was eight pixels too wide. Fixed. Envoy's 'Filesystem Imports' V37.13 has been released to the server. - Now generates envrypted passwords for the mountfiles. WARNING! Use of this version of FI with servers running older versions of Envoy won't be pretty. ---------- Envoy's "filesystem.service" V37.11 has been released to the server. - As per several requests, I essentially changed the strings that "Filesystem Imports" sees when trying to import a filesystem. The strings presented used to be the true server paths to the mount-point. Now, they're the volume names that the user has provided in "Filesystem Exports" (the true server paths are defaulted to if no volume name existed). The gain is: - Things are a heckuva lot more intuitive. People see the same names in the list that they'll see on the workbench. - You don't necessarily give away data that you'd prefer be private -- like what volumes things actually lie on. - In situations like Catfish, where the volume name changes depending on which Fish CD revision is in the CD ROM drive, people don't have to keep updating their mounts. The downside is: - To keep compatibility with past revisions, the code allows old mountfiles that directly reference the true mountpoint. This isn't a real security hole -- merely odd behavior. Envoy's filesystem.service V37.12 has been released to the server. - Fixed a section of code with poor failure handling. If the lock on the target failed, a pointer would be nulled. Just below nulling the pointer, I was trying to reference something off of the pointer. Oops. Envoy's filesystem.service V37.13 has been released to the server. - Now accepts both normal (old style) and excrypted passwords from the client. Envoy's filesystem.service V37.15 released to the server. - Made use of the SetEntityAttr() call in nipc.library to force the FS Entity to toss out people who haven't communicated in 30 minutes. This adds only a handful of packets to the first communication for a client in a long period of time, but helps keep the bookkeeping on servers (like SoftServe) that LOTS of people access randomly. - Took a couple of cheap mods to give preference to recent users over users who haven't made recent access. On a heavily loaded server, this should improve performance mildly. ---------- ================= = CONFIGURATION = ================= Envoy User Configuration 37.8 released. Changes: o Passwords are now hidden with bullet characters for security reasons. o When you log in, your account is automatically selected. ---------- Envoy Group Preferences 37.8 released. Changes: o Added another kludge to fix visual problems under V37. I wasn't taking into account that V37 listviews height parameters are off by 12. Envoy Groups Preferences 37.9 released. - The text gadget for the groups's administrator name wasn't getting updated when a new group was created. Also, the gadget was not getting cleared when the current group was deleted. ---------- Envoy Network Configuration 37.8 released. Changes: o No longer requires you to enter 0.0.0.0 to clear out the Realm Server IP Address. o Turning off Realms with the checkbox gadget properly clears out the Realm Server IP Address and Realm Name. o Removed the Hop count gadget and other related junk from the Routes panel, since nipc.library doesn't use it for anything right now. o Adjusted the placement of the Destination and Gateway test strings on the Routes panel to be centered of each part of the listview. o Misc other UI tweaks. :) ============ = MANAGERS = ============ Accounts Manager 37.8 released. - The right logic wasn't being used when determining whether or not a user could remove a group. It was supposed to require that the user is the groups administrator *or* that the user has admin privs. It was requiring both. Accounts Manager 37.9 released to heartofgold. Change: o I wasn't allocating the right amount of memory for my internal group representation, so I was getting mungwall hits when Accounts Manager was shut down. Thanks to Carolyn and Peter for noticing this. Accounts Manager 37.10 released. Changes: o Changing any user flags would cause that user's AdminAll flag to be set, and it couldn't be turned off. Fixed since this causes a *slight* security problem. :) (This bug report came in not 5 minutes after the last release....arghhh) ---------- Services Manager 37.11 released. Changes: o All this time I had been ignoring the enable bit in the Service IFF chunk. =========== = PRINTER = =========== Envoy's "Network Printing" V37.3 released to the server. - Thanks to a wonderfully detailed bug report, I fixed a problem with V37 installation. (Old prefs files) Changes since Beta Disk 37.89 ============================= ********** ** NOTE ** ********** If updating an older version of Envoy, be SURE to check your s:user-startup file. Older versions of Envoy started the Services Manager and Accounts Manager through RUN commands placed there. These programs are now started by placing copies of them in WBStartup. If you leave the RUN commands in s:user-startup, the programs will be started twice -- and shut both instances down. Envoy will not work properly in this way. So ... DELETE THOSE 'RUN' LINES IN S:USER-STARTUP. Note that in pre 2.1 systems, a line is added to your user-startup for an ASSIGN of PRINTERS:; this line -must- remain. Be sure not to delete it. - Icons have been added for most files. - The V39 parallel device is now included. (V37 compatible) - NIPC now handles slower devices more gracefully. - NIPC had a bug with NIPCInquiry() and querying of disabled services fixed. - A machine can depend on an entirely different machine for it's accounts database. No 'nifty' UI exists for setting this, though. Set the environment variable Envoy/AccountsServer to the name (with realm, if appropriate) of the central accounts host. - Several V37 rendering problems were taken care of. - EFS now has it's own form of dynamic timeouts, to try and help using servers under varying degrees of load. - The EFS client had a bug relating to ACTION_PARENT_FH. This caused various programs to yield an enforcer hit, including 'version'. - Due to considerable prodding at DevCon by someone (who knows who he is), I added an extra flag to the client to allow a user to turn off requesters entirely. There isn't a way to set/reset this via the UI -- because we view it as confusing for the novice. However, if you're willing to edit your mountfile, placing an 'R' in the flags field (the one after the pw field) will cause those requesters to -never- come up. NOTE: There isn't any 'ideal' middle ground, folks. So many people have said that they only want "certain" requesters, but have had irrational ideas about which ones they wanted. The underlying theme appears to be: "I want any requester that doesn't annoy me." :') - An enforcer hit that I noticed at DevCon with 'Filesystem Imports's Close window gadget has been fixed. - The filesystem.service now provides the -client volume names- when queried by 'Filesystem Imports' about what directories are available. It used to show the entire, and direct server path. This is more intuitive. It still supports old mountfiles, though. - If the filesystem.service couldn't obtain a root lock on the mountpoint, it would fail and issue an enforcer hit. This has been fixed. - Passwords in 'user' have been bulleted out. It was too easy for someone to look over the shoulder of an administrator. - 'Network Configuration' had several UI changes, plus some intuitive changes. It used to be that to zero the 'Realm Server IP Address' gadget, you needed to enter 0.0.0.0; turning off 'Realms' or 'Realm Server' gadgets weren't necessarily 'save-effective' in the past, as they depended on whether any data was present in the realms or realm-server fields. - 'Accounts Manager' had a bug with group removal fixed. It used to require both group admin and full admin to remove a group. Now, it's only one. - A memory problem in 'Accounts Manager' was fixed; mungwall problems at manager shutdown are now history. - A problem with user flags was fixed in 'Accounts Manager' -- changing any other user flags caused 'adminall' to be set. A -slight- security problem. :') - 'Services Manager' was ignoring the enable bit on a service. Fixed. Changes since Beta Disk 37.89 ----------------------------- - 'Filesystem Imports' had several UI changes, plus the addition of a close gadget. - Same had problems with 1st character of a mountfile name missing, fixed. - Same had problems with colons in mountpaths in positions other than trailing. Caused mounting of subdirectories to fail. Fixed. - Gadget added for 'No security', when selected, the listview, add, and delete gadgets are ghosted, and -anyone-, regardless of who they claim to be, will have complete access to that mount. - In 'filesystem exports', renamed 'full permissions' to 'full file security'. The former confused several people. The latter is slightly (?) clearer. - In 'filesystem.service', promotion from other->group->user is a user belonged in the 'other' category wasn't happening at all. - Several other associated 'filesystem.service' permissions bugs were fixed. - Also in 'filesystem.service', a FreeMem() of incorrect size was fixed. (Caused mungwall hits.) - 'EnvoyFileSystem' had several memory loss problems fixed. Thanks to Perry Kivolowitz for providing me with something reproducible. - Same had a problem where, in low memory, packets could return and take action on a no-longer existing DosPacket. - 'envoy.library's Host requester had several misaligned gadgets aligned. - Same had the cursor moved to the end of the string gadget at startup. - V37 systems had several printing problems. V37 printer.device didn't understand anything other than 'serial/parallel'. We now install the V38 printer.device, and make an assign in user-startup for printers:. A file is moved to WBStartup to tweak some IPrefs fields, too. - The old port-handler had several bugs related to shutting itself down. The new V39 port-handler is now included. (Allows you to COPY file PRT:, for one ...) - 'NIPC Configuration' renamed 'Network Configuration'. - 'Network Configuration' added checkboxes for using realms and being a realm server. Removed extra gadgets and pages that confused novices. - 'Network Configuration' was setting the SANA-II BufferManagement field to null. No longer. - Same had several UI changes. - Owner's name added to 'Network Configuration'. - 'user' and 'group' prefs window size reduced, UI changes. - NIPC support for 'MATCH' and 'QUERY' OWNER added in NIPCInquiry(). - NIPC supervisor process priority raised. - NIPC memory leak on closing connections fixed. - 'Services COnfiguration' had several UI changes. Changes since Beta Disk 37.87 ----------------------------- V87 had an incorrect revision of the 'Printer Import' program, which would cause that program to fail to find any printer servers on the network. Fixed. 'Filesystem Imports' had trouble mounting volumes when the filenames it generated for the mountfile had spaces in it. Fixed. 'Filesystem Imports' made the assumtion that all hostnames contained a colon. This is not true for a non-realmed environment. Fixed. envoy.library's Host requester was modified not to automatically add colons to host names, and not to provide a Realms button for non-realmed machines. Somewhere around V85, NIPC completely broke for non-realm users. Considering that 99% of Envoy's testers don't use Realms, it effectively broke for -everyone- except those of us here at West Chester. Fixed. Because of both a bug in the 'Services Manager' and because of a lack of quotation marks in the install script, the database files for the accounts mechanism were not being created. Fixed. Tooltypes in the 'Accounts Manager' were being read incorrectly. Fixed. Several include files were either in error, or out-of-date. Fixed. Changes since Beta Disk 37.85 ----------------------------- Several files were outright -missing- from the previous archive. These have been included in this release. The install script had several problems in installation, including not creating the correct directories before trying to use them. These also have been fixed. NIPC has had a routing error fixed; essentially, broadcast packets would constantly be reforwarded on networks with a default subnet mask, creating painful amounts of excess traffic on these select networks. NIPC no longer requires a seperate IP address from AS225, if you choose to use the two together. Operation will continue if you are already using seperate addresses, though.