winnotes-20040726
[openafs.git] / doc / txt / winnotes / afs-changes-since-1.2.txt
1 Since 1.3.65:
2    * afs_config.exe now validates cell names against DNS in addition
3      to the CellServDB file.
4
5    * In order to allow the freelance client to connect to a volume with ID 
6      equal to 1 on the default cell we changed the fake root.afs volume ID
7      once again.  This time we choose 0xFFFFFFFF.  In addition, we change
8      the cell ID of the fake root.afs volume from 1 to 0xFFFFFFFF as well.
9      It will now be impossible for a volume ID to match that of another 
10      cell unless the client is connected to 0xFFFFFFFD cells.  That should
11      be enough room for growth.
12
13    * Fix "fs mkmount" command to work with UNC paths and when
14      started from non-AFS drives.  It is now possible to create a mount
15      point in the freelance fake root.afs volume with the command
16
17         fs mkmount \\AFS\all\<directory-name> <volume-name> <cellname>
18
19      For example,
20         
21         fs mkmount \\AFS\all\openafs.org root.cell openafs.org
22         fs mkmount \\AFS\all\.openafs.org root.cell openafs.org -rw
23
24    * The algorithm used to re-attempt access to the servers associated with
25      a volume has been altered to properly address the case in which all 
26      servers have been marked down.  The previous algorithm did not reset
27      the server's down flags so the servers were never actually retried.
28      This caused a problem with active volumes if the network connectivity
29      was lost as could be the case with a network cable removal, wireless
30      drop, or laptop hibernation.  With the fix volume access is restored
31      almost instantenously when network connectivity becomes available.
32
33    * Support for SMB/CIFS browsing has been added to the AFS Client Service
34      SMB server.  It is now possible to use "NET VIEW \\AFS" to obtain a
35      listing of AFS submounts and freelance mount points.  Support for
36      NETSHAREENUM, NETSHAREGETINFO, NETSERVERENUM2, NETSERVERGETINFO
37      significantly enhances the behavior of AFS volumes within the Explorer
38      Shell.  For instance, "AFS" now shows up as server in the Explorer
39      with each submount or freelance mount point visible as a share.
40      The right click menu in each folder now works with full functionality
41      on a consistent basis.
42
43    * The network provider can be configured to have different behavior
44      depending on the domain that the user logs into.  These settings are
45      only relevant when using integrated login.  A domain refers to an
46      Active Directory (AD) domain, a trusted Kerberos (non-AD) realm or the
47      local machine (i.e. local account logins).  The domain name that is
48      used for selecting the domain would be the domain that is passed into
49      the NPLogonNotify function of the network provider. (see registry.txt
50      for details)
51
52    * Added a new registry value [HKCU\SOFTWARE\OpenAFS\Client] 
53      "Authentication Cell" which may be used to specify a default 
54      authentication cell for afscreds.exe which is different from
55      the default cell for the AFS Client Service daemon.
56
57    * Added a Logoff WinLogon Event Notification function to afslogon.dll.
58      afslogon.dll moved to %WINDIR%\System32\.
59      New registry entries added to register the dll for Winlogon events.
60
61      The logoff event will now force a call to ktc_ForgetAllTokens()
62      using the context of the user being logged off as long as the 
63      user's profile is not loaded from within AFS.  If the profile 
64      was loaded from AFS we can't release the tokens since the Logoff
65      event is triggered prior to the profile being written back to 
66      the its source location.
67
68    * Windows XP SP2 Internet Connection Firewall interoperability
69      has been added.
70
71    * The %WINDIR%\afsdsbmt.ini contains four sections:
72         Submounts, Drive Mappings, Active Maps and CSC Policies.
73      The Submounts and CSC policies are now stored in the registry under
74         [HKLM\SOFTWARE\OpenAFS\Client\Submounts]
75         [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy]
76      The Drive Mappings and Active Maps are stored in the registry under
77         [HKCU\SOFTWARE\OpenAFS\Client\Mappings]
78         [HKCU\SOFTWARE\OpenAFS\Client\Active Maps]
79
80      There is no automatic migration of this data as it would be impossible
81      to consistently migrate data to user profiles which may not be active
82      when the machine is updated.
83
84    * The %WINDIR%\afs_freelance.ini contains lists of mountpoints for the
85      fake root.afs volume.  For the same reasons as for the cellservdb file,
86      this information should not be in %WINDIR%.  This information is now
87      kept under the registry key
88         [HKLM\SOFTWARE\OpenAFS\Client\Freelance]
89
90      The data from the afs_freelance.ini file will be automatically 
91      migrated to the registry on first execution of afsd_service.exe
92
93    * Keeping the CellServDB file in the location %WINDIR%\afsdcell.ini is 
94      troublesome for several reasons.  One, it is confusing for those who
95      expect the file to be named "CellServDB" instead of "afsdcell.ini".
96      Two, this file is not a Windows Profile formatted file.  Three, 
97      applications should not be reading or writing to %WINDIR%.  It causes
98      problems for Windows Terminal Server.
99
100      The new location of CellServDB will be the OpenAFS Client install 
101      directory which is by default C:\Program Files\OpenAFS\Client and can
102      be determined by querying the registry for 
103      [HKLM\SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion]PathName
104
105      The existing afsdcell.ini will be migrated by the NSIS installer. 
106      The Wix installer must still be updated to do the same.
107
108    * Change NSIS installer to use DNS by default; to remove Integrated Logon
109      High Security mode; and to add Terminal Services compatibility registry
110      entries to allow the OpenAFS tools to find the afsdcell.ini and other
111      configuration files in %WINDIR%.
112   
113    * Add support for authenticated SMB connections.   This will remove
114      the need for high security mode in most situations.  Both NTLM
115      and Extended Security (GSS SPNEGO) modes are supported.  Effectively,
116      only NTLM can be used even though Kerberos is now supported.  The
117      reason is that it is not possible to construct a service principal
118      which is unique to each individual machine.
119
120      SMB Extended Auth does not work on XP SP2 unless one of two registry
121      modifications are made:
122
123      (1) To disable the check for matching host names on loopback connections
124         set this key.  This does not require a reboot:
125
126         [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
127             "DisableLoopbackCheck"=dword:00000001
128
129      (2) To add the AFS SMB/CIFS service name to an approved list.  This
130         does require a reboot:
131
132         [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]
133             "BackConnectionHostNames"=multi-sz "AFS" "MACHINE-AFS"
134
135      afsd_service.exe will automatically add the current Netbios Name
136      to the BackConnectionHostNames list and then temporarily disable
137      the loopback check for one cycle of startup/shutdown of the service.
138      We assume most folks do not start/stop without a reboot so this 
139      will be adequate in most cases.
140
141    * Fix security hole in afslogon.dll which allowed passwords to be
142      sent in clear text to the KDC in a misformed principal name.
143
144    * Fix cm_GetCell() to properly handle expired dns entries
145      without crashing
146
147    * If Freelance mode is active and the afs_freelance.ini
148      file does not exist, do not create an empty file.
149      Instead create a file containing ro and rw mountpoints
150      to the default cell using the standard conventions.
151
152    * Modify the Freelance support to handle the ability
153      to create rw mount points in the fake root.afs volume.
154
155    * Changed the RPC mechanism used for token setting from 
156      named pipes to local.  Use of named pipes can be restored
157      by setting the environment variable AFS_RPC_PROTSEQ to
158      "ncacn_np". 
159
160      Named pipes were required when a Windows 9x system was
161      using a NT system in gateway mode which is incompatible
162      with our use of local loopback adapters.
163
164    * In afscreds.exe, if a username of the form user@REALM is
165      specified and no password is specified, do not perform a 
166      kinit operation.  Only perform the aklog functionality.
167
168    * Add a new registry value which allows the number of processors
169      on which afsd_service.exe executes to be restricted.  Valid
170      values are 1..numOfProcessors
171
172        HKLM\SYSTEM\CurrentControlSet\Services\TransarcAfsDaemon\Parameters
173           (DWORD) MaxCPUs 
174
175 Since 1.3.64:
176    * A second MSI based installer option is now available.
177
178    * Fixed Kerberos 5 kinit functionality in afscreds.exe to properly
179      request tickets for user/instance@REALM instead of just user@REALM
180
181    * Modify the Power Management Notify routine to wait for the Hard Dead
182      timeout period instead of a fixed 19 seconds.  With the longer timeout
183      periods Hibernation and Standby could never succeed when network 
184      connectivity is not available.
185
186    * The following fs.exe commands are now restricted to Administrator:
187      - checkservers with a non-zero timer value
188      - setcachesize
189      - newcell
190      - sysname with a new sysname list
191      - exportafs 
192      - setcell
193      - setserverprefs
194      - storebehind
195      - setcrypt
196      - cscpolicy
197      - trace
198
199      setting the default sysname for a machine should be done via the
200      registry and not via "fs sysname".
201
202    * NSIS installer adds options to install Debugging Symbols
203      and the Microsoft Loopback Adapter; the user is now also
204      given the ability to select the afscreds.exe startup options.
205
206    * Build system modified to generate symbols for FREE (aka RELEASE)
207      builds as well as CHECKED (aka DEBUG) builds
208
209    * Sites which have a volume ID of 0x20000001 assigned to their
210      root.cell volumes have been experiencing problems with accessing
211      the root.cell volume of their cell when Freelance mode has been
212      active.  This was because 0x20000001 was assigned to the fake
213      root.afs volume created by freelance.  The fake volume id is
214      now set to 0x00000001 to prevent conflicts.
215
216    * The timeout logic in the AFS Client Service has been wrong
217      for sometime.  It is based on two different assumptions.
218      First, the SMB client timeout is a fix value as was the case
219      with OS/2 Lan Manager.  This assumption is incorrect.  The
220      SMB timeout in Windows is a dynamic value computed based upon
221      a fixed minimum timeout to which is added time based upon the
222      size of the request and the performance characteristics of
223      the connection.  Second, it is the responsibility of the 
224      SMB Server to enforce the timeout requirements of the client.
225      This is untrue.  The SMB Server cannot be expected to know
226      the requirements of the client.  More importantly, if the 
227      SMB server uses the SMB client timeout as a value to restrict
228      its behavior as an RX client, the performance characteristics
229      of the local SMB session would be used to prematurely terminate
230      WAN connections with significantly different performance 
231      characteristics.
232
233      The timeout logic has therefore been modified in the following
234      manner:
235       . the Lan Manager Workstation (SMB) Session Timeout is used only
236         as a basis for configuring the Connection Dead Timeout 
237         and Hard Dead Timeout values.  The Connection Dead Timeout
238         must be at least 15 seconds longer than the SMB Timeout
239         and the Hard Dead Timeout must be at least double the 
240         Connection Dead Timeout.
241       . New registry entries have been added to allow the Connection
242         Dead Timeout and Hard Dead Timeout values independent of the
243         Lan Manager Workstation Session Timeout
244       . The test to enforce the SMB Client Timeout has been removed.
245         
246      One of the side-effects of removing the enforcement of the SMB 
247      Client Timeout is that regardless of whether or not the SMB client
248      is available to receive the response (and how would the SMB server
249      know) the RX protocol response can be used to update the AFS 
250      Client Service state for ready access by future SMB client 
251      requests.
252
253      This should be the end of the "Server paused or restarting messages"
254    
255    * Add support for arbitrary UNC paths to the pioctl() support.
256      This enables the fs commands as well as the AFS Shell Extension
257      to work correctly when UNC paths are being used.
258
259    * Fix afscreds.exe (by updating afskfw.lib) to search for cells via
260      DNS if the cell configuration cannot be determined via CellServDB
261
262    * Add debug info to test whether CM_BUF_WAITING or CM_SCACHE_WAITING
263      are ever set more than once at a time
264  
265    * Fix the management of lists of cm_cell_t structures when using 
266      DNS to lookup cell information.  The previous code would fail to
267      reuse the same cellID for a cell if DNS was used more than once
268      for a given cell name.  When the ttl expired, a single cm_cell_t
269      could be inserted into the cm_allCellsp list more than once 
270      producing a loop.  In addition, the vlServerp list belonging to
271      the cell was not freed resulting in improper refCounting of the
272      servers.
273
274    * Add DNS support to cm_IoctlNewCell() which previous only examined
275      the CellServDB file
276
277    * Add cm_FreeServer() function and call it from cm_FreeServerList()
278      to properly garbage collect cm_server_t objects 
279      
280    * Add numVCs variable to smb.c to track the number of smb_vc_t 
281      objects created and use it to initialize the vcID field which 
282      previously was set to 0 in all objects resulting in FindByID 
283      collisions.
284
285    * Fixed DNS lookups to work consistently throughout the OpenAFS
286      product instead of just from within the afsd_service.exe
287
288    * Added a runtime check to ensure that AFS Client Service SMB
289      Server is accepting connections before attempting to mount
290      global drives.
291
292    * Read IP addresses for volume servers out of the CellServDB
293      file if gethostbyname() on the hostname fails.
294
295    * Fix getcellconfig() to populate both the Hostnames as well
296      as IP addresses when loading cell data via DNS
297
298    * Increase the Connection Dead Time to 50 from 20 seconds
299      Increase the Hard Dead Time to 120 from 40 seconds
300      (matches the Unix values)
301
302    * Fixed an assertion validating the number of allocated NCBs
303
304    * Fixed the build environment to consistently build for 
305      Windows 2000 and above.  (APPVER = 5.0)
306
307    * Fixed rx_debug to properly validate the receipt in incoming
308      data with select() and recvfrom().  Do not copy data out of
309      the socket buffer unless success is indicated.
310
311 Since 1.3.63:
312    * afsd_service.exe will now display a message box to the 
313      desktop when it terminates due to an IP Address Change.
314   
315    * installer no longer deletes AFS Server configuration data
316      on uninstall
317
318    * installer generates a warning dialog if the RPC service 
319      is not properly configured
320
321    * installer compressed with lzma instead of bzip2
322
323    * afsd_service.exe shutdown crash solved once and for all
324  
325    * reference counting of smb_vc_t data structures improved
326  
327    * name space collision of smb_fid_t event objects corrected
328
329    * the output of "fs memdump" is now written to 
330      %WINDIR%\TEMP\afsd_alloc.log
331
332    * the file TaAfsApp_1033.dll is now properly installed allowing
333      the User Manager to start
334   
335    * a new algorithm is used for computing filename pattern matches
336
337    * afscreds.exe now accepts user names containing instance
338      fields.
339
340    * Fix the Directory Name Lookup Cache to be case-sensitive.
341      This is crucial in environments in which a Windows client
342      is accessing a directory with more than one filename that
343      differs only by case.  If the directory contains "FOO" 
344      and "Foo".  You want "DEL Foo" to delete the correct one.
345      We still have a problem in that "DEL foo" will delete a
346      random filename.  This will be addressed in a future release.
347
348    * Fix afscreds.exe -M option (renewMaps) to work when High
349      Security mode is off.  Also, remember to disable the ActiveMap
350      flag in afsdsbmt.ini when a drive mapping is removed.
351
352    * Updates to NSIS installer script.  AFS Server configuration
353      data will not be destroyed on un-install or re-install.  
354      Use a better compression algorithm.
355    
356    * afslogon.dll now uses KFW to obtain tokens when available
357    
358    * afslogon.dll when given an all uppercase username will
359      attempt to authenticate with both the uppercase name
360      and an all lowercase variation
361
362    * DST modification removed.  The fix appears to make things
363      worse after a reboot of the machine.
364
365    * fs.exe:  added "cscpolicy" which is used to 
366      change client side caching policy for AFS shares
367
368      Usage: fs cscpolicy [-share <AFS share>] [-manual] [-programs] 
369                          [-documents] [-disable] [-help]
370
371    * Several uninitialized variables have been initialized
372
373    * It is now possible to obtain tokens using cross realm
374      Kerberos within afscreds.exe:
375         cell:      dementia.org
376         user:      jaltman@ATHENA.MIT.EDU
377         password:  xxxxxxxx
378      Will obtain a cross realm ticket for jaltman/DEMENTIA.ORG@ATHENA.MIT.EDU
379      will will in turn be used to obtain afs@DEMENTIA.ORG.
380      The resulting token will be stored with the display name 
381        jaltman@ATHENA.MIT.EDU@dementia.org
382
383    * aklog.exe has been added to the client
384
385      Usage: aklog [-d] [[-cell | -c] cell [-k krb_realm]] 
386                   [[-p | -path] pathname]
387                   [-noprdb] [-force]
388                   [-5 | -4]
389
390         -d gives debugging information.
391         krb_realm is the kerberos realm of a cell.
392         pathname is the name of a directory to which you wish to authenticate.
393         -noprdb means don't try to determine AFS ID.
394         -5 or -4 selects whether to use Kerberos V or Kerberos IV.
395            (default is Kerberos V)
396         No commandline arguments means authenticate to the local cell.
397
398 Since 1.3.62:
399    * All of the resource files have been restructured to adhere to
400      a set of rules IBM implemented for loading string resources.
401      These rules had either been forgotten or were not discovered
402      by folks working on the OpenAFS sources.  The end result was
403      memory corruption.  This is primary item which was preventing
404      the AFS Server from working.
405
406    * Increased the size of the maximum ticket size stored in a token
407      from 344 bytes to 12,000.  Increased the buffers used to convey
408      messages between the pioctl() caller and the SMB Server from
409      1000 bytes to 12,512.  The code appeared to have been writing
410      above the top of the stack by quite a few number of bytes.
411      (The increased ticket size is necessary for the next item.)
412
413    * When obtaining AFS Tokens via KFW, krb524 is no longer required.
414      Instead the raw Kerberos 5 ticket is used in its entirety.  This
415      is extremely important as it allows us to use pure Kerberos 5 KDCs
416      as the source of the AFS authentication.  The use of up to 12,000 byte
417      tickets will allow tickets produced by all versions of Microsoft
418      Active Directory to be used.
419       - create a user account.       
420       - designate it DES only
421       - disable pre-auth
422       - specify its UPN to be  "afs@realm"
423       - assign a SPN of "afs/cellname" to the UPN with setspn.exe
424
425    * Do not enforce the funky 8dot3 pattern matching rule that the first "."
426      is special when using long file names.  (you must use "*.*" and not "*")
427      Instead only enforce it when performing 8dot3 searches. 
428
429    * Fixed the DST problem with creation times being set one hour ahead
430
431    * Fixed the problem when using \\afs\cell-alias.  For example, 
432      \\afs\uncc instead of \\afs\uncc.edu.  Do not a new cell struct
433      for the alias name; instead simply expand the name.  One of the
434      symptoms of this problem was a loss of acquired tokens.
435
436    * Fixed the AFS Shell Extension.  The Symbolic Link menu was empty 
437      of strings.  (Only English strings provided.)
438
439    * Fixed the installer to properly replace in use files.  
440
441    * Fixed the build system to cleanup generated component version files
442
443    * The release build compiled with MSVC 6.0 compiler to avoid the 
444      afsd_service.exe shutdown crash.  This does not solve the problem
445      but simply avoids it for the time being.
446
447 Since 1.3.61:
448
449  * fix afslogon.dll to not corrupt memory when High Security mode
450    is not used.  
451
452  * fix afsd_service.exe to not attempt to restore the stack when
453    an exception occurs.  (not safe in multi-threaded programs)
454
455  * fix uninstaller to properly remove the CRT and MFC DLLs
456  
457  * remove a Message Box from afscreds.exe when getcellconfig()
458    fails on a kerberos realm which is not a cell
459
460 The following is a list of changes to the OpenAFS for Window client
461 since 1.3.60.
462
463  * "fs setserverprefs" will leave afsd service deadlocked
464
465  * "vos listaddrs" will core dump
466
467  * installer sets the appropriate keys to support Integrated Logon
468
469  * installer disables the "Find Lana by Name" functionality as it
470    was causing headaches for many users
471
472  * fix the intermittent crash of the power management thread when
473    shutting down the AFS Client Service
474
475  * optimizes the obtain drive mount list functionality which is 
476    executed every time the mount tab in afscreds.exe and afs_config.exe
477    are refreshed.  (this happens a lot)
478
479  * fix the service shutdown logic.  add the STOP_PENDING state
480    and do not accept additional service events after we declare
481    ourselves STOPPED.
482
483 The following is a list of changes to the OpenAFS for Window client
484 since 1.2.10.
485
486 * flexelint was run against the source tree and hundreds (perhaps 
487   thousands) of corrections were applied to ensure prototypes 
488   were in use; types were used consistently; variables were 
489   initialized; unused variables were removed; etc.
490
491 * A wide variety of instrumentation was added including the 
492   ability to produce a stack trace from within afsd_service.exe
493   when it crashes.
494
495 * Dynamic configuration of the RDRtimeout value based upon the
496   LanMan Workstation Session Timeout
497
498 * The mount root no longer needs to be called "/afs".  This 
499   is now set by a registry value "MountRoot" within the key
500   HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
501
502 * The cell list is now only read out of afsdcell.ini when the
503   file changes instead of each time a cell is resolved.
504
505 * Thread synchronization was added to cm_server.c and ktc_nt.c
506
507 * All calls to GlobalAlloc()/GlobalFree() were replaced with 
508   calloc()/free().  The Global functions were needed on Windows 3.x
509   but have caused a variety of problems on the Win32 platforms.
510   Avoiding them is highly recommended by several Microsoft 
511   Knowledgebase articles
512
513 * Support for Symbolic Links added to the AFS Shell Extension
514
515 * Added a registry value "OverlayEnabled" to determine if
516   Shell Extension Overlays should be enabled.  
517   HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
518
519 * New Build system to support VC6, VC.NET, VC.NET2003 compilers and
520   separate trees for checked and free builds.  Build system supports
521   a custom directory src\WINNT\extra which can be used as a grafting
522   location of organization specific additions to the build tree.
523
524 * New installer built using NSIS 2.0.  
525
526 * Named all kernel objects in order to allow them to be monitored
527   with tools such as SysInternals' ProcExp.exe.
528   
529 * Introduced new EventLog framework for AFSD
530
531 * Introduced Power Management interface to AFSD for Standby and 
532   Hibernate modes to allow cache to be flushed prior to network
533   disconnect
534
535 * Utilize Win32 DNSQuery API instead of internal routines.  This 
536   allows DNS SRV queries to be sent to all current domain name 
537   servers.  Not just one specified in an INI file.  DNS is now
538   always activated.
539
540 * "NetbiosName" registry value may be used to specify a fixed
541   Netbios Name such as "AFS" to be used instead of "HOSTNAME-AFS"
542   when the loopback adapter is in use.  If you need to use the 
543   old notation with a loopback adapter installed specify a registry
544   entry of 
545
546      "NetbiosName" REG_EXPAND_SZ = "%COMPUTERNAME%-AFS"
547
548 * Refactor all modules which depend on LAN Adapter and NetbiosName
549   determination in a new library: lanahelper.lib.  This allows for
550   consistent behavior throughout the product.
551
552 * Move the afsd.log and afsd_init.log files to the directory specified
553   by the "TEMP" environment variable.  This is usually %WINDIR%\TEMP
554   for services.  Added the Date to the log entries.
555
556 * New registry value "RxMaxMTU" used to limit the size of the RX 
557   packets sent by the AFS Client Service to the Server.  In order
558   to enable OpenAFS to work across the Cisco IPSec VPN the packet
559   size must be restricted to 1264 or smaller.  The latest NSIS
560   installer sets a value of 1260 by default.
561
562 * New registry value "RxNoJumbo" to disable the use of Jumbo Rx
563   packets.  This is not needed in order to work across the Cisco
564   VPN but might be needed for other network environments.  This
565   value is not set by the NSIS installer.
566
567 * New registry value "HideDotFiles" is used to apply the Hidden
568   attribute to files whose names begin with a '.'.   This value
569   is set by the NSIS installer.
570
571 * New registry value "MaxMpxRequests" allows the maximum number
572   of multiplexed sessions to be configured at run time.  This
573   value is not set by the NSIS installer.  The default value is
574   50.
575
576 * New registry value "MaxVCPerServer" allows the maxmimum number
577   of VCs per server to be configured at run time.  This value is
578   not set by the NSIS installer.  The default value is 100.
579
580 * New registry value "AllSubmount" allows the "all" submount to
581   be disabled by setting its value to 0x00.
582
583 * Allow cells names to be valid mount points 
584     \\<netbiosName>\<cellname>
585
586 * Store the active state of drive mappings in order for afscreds.exe
587   to restore them upon startup
588
589 * Add exception handling to generate a Stack Trace to the afsd_init.log
590   file if one happens to occur.
591
592 * Add lots of logging to help detect the cause of invalid SMB packets
593
594 * Enable Kerberos for Windows to be used to obtain AFS Tokens via
595   conversion of Kerberos 5 "afs" service tickets.  Supports auto-
596   renewal of expiring tokens as long as afscreds.exe is running.
597
598 * New afscreds.exe command line options:
599     -A = autoinit
600     -M = renew drive maps
601     -N = ip address change detection
602     -Z = unmap drives
603
604 * New registry value "EnableKFW" in {HKCU,HKLM}SOFTWARE\OpenAFS\Client 
605   determines whether or not MIT Kerberos for Windows should be used
606   to obtain tokens via Kerberos 5 tickets.
607
608 * New registry value "AfscredsShortcutParams" in 
609   {HKCU,HKLM}SOFTWARE\OpenAFS\Client 
610   determines the command line parameters to be specified when "fixing"
611   the AFS Shortcut in the user's startup folder.
612
613 * The "ShowTrayIcon" registry value has been moved from 
614   HKLM\Software\TransarcCorporation\AFS Client\AfsCreds to
615   {HKCU,HKLM}SOFTWARE\OpenAFS\Client 
616   
617 * The <cell name> registry values used to store the token expiration
618   reminders have been moved from 
619   HKLM\Software\TransarcCorporation\AFS Client\AfsCreds to
620   {HKCU,HKLM}SOFTWARE\OpenAFS\Client\Reminders
621  
622 * Obtain the Logon User Name from the Explorer key when available
623
624 * new text document doc\txt\winnotes\registry.txt lists all registry
625   values used by OpenAFS (excluding the AFS Server)
626
627 * BUG: rx_securityClass objects were not properly reference 
628   counted and were never freed.  
629
630 * BUG: reduce the number of conditions under which CM_ERROR_TIMEOUT
631   would be generated.  The existence of a server does not imply
632   that it is not down.  If all of the servers for a cell are down
633   return CM_ERROR_NOSUCHVOLUME instead.  This prevents the Explorer
634   Shell from hanging.
635
636 * BUG: the directory name lookup cache failed to free the entries
637   in the cache when the name cache entries cycled.  The entries
638   in the cache would become dereferenced without being freed.
639
640 * BUG: fs setserverprefs could be executed without Administrator
641   privileges
642
643 * BUG: the number of allocated NCB objects (100) exceeded the number
644   which could actually be waited upon by the kernel (64).  Any objects
645   which were utilized above the limit could never have event completions
646   detected.
647
648 * BUG: smb_username_t objects were not being reference counted and 
649   were not properly freed.
650
651 * BUG: smb_tid_t objects could under unusual circumstances be freed
652   before they were no longer referenced.
653
654 * BUG: smb_fid_t object pointer were frequently used even when 
655   their value could be NULL.   They were not properly released and
656   therefore they were never freed.
657
658 * BUG: smb_packet_t data structures were not completely initialized
659   upon creation
660
661 * BUG: when Rx produces a CM_ERROR_NOIPC error do not return "Access
662   Denied" because that causes the Explorer Shell to try again until
663   access is obtained.  Instead return "Remote Resources" which allows 
664   the shell to move on and treat the error as transient.
665
666 * BUG: when initializing the NCBreturns structure, separate Event objects
667   were created for each NCB although a single Event object was supposed
668   to be shared by all.
669
670 * BUG: smb_dirSearch_t objects were not being properly referenced counted
671   or freed.
672
673 * BUG: smb_tran2Packet_t objects were not being properly referenced 
674   counted or freed.
675
676 * BUG: directory path creation did not handle the case of multiple
677   directories requiring creation in one attempt
678
679 * BUG: SMB requests which required an Extended Response were ignored.
680   This prevented some files from being written to AFS volumes.
681
682 * BUG: character strings were being freed even after they were 
683   inserted into in use data structures
684
685 * BUG: inconsistent usernames were used when High Security mode was
686   enabled.  (there is still much to do in this area)
687
688 * BUG: pioctl() calls which require out of band RPC operations were
689   susceptible to race conditions when performed by multiple processes
690
691 * BUG: memory allocation and deallocation crossed instances of the
692   C Runtime Library producing memory leakage and corruption in 
693   afscreds and the client configurator.
694
695
696