[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / class / corlib / Microsoft.Win32 / ChangeLog
1 2010-07-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2
3         * UnixRegistryApi.cs: From the static ctor of KeyHandler remove the
4         volatile keys directory if the last registered boot time has changed.
5         This way we *actually* have our volatile keys removed if the system as
6         rebooted.
7
8 2010-07-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9
10         * UnixRegistryApi.cs: Remove the in-memmory approach to volatile keys,
11         as it becomes trickier to handle deep hiearchies, subkeys and values
12         in some scenarios. So for now we keep them in disk, we in an
13         alternative directory, so we can cleam them properly later.
14
15 2010-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16
17         * RegistryKey.cs: Call the proper UnixRegistryApi.CreateSubKey overload.
18         * UnixRegistryApi.cs: Implement basic support for volatile keys, by
19         storing them in memory instead of disk. We lack the support to have
20         them available to other processes - and given the fact that a
21         workaround would be gross, just don't implement that now.
22
23 2010-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24
25         * RegistryKey.cs: Add 4.0 CreateSubKey overloads taking a RegistryOptions
26         parameter.
27         * IRegistryApi.cs: Add a new overload for CreateSubKey for the 4.0
28         profile. Not nice, but better than to change the signature for each
29         profile.
30         * Win32RegistryApi.cs: Properly recognize a handle where a volatile
31         key is requested.
32         * UnixRegistryApi.cs: Stubbed.
33
34 2010-07-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
35
36         * Win32RegistryApi.cs: Use RegCreateKeyEx instead of RegCreateKey, as
37         we need it to further support both the missing bits and the 4.0
38         features.
39
40 2010-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
41
42         * UnixRegistryApi.cs: When retrieving the registry keys from file in a
43         unix system, if the value returned by a SecurityElement is null,
44         use String.Empty, since at this point we know that this registry key
45         *exists* and *cannot* have a null value, as specified in the public
46         api.
47         Fixes #543206.
48
49 2009-11-21  Miguel de Icaza  <miguel@novell.com>
50
51         * RegistryKey.cs: Implement a GetValueKind and a handful of
52         methods. 
53
54 2009-04-25  Sebastien Pouliot  <sebastien@ximian.com>
55
56         * *.cs: Exclude the files for the NET_2_1 profile, since they are
57         unneeded and adds a bunch (23) [SecuritySafeCritical] to audit for
58         Moonlight
59
60 2008-02-25  Robert Jordan  <robertj@gmx.net>
61
62         * Win32RegistryApi.cs (ToString): Don't emit the handle value
63         under NET_2_0.
64         See http://msdn2.microsoft.com/en-us/netframework/aa497241.aspx.
65
66 2008-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
67
68         * RegistryKey.cs: Added missing checks on length of subkey and value
69         names. On 2.0 profile, allow subkey <= 255 characters. Modified
70         ArgumentNullException argument names to match MS.
71         * UnixRegistryApi.cs: In SetValue (string, object, RegistryValueKind),
72         use a zero-length string for name if it is null. In OpenSubKey,
73         respect value of writable argument when creating well-known subkey.
74         Fixes bug #357883. Removed argument names for ArgumentException's to
75         match MS.
76
77 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
78
79         * RegistryKey.cs: Fix some argument names to be consistent with MS.
80
81 2007-10-13  kevin.fitzgerald@soarce.us
82
83         * UnixRegistryApi.cs: Escape the strings before passing them to
84         SecurityElement.   This fixes bug #322839
85
86 2007-08-30  Marek Habersack  <mhabersack@novell.com>
87
88         * UnixRegistryApi.cs: properly retrieve values of type
89         'bytearray'.
90
91 2007-08-13  Gert Driesen  <drieseng@users.sourceforge.net>
92
93         * RegistryKeyPermissionCheck.cs: Do not include in 1.0 profile.
94         Removed extra using directive and empty lines.
95
96 2007-05-01  Dick Porter  <dick@ximian.com>
97
98         * RegistryKeyPermissionCheck.cs: Not serializable
99
100 2007-04-30  Dick Porter  <dick@ximian.com>
101
102         * Registry.cs: 
103         * RegistryHive.cs: 
104         * RegistryKey.cs: 
105         * RegistryValueKind.cs: 
106         * RegistryKeyPermissionCheck.cs: Updated for 2.0 profile
107
108 2006-10-29  Miguel de Icaza  <miguel@novell.com>
109
110         * UnixRegistryApi.cs (KeyHandler.MachineStore): Add support for
111         loading/storing values from the system registry, instead of having
112         the system ones be user-based. 
113
114         (KeyHandler, Load): turn IO exceptions into Security exceptions.
115
116 2006-09-03  Gert Driesen  <drieseng@users.sourceforge.net>
117
118         * IRegistryApi.cs: Added OpenRemoteBaseKey method.
119         * Win32ResultCode.cs: Added code for win32 error 53.
120         * RegistryKey.cs: Implemented support for OpenRemoteBaseKEy on
121         Windows. To achieve this, the handle of the remote hive must be
122         stored separately from the RegistryHive value. Removed isRoot field, as
123         we now determine whether we're a root key (hive) by checking if hive
124         is not null. Added internal ctor for registry hives that takes a 
125         RegistryHive, a key handle and a bool to indicate whether its a remote
126         hive. Renamed Data field to handle and added internal property to 
127         access it. Throw ObjectDisposedException in ToString if key is
128         closed/disposed. Added Hive property, which is used in UnixRegistryApi.
129         Added GetHiveName method which translates a RegistryHive value to its
130         (key) name.
131         * Win32RegistryApi.cs: Added pinvoke for RegConnectRegistry. GetHandle
132         no longer needs to know whether the key refers to a hive (base key) 
133         or not. Implemented OpenRemoteBaseKey.
134         * UnixRegistryApi.cs: Added OpenRemoteBaseKey implementation which
135         always throws NotImplementedException.
136         * Registry.cs: The key name of the base key no longer needs to be 
137         passed to the ctor, as it's looked up in the ctor itself. This avoids
138         having a different logical for local or remote base keys.
139
140 2006-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
141
142         * Win32RegistryApi.cs: Use a StringBuilder instead of byte [] for
143         RegEnumKey. Fixed issue in GetSubKeyNames where buffer was not cleared
144         while iterating over subkeys.
145
146 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
147
148         * RegistryValueOptions.cs: Add the real one.
149
150 2006-08-20  Atsushi Enomoto  <atsushi@ximian.com>
151
152         * RegistryValueOptions.cs : build fix, easier than reverting all.
153
154 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
155
156         * IRegistryApi.cs: Modified GetValue to take RegistryValueOptions enum
157         and removed obsolete return_default_value argument.
158         * RegistryKey.cs: Added missing ComVisible attribute on SetValue.
159         Use new GetValue method on IRegistryApi that takes RegistryValueOptions
160         enum. Added GetValue overload that takes RegistryValueOptions (2.0).
161         * Win32RegistryApi.cs: Modified GetValue to take RegistryValueOptions
162         enum, and removed obsolete returnDefaultValue argument. Added support
163         for ExpandString value type. Do no expand if DoNotExpand... is set.
164         * UnixRegistryApi.cs: Modified KeyHandler.GetValue to take
165         RegistryValueOptions enum, and do no expand environment variables in
166         an ExpandString if DoNotExpandEnvironmentNames is set. Modified
167         UnixRegistryApi.GetValue to take RegistryValueOptions enum, and 
168         removed obsolete return_default_value argument.
169
170 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
171
172         * UnixRegistryApi.cs: Undo change for new eventlog implementation that
173         was not rolled back earlier this week, and which does not make sense
174         without that implementation anyway.
175
176 2006-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
177
178         * Win32ResultCode.cs: Added error code for attempting to perform an
179         operation on registry key that is marked for deletion.
180         * RegistryKey.cs: Keep writable state. Automatically flush changes to
181         disk when closing key (to match MS). Allow values to be set on root
182         keys. Throw UnauthorizedAccessException when attempting to set/delete
183         value or create/delete sub key on registry key that is openen 
184         read-only. Fixed DecodeString to only strip trailing nullchars (as
185         documented).
186         * Win32RegistryApi.cs: For a key that is marked for deletion, return
187         null when attempting to get a value of that key (and no default value
188         was specified) or open a subkey. Throw an IOException when attempting
189         to perform the following operation on a key that is marked for
190         deletion:
191                 1) set value on key
192                 2) obtain SubKeyCount
193                 3) obtain ValueCount
194                 4) create a sub key
195                 5) obtain value names
196         and ignore deleting a value. Ignore flushing changes of a key and
197         closing a when the key is closed.
198         * UnixRegistryApi.cs: Maintain handler cache per directory instead of
199         caching registry keys. This allows both a single key to be in memory
200         in both read-only and read-write key configuration, while sharing the
201         KeyHandler. Use case-insensitive hashtable for mapping directory to
202         KeyHandler. Added support for keys that have been marked for deletion
203         by another operation (eg. DeleteSubKeyTree). Allow different file store
204         for machine-level and user-level hives (but have them use the same
205         file store, needs further discussion). Allow KeyHandler failure when
206         create directory, or saving values file to bubble up. Do not save
207         values file when key is marked for deletion. Encapsulate access to
208         values collection. When setting value with null name, use zero-length
209         name instead. Treat key name case-insensitive in DeleteKey to match
210         OpenSubKey.
211
212 2006-08-14  Miguel de Icaza  <miguel@novell.com>
213
214         * RegistryValueKind.cs: Make this public in 2.0, and rename from
215         previous version.
216
217         * Win32RegistryApi.cs: Include version to check for version;
218         Eliminate old internal enum, and instead use the new 2.0 enum.
219
220         * UnixRegistryApi.cs: Add support for typed versions of values.
221
222         Add support for ExpandString.
223
224         * Registry.cs (SetValue): implement version with type arguments.
225
226 2006-08-13  Miguel de Icaza  <miguel@novell.com>
227
228         * Registry.cs (SetValue, GetValue): implement.
229
230         * UnixRegistryApi.cs (KeyHandler.LoadKey, KeyHandler.Save): Add
231         support for qwords.
232
233         (KeyHandler.Save): Do not save the entries if they have been
234         deleted/dropped.   Fixes a crash.
235
236         (UnixRegistryApi.DeleteKey): bug fix, call ToUnix on the keyname.
237
238 2006-08-12  Gert Driesen  <drieseng@users.sourceforge.net>
239
240         * Registry.cs: Fixed copy/paste bug.
241
242 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
243
244         * UnixRegistryApi.cs: Consider HKLM\SYSTEM\CurrentControlSet\Services\
245         EventLog a wellknown key. Required for new EventLog implementation. 
246         Added RegistryStore property.
247
248 2006-06-06  Miguel de Icaza  <miguel@novell.com>
249
250         * UnixRegistryApi.cs: Do not crash if there are no values stored.
251
252 2006-05-28  Gert Driesen <drieseng@users.sourceforge.net>
253
254         * UnixRegistryApi.cs: GetSubKeyNames returns only names of subkeys,
255         not the qualified name. Fixes bug #78519.
256
257 2006-04-20  Gert Driesen <drieseng@users.sourceforge.net>
258
259         * UnixRegistryApi.cs: In KeyHandler.SetValue, immediately convert
260         instances of non-native registry types (meaning int, string, string[]
261         or byte[]) to string. This avoids returning an instance of a non-native
262         registry type in calls to UnixRegistryApi.GetValue. Allow instances of
263         non-native registry types in UnixRegistryApi.SetValue. Fixes bug #78132.
264
265 2006-04-18  Gert Driesen <drieseng@users.sourceforge.net>
266
267         * UnixRegistryApi.cs: Only consider the "software" subkey a well-known
268         key if the parent is either HKEY_USERS or HKEY_LOCAL_MACHINE.
269
270 2006-04-15  Robert Jordan <robertj@gmx.net>
271
272         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
273         #77772. Patch reapplied, since r57881 was not applied correctly.
274         
275 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
276
277         * UnixRegistryApi.cs: create well-known keys when trying to open them.
278
279 2006-03-12  Robert Jordan <robertj@gmx.net>
280
281         * UnixRegistryApi.cs (DeleteValue): Avoid crash, fixes bug
282         #77772
283
284 2006-01-14  Robert Jordan  <robertj@gmx.net>
285
286         * RegistryKey.cs: Added internal IsRoot accessor.
287         * Win32RegistryApi.cs: Fixed access to RegistryKey.Data.
288         Fixes bug #77212. Thanks to Don Edvalson (don@edvalson.net)
289         for spotting this out.
290
291 2005-12-02  Atsushi Enomoto  <atsushi@ximian.com>
292
293         * Win32RegistryApi.cs : fixed invalid cast. Now mono is not to blame
294           for not being able to run NAnt on Windows.
295         
296 2005-11-12  Miguel de Icaza  <miguel@novell.com>
297
298         * RegistryKey.cs: Add support for a Registry on Unix based on
299         files under ~/.mono/registry.
300
301         Vastly refactored the code, reworked the interface between the
302         frontend and the backends.  
303
304         If "RegistryKey" was not sealed, things could have been a lot
305         cleaner. 
306
307 2005-01-31  mei (mei@work.email.ne.jp)
308
309         * RegistryKey.cs: Fixes bug 70451: When the key doesn't exist, and
310         the default value is not specified, it is necessary to return
311         null. and DecodeString function's bug is fixed.
312
313 2004-04-10  Gert Driesen (driesen@users.sourceforge.net)
314
315         * RegistryKey.cs: explicit implementation of IDisposable to match 
316         MS corlib
317
318 2004-03-17  Jackson Harper  <jackson@ximian.com>
319
320         * Win32RegistryApi.cs: Fix typo. Patch by Gert Driesen.
321
322 2004-03-03  Jackson Harper  <jackson@ximian.com>
323
324         * Win32RegistryApi.cs: Specify entry points.
325         
326 2004-03-03  Jackson Harper <jackson@ximian.com>
327
328         * Win32RegistryApi.cs: New file - pinvokes to the win32
329         registry. Patch  by Erik LeBel.
330         * IRegistryApi.cs: New file - Interface to a registry backend
331         (win32 on windows, no implementation on unix). This interface will
332         probably change when we write a Linux backend.
333         * Win32ResultCode.cs: New file - Win32 result codes needed to
334         check pinvoke. Patch by Erik LeBel.
335         * Registry.cs: Create the keys. Patch by Erik LeBel.
336         * RegistryKey.cs: Implement. Patch by Erik LeBel.
337         
338 2003-12-27  Nick Drochak  <ndrochak@gol.com>
339
340         * RegistryKey.cs: Add some missing overloads.
341
342 2003-02-10  Nick Drochak  <ndrochak@gol.com>
343
344         * Registry.cs: Class should be sealed and have a private default ctor.
345
346 2002-11-28  Alejandro Sánchez Acosta  <raciel@es.gnu.org>
347
348         * Registry.cs: Added missed field.
349
350 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
351
352         * RegistryHive.cs: patch from Jackson Harper that fixes compilation.
353
354 2002-11-27  DennisHayes <dennish@raytek.com>    
355
356         * checkin for Alexandre Pigolkine (pigolkine@gmx.de) with minor changes
357         * needed for System.Windows.Forms
358         
359         * RegistryHive.cs
360         * Registry.cs
361         * added files, fully implmented?
362         
363         * RegistryKey.cs
364         * added more iplmentation
365
366 2002-11-20  Nick Drochak  <ndrochak@gol.com>
367
368         * RegistryKey.cs: Fix typo.