diff options
Diffstat (limited to 'mcs/class/Mono.Posix/Mono.Unix/ChangeLog')
-rw-r--r-- | mcs/class/Mono.Posix/Mono.Unix/ChangeLog | 1221 |
1 files changed, 0 insertions, 1221 deletions
diff --git a/mcs/class/Mono.Posix/Mono.Unix/ChangeLog b/mcs/class/Mono.Posix/Mono.Unix/ChangeLog deleted file mode 100644 index d1b975c6ce5..00000000000 --- a/mcs/class/Mono.Posix/Mono.Unix/ChangeLog +++ /dev/null @@ -1,1221 +0,0 @@ -2010-04-15 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Change the native WaitAny() method to accept a - Mono_Posix_RuntimeIsShuttingDown delegate, so that we can prevent an - infinite loop while shutting the process down. Fixes #592981. - -2009-03-23 Jonathan Pryor <jpryor@novell.com> - - * UnixDriveInfo.cs: UnixDriveInfo.AvailableFreeSpace needs to return - stat.f_bavail * stat.f_frsize, NOT f_bavail*f_bsize, as on some - platforms (Solaris) bsize is the preferred block I/O size, while - f_frsize is the *actual* filesystem block size. Thus, to get proper - disk under Solaris, we need to s/f_bsize/f_frsize/g. - -2009-02-20 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Add a pipecnt member to UnixSignal.SignalIinfo. - Patch thanks to tim.jenks@realtimeworlds.com. - -2009-02-09 Jonathan Pryor <jpryor@novell.com> - - * UnixGroupInfo.cs (GetMembers): Skip group members which aren't valid - users on the system (thus removing a possible exception). Patch - thanks to Daniel Peñalba. - -2009-01-08 Rodrigo Kumpera <rkumpera@novell.com> - - * UnixSignal.cs: Check if realtime signal install failed with - EADDRINUSE due to the signal been used by outside of Mono.Posix. - -2008-12-19 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Allow RealTimeSignums to be used in addition to - Signum, so that real time signals can be used. Patch thanks to - tim.jenks@realtimeworlds.com. - -2008-11-04 Andrés G. Aragoneses <aaragoneses@novell.com> - - * UnixStream.cs: Do not check offset against int.MaxValue - (System.IO doesn't have it). Reviewed by Jonathan Pryor. - Bug reported by Siro Blanco <siro.blanco@gmail.com>. - -2008-11-03 Miguel de Icaza <miguel@novell.com> - - * UnixClient.cs (Client): Make this property public when using the - Mono 2.0 profile, based on a discussion with Vlad Hociota and Joe - Shaw. - -2008-02-11 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Improve argument checking to match docs. - -2008-02-08 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: UnixSignal.WaitAny() should have the same return type as - WaitHandle.WaitAny(). Oops. - -2008-02-08 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Modification of Info->count should be thread safe. - -2008-01-28 Jonathan Pryor <jpryor@novell.com> - - * UnixSignal.cs: Added; Polling and blocking based Unix signal mechanism. - http://lists.ximian.com/pipermail/mono-devel-list/2008-January/026501.html - -2008-01-22 Sebastien Pouliot <sebastien@ximian.com> - - * UnixPipes.cs: Fix Equals to avoid NRE (and return false if object - is null). Found using Gendarme. - -2007-12-17 Jonathan Pryor <jpryor@novell.com> - - * UnixEnvironment.cs: Update MachineName property accesor to use uname(2) - instead of gethostname(2), as gethostname(2) truncates the machine name to - 16 characters, while uname(2) doesn't. - -2007-12-17 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDirectoryInfo.cs: Fix Parent property so that it properly handles - returning the parent of "/". UnixPath.GetDirectoryName() returns "" on - "error", not null; act accordingly. - * UnixDriveInfo.cs: Fix IsReady property so that it returns `false' if no - media is mounted. The presence of media is determined by comparing the - Statvfs.f_fsid value of the current and parent directories; if they - differ, it is assumed that media is present, and thus the directory is - ready. If they're identical, then media isn't present, and the directory - isn't ready. - * UnixPath.cs: UnixPath.GetDirectoryName("/mnt") should return "/", not "". - -2007-09-13 Jonathan Pryor <jonpryor@vt.edu> - - * UnixStream.cs: Don't read/write if the buffer has no data. Fixes #82836. - -2006-10-24 Jonathan Pryor <jonpryor@vt.edu> - - * MapAttribute.cs: Moved to ../Mono.Unix.Native/MapAttribute.cs. - -2006-08-21 Jonathan Pryor <jonpryor@vt.edu> - - * UnixStream.cs: .Close() shouldn't close(2) the fd unless owner==true; - .Flush() should be a no-op (as System.IO.Stream.Flush doesn't gaurantee - that .Flush() actually flush to disk, and .Flush() slows things down a - lot); see: http://joeshaw.org/2006/08/21/415. - -2006-08-16 Alp Toker <alp@atoker.com> - - * UnixEndPoint.cs: - * AbstractUnixEndPoint.cs: Second half of the fix for #79084. - Add support for the abstract namespace, and update existing file-based - UnixEndPoint (de)serialization to reflect changes in the runtime. - -2006-07-02 Jonathan Pryor <jonpryor@vt.edu> - - * UnixSymbolicLinkInfo.cs: Oops. CreateSymbolicLinkTo() should create - FullPath, not OriginalName. This was fixed in one overload in January, - but I missed an overload. :-/ - -2006-07-02 Jonathan Pryor <jonpryor@vt.edu> - - * UnixPath.cs: Follow .NET's System.IO.Path.Combine() behavior, and "reset" - the generated path if any argument beings with a path root -- - UnixPath.Combine("/a", "/b") should return "/b", not "/a/b". Fixes #78580. - -2006-04-21 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: rename Create() to GetFileSystemEntry(), and make - it public (so that other's don't need to worry about the - Syscall.lstat()-and-switch to create a UnixFileSystemInfo instance). - * UnixDirectoryInfo.cs, UnixSymbolicLinkInfo.cs: - s/Create/GetFileSystemEntry/g (to cope with above change). - -2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * UnixEndPoint.cs: added GetHashCode/Equals. - -2006-03-06 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDriveInfo.cs: Remove requirement that mountPoints be avaible via - getfsfile(3). This isn't always the case -- in particular drives mounted - via HAL and other mechanisms won't be listed in /etc/fstab, and thus won't - be returned via getfsfile(3). If getfsfile(3) fails, then we "guess" on - the drive format and volume label. - * UnixStream.cs: RefreshStat() should assert that the instance hasn't been - disposed. - * UnixEnvironment.cs (GetConfigurationValue, GetConfigurationString): Fix - error checking. - -2006-02-23 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: Create() should return a UnixFileInfo if the file - doesn't exist. This allows callers to use UnixFileInfo.Exists to see if - the file exists, and behaves more rationally e.g. if the directory - contents changes while calling UnixDirectoryInfo.GetFileSystemEntries(), - we'll get a UnixFileInfo entry that doesn't exist instead of an exception - terminating the entire array creation. - * UnixSymbolicLinkInfo.cs: [Obsolete] the Contents property -- this property - *always* creates a new object if HasContents=true, and since a - UnixFileSystemInfo instance is (104+2*(sizeof(void*))+1) bytes (~113 bytes - on 32-bit platforms), we don't want to create these frequently. Add a - GetContents() method as the replacement, to make it (slightly) more - explicit that information won't be cached (and thus should be cached by - the caller, if appropriate). GetContents() throws an exception if - HasContents=false instead of returning null; this change brings the - implementation in line with the documentation. - -2006-02-18 Alp Toker <alp@atoker.com> - - * UnixEndPoint.cs: Avoid truncation of last two bytes of SocketAddress - string - -2006-01-26 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: Check for null arguments in PtrToString() and - PtrToStringArray(). - -2006-01-24 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs (StringToHeap): Return IntPtr.Zero if `s' is null. - -2006-01-24 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs (StringToHeap): Check for null arguments. - -2006-01-20 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDriveInfo.cs: Properties should generate an InvalidOperationException, - not an IOException. Users can use IsReady to avoid exception generation. - * UnixIOException.cs: Create a custom message that embeds the error name - within the text, e.g. "Permission denied [EACCES]." - * UnixSymbolicLinkInfo.cs: This really should create the file FullPath, not - OriginalPath. Created files shouldn't ever be relative to the current - working directory, as this can change at any time. - -2006-01-15 Jonathan Pryor <jonpryor@vt.edu> - - * UnixUserInfo.cs: The UnixUserInfo(Native.Passwd) constructor and - ToPasswd() should clone the underlying Native.Passwd, so - that it doesn't get changed from underneath it. - * UnixGroupInfo.cs: The UnixGroupInfo(Native.Group) constructor should also - clone the provided Native.Group instance. - -2006-01-14 Jonathan Pryor <jonpryor@vt.edu> - - * UnixGroupInfo.cs: ToGroup() should clone the underlying Native.Group, so - that it doesn't get changed from underneath it. - -2006-01-13 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs, UnixMarshal.cs: Throw `UnixIOException(Native.Errno.ENOMEM)` - instead of System.OutOfMemoryException. OOME should be reserved for use - by the CLR (according to FxDG). - -2006-01-12 Jonathan Pryor <jonpryor@vt.edu> - - * UnixPath.cs: Add ReadLink() and TryReadLink() methods. - -2006-01-12 Miguel de Icaza <miguel@novell.com> - - * PeerCred.cs: Do not define PeerCredData as this is a structure - known to the runtime. Instead use the Mono.Posix.PeerCredData - internal class. - -2006-01-10 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs: Don't use - System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(), use - UnixMarshal.StringToHeap(). We require that the converted string be in - UTF-8 format, but .NET's Marshal.StringToHGlobalAuto converts to the local - code page, *not* UTF-8 (Mono's does UTF-8). UnixMarshal.StringToHeap - *always* does UTF-8, so use that instead. - -2006-01-09 Jonathan Pryor <jonpryor@vt.edu> - - * FileTypes.cs: Remove [Flags] attribute -- these aren't bitfield values. - * UnixFileSystemInfo.cs: Fix Is<<Type>> properties -- before it would - erroneously say that a symlink was a character device. (This is because - device values are *not* [Flags] values, but code was assuming they were.) - * UnixGroupInfo.cs: Clone the string[] returned from GetMemberNames(). We - don't want callers to change the underlying list. - -2006-01-07 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: *Actually* put things in alphabetical order (like the - comment says). I can speak english, really I can. - -2006-01-06 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs: s/libintl/intl/g, since intl.dll is used by GTK+ on Windows, - not libintl.dll (according to - http://www.gimp.org/~tml/gimp/win32/downloads.html). - -2006-01-03 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs (CreateExceptionForError): Don't map ENOMEM to - System.OutOfMemoryException. OOME should be reserved for use by the CLR. - Return a UnixIOException instead (default behavior). - -2006-01-02 Jonathan Pryor <jonpryor@vt.edu> - - * StdioFileStream.cs: Shut up FxCop - add a GC.KeepAlive to - AssertNotDisposed(). - * UnixClient.cs, UnixListener.cs: Use System.MarshalByRefObject as the base - class. These types implement IDisposable and have a finalizer, so if an - instance of these types were sent to another AppDomain they'd previously - marshal by copy, which could lead to a double release of an unmanaged - resource -- potential badness. Using MarshalByRefObject fixes this. - -2006-01-02 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: s/EACCESS/EACCES/g. I can't read. - -2006-01-02 Jonathan Pryor <jonpryor@vt.edu> - - * StdioFileStream.cs, UnixDirectoryInfo.cs, UnixEnvironment.cs, - UnixFileInfo.cs, UnixFileSystemInfo.cs, UnixGroupInfo.cs, - UnixIOException.cs, UnixMarshal.cs, UnixProcess.cs, UnixStream.cs, - UnixSymbolicLinkInfo.cs, UnixUserInfo.cs: Remove Obsolete API. - * CdeclFunction.cs, IncludeAttribute.cs, Stdlib.cs, Syscall.cs, - UnixConvert.cs, UnixDirectory.cs, UnixFile.cs, UnixGroup.cs, - UnixUser.cs: Delete. - * UnixPath.cs: Remove InvalidPathChars; use GetInvalidPathChars() instead. - * FileTypes.cs: Remove Obsolete API - -2006-01-02 Jonathan Pryor <jonpryor@vt.edu> - - * FileAccessPermissions.cs: Remove UserMask, GroupMask, OtherMask values. - * FileSpecialAttributes.cs: Remove AllAttributes member; it shouldn't be - public. Use UnixFileSystemInfo.AllSpecialAttributes instead. - * StdioFileStream.cs: Open files in binary mode, not text; - Fix exception message for StdioFileStream(path, mode) mode param check. - * UnixDirectoryInfo.cs: Add Create(FileAccessPermissions) overload; change - GetFileSystemEntries() to include the directory name that the files came - from (otherwise they're in the current working direcetory, which they - probably aren't). - * UnixFileInfo.cs: Add Create(FileAccessPermissions) overload; Add better - argument checking to several Open() overloads. - * UnixFileSystemInfo.cs: Add AllSpecialAttributes, AllFileTypes members; - FullPath member should invalidate instance if path changes; Change return - type of GetFileStatus for maintenance/better documentation; ToStat() - should ensure that the instance is valid first. - * UnixMarshal.cs: Add additional Errno values to CreateExceptionForError(); - reformat CreateExceptionForError for maintenance. - * UnixPath.cs: Obsolete InvalidPathChars -- FxCop never liked it, and now I - know why it didn't like it (thank you Framework Design Guidelines!). - * UnixStream.cs: Use UnixFileSystemInfo.AllSpecialAttributes, not - FileSpecialAttributes.AllAttributes (which was removed). - * UnixSymbolicLinkInfo.cs: Change return type of GetFileStatus(). - -2005-12-28 Jonathan Pryor <jonpryor@vt.edu> - - * FileHandleOperations.cs: Check for null references. - -2005-12-28 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: Errno.EBADF should also trigger a ArgumentException. - -2005-12-27 Jonathan Pryor <jonpryor@vt.edu> - - * FileHandleOperations.cs, FileTypes.cs, Stdlib.cs, Syscall.cs, - UnixConvert.cs, UnixDirectory.cs, UnixDirectoryInfo.cs, UnixDriveInfo.cs, - UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs, - UnixGroup.cs, UnixGroupInfo.cs, UnixIOException.cs, UnixMarshal.cs, - UnixPath.cs, UnixPipes.cs, UnixProcess.cs, UnixStream.cs, - UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs: Mark to-be-removed - API with [Obsolete(IsError=true)] (permits compiler assistance for finding - obsolete code); Migrate to the Mono.Unix.Native API. - * StdioFileStream.cs: Add non-Obsolete overloads for SaveFilePosition & - RestoreFilePosition (oops). Migrate to Mono.Unix.Native API. - -2005-12-07 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: Add PtrToStringUnix() -- specialized PtrToString method - which is significantly faster than PtrToString(p, UnixEncoding.Instance). - Use System.String..ctor(sbyte*, int, int, Encoding) to avoid the byte[] - intermediate copy -- much faster. Fix PtrToString() so that it will - accept an IntPtr containing 0 characters, and don't duplicate strings - unless necessary. - -2005-11-18 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs, UnixDirectory.cs, UnixDirectoryInfo.cs, UnixDriveInfo.cs, - UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs, - UnixGroup.cs, UnixGroupInfo.cs, UnixProcess.cs, UnixSymbolicLinkInfo.cs, - UnixUser.cs, UnixUserInfo.cs: Change types of [Obsolete] members for - consistency and CLS compliance; Mono.Unix.Native type migration. - * FileTypes.cs: s/Special/Device/g (CharacterSpecial ==> CharacterDevice). - The *Special was a BSD convention, while UnixFileSystemInfo uses *Device - in property names, and these should be consistent. Changing the enum is - simpler than changing the UnixFileSystemInfo properties. - * UnixIOException.cs: s/error/errno/g (FxCop suggestion); change type of - ErrorCode property. - * UnixMarshal.cs: s/error/errno/g (FxCop suggestion); Mono.Unix.Native - type migration. - -2005-11-08 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs: Exception safety improvements (don't let memory leak!); check - for errors with bindtextdomain(3) et. al. - -2005-11-08 Jonathan Pryor <jonpryor@vt.edu> - - * UnixPipes.cs: Provide Equals, GetHashCode, and operator==/operator!= to - conform with FxCop guidelines for structures. - -2005-11-03 Jonathan Pryor <jonpryor@vt.edu> - - * FileTypes.cs, UnixFileSystemInfo.cs: s/FIFO/Fifo/ to follow .NET - naming conventions (as reported by FxCop). - -2005-11-01 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDirectoryInfo.cs, UnixDriveInfo.cs, UnixEnvironment.cs, - UnixFileSystemInfo.cs, UnixGroupInfo.cs, UnixProcess.cs, UnixUserInfoc.cs: - Obsolete statements now specify in what way the return type will change. - * IncludeAttribute.cs: Obsoleted. It's an error to use it now. - -2005-11-01 Jonathan Pryor <jonpryor@vt.edu> - - * FileAccessPattern.cs: Change enumeration names to match Robert Love's more - sensible names from his FileAdvise class used in Beagle - (UseSoon --> PreLoad, WillNotUse --> FlushCache). - * FileHandleOperations.cs: Added; contains AdviseFileAccessPattern() - (moved from UnixFile.cs). - * UnixDirectory.cs: Obsolete the class; use UnixDirectoryInfo instead. - * UnixDirectoryInfo.cs: Add GetCurrentDirectory(), SetCurrentDirectory(). - * UnixFile.cs: Obsolete the class; use UnixFileInfo, FileHandleOperations, - or UnixPipes instead. - * UnixFileSystemInfo.cs: Add ToStat() method. - * UnixGroup.cs: Obsolete the class; use UnixGroupInfo instead. - * UnixGroupInfo.cs: Obsolete & Replace constructor, add GetMemberNames(), - GetLocalGroups(). - * UnixPipes.cs: Added (type moved from UnixFile.cs). - * UnixStream.cs: AdviseFileAccessPattern() uses FileHandleOperations now. - * UnixSymbolicLinkInfo.cs: Implement TryReadLink() to avoid constant buffer - re-sizing. Stevens states that the file size of the symlink is the number - of bytes needed to hold the symlink, so this should be faster. - * UnixUser.cs: Obsolete the class; use UnixUserInfo instead. - * UnixUserInfo.cs: Obsolete & Replace constructor; add useful static members - from UnixUser such as GetLoginName(), GetLocalUsers(), etc. - -2005-10-27 Jonathan Pryor <jonpryor@vt.edu> - - * UnixEnvironment.cs: Add RealUser, RealGroup, EffectiveUser, EffectiveGroup - properties; [Obsolete] necessary methods and provide replacements. - * UnixStream.cs: Add OwnerUser(Id), OwnerGroup(Id) properties; - improve Stat handling. - -2005-10-26 Jonathan Pryor <jonpryor@vt.edu> - - * UnixEncoding.cs: Change EscapeByte to 0x0000, as suggested by Michal - Moskal. - * UnixPath.cs: Remove '\0' from InvalidPathChars, since U+0000 is now used - as the path escape character for marshaling purposes. - -2005-10-26 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: Obsolete heap-related methods to have a Heap suffix - (AllocHeap, FreeHeap, etc.), and change StringToAlloc() to be - StringToHeap(). This creates a stronger name association between related - methods. - -2005-10-26 Jonathan Pryor <jonpryor@vt.edu> - - * UnixIOException.cs: Add (string) and (string, Exception) constructors to - silence FxCop; re-work logic so we lookup the error string at construction - time and use this as the message for the base class. - -2005-10-25 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs, Syscall.cs: Filenames need to be marshaled through the - FileNameMarshaler, which will encode/decode filenames with UnixEncoding. - * UnixEncoding.cs: Added (copied from - ../../corlib/System.Text/UTF8Encoding.cs); a hack to permit handling of - arbitrarily encoded filenames. It attempts to decode a byte[] array as - UTF-8, and if the decode fails it prefixes each byte with - UnixEncoding.EscapeByte (\uFFFF). - * UnixMarshal.cs: Use UnixEncoding as the default encoding, and special-case - UnixEncoding to use Stdlib.strlen() for native string lengths. - -2005-10-21 Jonathan Pryor <jonpryor@vt.edu> - - * FileAccessPattern.cs: Added - * UnixFile.cs, UnixStream.cs: Deprecate all the Advise* methods (lots!) - and replace with 6 methods which take a FileAccessPattern enum. - -2005-10-19 Jonathan Pryor <jonpryor@vt.edu> - - * FileAccessPermissions.cs, FileSpecialAttributes.cs, FileTypes.cs: Added. - * UnixFileSystemInfo.cs, UnixStream.cs: Replace the old Permission property - with 4 new properties: Protection (for the Native.FilePermissions value), - FileAccessPermissions (for rwxrwxrwx info), FileSpecialAttributes (for - set-user-id, set-group-id, sticky), and FileTypes (directory, socket...). - The new enumeration types have nicer CLS-compliant names. - -2005-10-17 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: Fix GetIntXxBufferLength to require fewer - Marshal.ReadIntXx() calls; Fix PtrToString so that - ``"foo" == PtrToString (StringToAlloc("foo",enc),enc)'' is true for - "random" encodings. - -2005-10-17 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: Add OwnerUserId and OwnerGroupId properties. - -2005-10-17 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDriveInfo.cs, UnixEnvironment.cs, UnixFile.cs, UnixFileSystemInfo.cs, - UnixGroup.cs, UnixStream.cs, UnixUser.cs: Don't use SetLastError(), since - it's use is (1) incorrect, and (2) will be going away with the move to - Mono.Unix.Native.Syscall. Instead use the Native.Syscall.* APIs which - set errno sanely. - -2005-10-17 Jonathan Pryor <jonpryor@vt.edu> - - * UnixGroup.cs, UnixGroupInfo.cs, UnixFile.cs, UnixFileSystemInfo.cs, - UnixStream.cs, UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs: - Start migrating uid/gid to long (from uint) for CLS compliance. - (Full migration must wait 'til after the next release as this would - require changes to existing members.) - * UnixEnvironment.cs: Above, and add RealUserId/RealGroupId and - EffectiveUserId/EffectiveGroupId. - -2005-10-14 Jonathan Pryor <jonpryor@vt.edu> - - * Catalog.cs: Create a constructor and mark it [Obsolete]. It will be made - private after the next release. - * UnixFile.cs, UnixStream.cs: Deal with Mono.Unix.Native type name changes. - * UnixFileSystemInfo.cs: [Obsolete] more members; Deal with Mono.Unix.Native - type name changes. - * Syscall.cs: Create maps for PathConf, SysConf, ConfStr again; fpathconf(), - pathconf(), and sysconf() should call Native.Syscall since the - MonoPosixHelper.so helpers have changed. - -2005-10-13 Jonathan Pryor <jonpryor@vt.edu> - - * UnixMarshal.cs: More/better StringToAlloc/PtrToString which take a - System.Text.Encoding instance for proper string marshaling. - - PtrToString(string,Encoding) is particularly tricky due to variable - length encodings. - - Fix StringToAlloc so that it works properly with UTF-16 encodings - (we need a terminating null 16-bit word, not a null byte). - - StringToAlloc overload for doing substrings. - -2005-10-12 Jonathan Pryor <jonpryor@vt.edu> - - * UnixStream.cs: Check for EROFS and EINVAL in Flush(). Snorp was getting - an exception when he created a UnixStream around a socket, because - sockets can't be flushed. It should be acceptable to create a UnixStream - around a socket, so don't throw an exception in this scenario. - -2005-10-06 Jonathan Pryor <jonpryor@vt.edu> - - * UnixDirectory.cs, UnixDirectoryInfo.cs UnixFile.cs, UnixFileSystemInfo.cs, - UnixGroupInfo.cs, UnixIOException.cs, UnixStream.cs, UnixUserInfo.cs: - API Review: Obsolete appropriate members and add appropriate overloads for - pending move to Mono.Unix.Native types. - * UnixMarshal.cs: API Review; add StringToAlloc(). - -2005-09-26 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: Exists shouldn't use access(2), as (1) Exists isn't - virtual, and (2) access(2) errors if you try to access(2) a symlink which - points nowhere. Use (l)stat(2) instead, via GetFileStatus(), as this lets - UnixSymbolicLinkInfo behave properly. - * UnixSymbolicLinkInfo.cs: The Contents property should return null if the - symlink target doesn't exist. - -2005-09-20 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Add [Map] to AccessMode and MmapProt, as the Mono.Unix.Native - replacements go by different names (AccessModes, MmapProts), but we need - to continue generating the mapping code for these types (backward compat). - -2005-09-20 Jonathan Pryor <jonpryor@vt.edu> - - * CdeclFunction.cs: [Obsolete]d by Mono.Unix.Native.CdeclFunction. - * make-map.cs: Remove. - * Stdlib.cs: [Obsolete] the types; use the Mono.Unix.Native.* types instead. - * StdioFileStream.cs: Add GC.KeepAlive statements to prevent premature GC's - (FxCop suggestion). - * Syscall.cs: Remove [Map] attribute from all types; [CLSCompliant(false)] - work; [Obsolete] all types and suggest using the Mono.Unix.Native.* - replacements; remove [IncludeAttribute] -- superseded by - Mono.Unix.Native/Syscall.cs's [HeaderAttribte] for CLS compliance. - * UnixConvert.cs: [Obsolete]d by Mono.Unix.Native.NativeConvert. - * UnixDirectory.cs, UnixDriveInfo.cs, UnixEnvironment.cs, - UnixGroup.cs, UnixGroupInfo.cs, - UnixSymbolicLinkInfo.cs, UnixUser.cs, UnixUserInfo.cs: - Add [CLSCompliant(false)] as necessary. - * UnixFile.cs, UnixDirectory.cs, UnixFileInfo.cs, UnixFileSystemInfo.cs: - [CLSCompliant(false)], addition of method overloads for [Obsolete]d types, - warn about changing return types. - * UnixProcess.cs, UnixStream.cs: Add [CLSCompliant(false)] as necessary, - and warn about changing property types. - -2005-09-02 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Cache delegates passed to Stdlib.signal() so that they survive - garbage collections. Delegates can be removed by calling Stdlib.signal() - again with one of the Stdlib.SIG_* values (or the original return value of - Stdlib.signal()). - * UnixUser.cs, UnixGroup.cs, UnixEnvironment.cs: Clarify "Id" (int) vs. - "Name" (string) differences by always using a Id or Name suffix. - -2005-07-01 Daniel Drake <dsd@gentoo.org> - - * Syscall.cs: The entire extended attribute API now goes through MPH, to - be shared between both Linux's and FreeBSD's similar EA implementations. - -2005-06-29 Miguel de Icaza <miguel@ximian.com> - - * StdioFileStream.cs: Only flush if we do not own the handle, as - fclose does a flush internally. - -2005-06-29 Jonathan Pryor <jonpryor@vt.edu> - - * UnixEnvironment: Add User, Login properties. - * Syscall.cs: Add locking around cuserid, crypt, encrypt, getlogin. - -2005-06-29 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: SyslogFacility shouldn't be [Flags] either. Sigh. - Thanks to Vorobiev Maksim for pointing this out. - * make-map.cs: Don't generate conversion code for [Obsolete] enum members. - This assumes that (1) the enum member's value is invalid, or (2) a - corrected member with the same value exists. This fix allows us to - obsolete invalid members (instead of removing them) without screwing up - the generated code -- consider LOG_USRE, the mis-spelling of LOG_USER. - Since SyslogFacility was (incorrectly) a [Flags] enum, since both LOG_USER - and LOG_USRE had the same value, we'd get a EINVAL error trying to convert - a valid value, since LOG_USRE would exist, would be checked for, and the - check would succeed (since it had the same value as LOG_USER). - This change allows us to be slightly more permissive with versioning. - -2005-06-28 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: correct value of LOG_CRON (it shouldn't be identical to - LOG_UUCP). SyslogLevel shouldn't have [Flags]. Move LOG_USER to be - before LOG_USRE so that the generated map code doesn't return EINVAL when - LOG_USER is specified. - -2005-06-15 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: s/LOG_USRE/LOG_USER/. Fixes #75274. - Thanks to Martin Honermeyer. - -2005-06-09 Jonathan Pryor <jonpryor@vt.edu> - - * make-map.cs: Look for [Obsolete] members, and mark the UnixConvert - conversion functions with the same [Obsolete] message. This should permit - more graceful deprecation of enumerations in the future (rather than just - API breaks). - -2005-06-08 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Add execvp(2). (This should have been added with the other - exec(2) additions...). - -2005-06-08 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Update comment with correct exception type. - * UnixConvert.cs: Rename ToFilePermissions(string) to - FromOctalPermissionString; Add ToOctalPermissionString, - FromUnixPermissionString, ToUnixPermissionString. - * UnixMarshal.cs: Remove ErrorMarshal.HaveStrerror_r and - UnixMarshal.IsErrorDescriptionThreadSafe. strerror(3) is now thread-safe - (from managed code, at least). Update comment. - -2005-06-07 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: Don't use lstat(2), use stat(2). This fits with - expectations better -- if you create a UnixFileInfo() on a symlink, you - want to get the target's information, not the symlink's info. Add - GetFileStatus so UnixSymbolicLinkInfo can override this behavior. - * UnixSymbolicLinkInfo.cs: Implement GetFileStatus() (which calls lstat(2)). - -2005-06-07 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Document naming conventions. - -2005-06-05 Jonathan Pryor <jonpryor@vt.edu> - - * make-map.cs: Change automatic "ifdef HAVE_<header>" support prefix to - "ah:" from ">". I hadn't known about ">", and "ah:" is (somewhat) more - obvious. - * Syscall.cs: Change IncludeAttribute to put all headers/defines one/line. - It's easier to read this way. Add "ah:sys/xattr.h" to the headers. - -2005-06-03 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Add sanity checking to snprintf(3) to avoid buffer overflows. - -2005-06-02 Jonathan Pryor <jonpryor@vt.edu> - - * StdioFileStream.cs: Remove FilePosition property & replace with - SaveFilePosition/RestoreFilePosition methods. Since FilePosition has a - finalizer, it's not right to have implicitly created instances. - * Stdlib.cs: - - FilePosition: GC.SuppressFinalize() should be last in Dispose() - (following .NET guidelines). - - Syscall: Add locking around functions most likely to be thread unsafe. - This should provide some level of thread-safety to managed code. - * Syscall.cs: Add locking around functions most likely to be thread unsafe; - add mkstemp(3) export. - * UnixEnvironment.cs: GetUserShells should be atomic (from managed code). - * UnixGroup.cs: GetLocalGroups should be atomic (from managed code). - * UnixGroupInfo.cs: Add ToGroup() method to retrieve underlying Group info. - * UnixUser.cs: GetLocalUsers should be atomic (from managed code). - * UnixUserInfo.cs: Add ToPasswd () method to retrieve underlying Passwd info. - * UnixDriveInfo.cs: GetDrives should be atomic (from managed code). - -2005-05-31 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Add comment for atexit(3) so I don't try to add it. - * Syscall.cs: Add fcntl(2) overload which takes DirectoryNotifyFlags (so - that *something* accepts a DirectoryNotifyFlags); Fix IncludeAttribute - header files (">sys/poll.h" doesn't exist); - Add additional <sys/mman.h> functions mmap, munmap, msync, mlock, munlock, - mlockall, munlockall, mremap, mincore, remap_file_pages. - * UnixConvert.cs: Add conversion functions for MmapFlags, MmapProt, MsyncFlags, - MlockallFlags, MremapFlags. - -2005-05-31 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs, UnixConvert.cs: Rename LockFlags to LockfCommand. This is a more - consistent naming, and it's more correct (they weren't flags in the first place). - -2005-05-18 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Correct Mono_Posix_Stdlib_InvokeSignalHandler export. - -2005-05-18 Jonathan Pryor <jonpryor@vt.edu> - - * make-map.cs: Process the Mono.Posix namespace as well as Mono.Unix; add - mapping for Boolean => int for native type conversion. - -2005-05-18 Jonathan Pryor <jonpryor@vt.edu> - - * make-map.cs: Add a MphPrototypeFileGenerator, which looks for DllImport - methods across all types and generates a C header file declaration for - those methods. This allows us to ensure consistency between - Mono.Posix.dll and MonoPosixHelper.so. Rename WrapperFileGenerator to - ConvertFileGenerator (it generates UnixConvert). - * MapAttribute.cs, IncludeAttribute.cs: Make these internal -- there's no - reason for external users to even know these exist. - * StdioFileStream.cs: Move GC.SuppressFinalize call to be last Dispose() - call. This follows current design guidelines, and allows an exception to - be thrown from Dispose() without un-registering the finalizer. - * Syscall.cs: Change method declarations to match MonoPosixHelper, etc. - - posix_fallocate(P) takes a size_t - - mis-spelled settimeofday(2), sethostname(2) - - exec(2) can be public; it's safe to call - - change lseek(2) so int's are passed to MonoPosixHelper.so, not shorts - - We can't allow two incompatible prototypes to exist (since C allows - only one prototype, and we're cross-checking prototypes now). Change - utime(2) so only one prototype is needed. - * UnixMarshal.cs: ErrorMarshal.ErrorTranslator and ErrorMarshal.Translate - shouldn't be public; make them internal. - * UnixStream.cs: Remove `unsafe` code block when a "safe" alternative works; - Close() should also call GC.SuppressFinalize. - -2005-05-12 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: The Statvfs structure should contain a MountFlags enumeration, - not a ulong (we can "safely" do this since POSIX defines some values for - f_flag, so we should be kind and expose them). - * UnixConvert.cs: Add MountFlags conversion functions. - -2005-05-02 Joe Shaw <joeshaw@novell.com> - - * UnixListener.cs (Init): Remove the call to Cleanup() and the - method itself, which was not supposed to be here. We try to - connect to the socket if it exists instead of deleting it - undconditionally. - -2005-04-30 Ben Maurer <bmaurer@ximian.com> - - * Stdlib.cs: Comment out usage of `UnmanagedFunctionPointer'. It - isn't supported in the runtime -- it throws an assert -- so better - not to use it at all for now. - -2005-04-29 Jonathan Pryor <jonpryor@vt.edu> - - * UnixConvert.cs: Fix time_t -> DateTime conversions. time_t should be - assumed to be in the local time zone, so don't mess with UTC shifts. - This allows Mono.Unix to produce sane output (e.g. identical to ls(1) or - stat(1), instead of several hours different). - -2005-04-29 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Make FilePosition slightly more useful by providing a - ToString() override which dumps the fpos_t structure contents into a - hex string. Add Equals(), GetHashCode(), operator==, and operator!= - so FilePosition behaves like a value type. - -2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * UnixClient.cs: - * UnixListener.cs: TcpListener/TcpClient clones from Jow Shaw. - -2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * Mono.Posix.dll.sources: added UnixListener and UnixClient from Joe - Shaw. - -2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * UnixEndPoint.cs: fix from Mono.Posix. - -2005-04-20 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Make all fork(2) and exec(2) functions `private`. It - currently isn't safe to call these under *any* circumstances. See also - 68141, and this pertinent quote from Butenhof's - "Programming with POSIX Threads", p197, s6.1: - - "When a threaded process calls fork to create a child process, - Pthreads specifies that only the thread calling fork exists in the - child. ... Pthreads does not 'terminate' the other threads in a forked - process...They simply cease to exist. ... This is not a problem if - the child process is about to call exec to run a new program, but if - you use fork to clone a threaded program, beware that you may lose - access to memory, especially heap memory stored only as - thread-specific data values." - - Since P/Invoke currently requires using thread local storage, once you - fork(2) you won't be able to invoke exec(2) from managed code (since that - would require a P/Invoke transition to call exec(2), which would require - TLS, which doesn't exist in the new process). - - This can only be fixed by removing the TLS dependency on P/Invoke, which - isn't a priority (and may not be possible). - - The workaround is to create a C function which does your fork(2)/exec(2) - (and any other functions such as daemon(3)) on your behalf, and P/Invoke - to call this C function. - -2005-04-18 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Update comment specifying which functions belong in Syscall. - * UnixConvert.cs: Add XattrFlags conversion functions. - * UnixMarshal.cs: Remove warning about self-assignment. - -2005-04-16 Daniel Drake <dsd@gentoo.org> - - * Syscall.cs: Add bindings for extended attribute manipulation - -2005-04-05 Miguel de Icaza <miguel@novell.com> - - * Syscall.cs: Set entry point for sys_syslog to be syslog. - Include the syslog.h header in the generated map so that we - actually do the mapping. - -2005-03-28 Jonathan Pryor <jonpryor@vt.edu> - - * UnixConvert.cs: Add ToFopenMode() methods, which convert FileMode/FileAccess - into an fopen(3) mode string. ToOpenFlags() should throw - ArgumentOutOfRangeException for argument violations. - * StdioFileStream.cs: Add constructor overloads accepting filename and - FileMode/FileAccess overloads; Compatibility fixes with regression tests; - remove IDisposable implementation since System.IO.Stream already - implements it (which calls Close() for us). - -2005-03-17 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Move Errno-related functionality into Stdlib from Syscall, - since (1) errno is part of C89, and (2) StdioFileStream will need it, and - StdioFileStream shouldn't use Syscall. Add [UnmanagedFunctionPointer] - attribute to SignalHandler for .NET 2.0 (since signal handlers use C - calling convention, not Stdcall). - * Syscall.cs: Move Errno-related functionality into Stdlib. - * UnixMarshal.cs: Use ERANGE not EPERM when figuring out appropriate - translator, since ERANGE is part of C99 and EPERM isn't. Use Stdlib - instead of Syscall for Errno-related functionality. - -2005-02-02 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFile.cs: Cope with changes in UnixStream. - * UnixStream.cs: Change FileDescriptor property to Handle for consistency. - * StdioFileStream.cs: Change FileStream property to Handle for consistency. - -2005-02-02 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Remove public sys_ methods. Some were public by mistake, and - others so that users could manually marshal strings if desired. Manually - marshaling strings shouldn't be necessary, though, so remove them too. - -2005-02-02 Jonathan Pryor <jonpryor@vt.edu> - - * StdioFileStream.cs: Fix Length property to actually return the size of the - file, not the # of bytes from the current position to EOF. Oops. - -2005-01-31 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Import "msvcrt", not "libc". These members are part of the - ANSI C standard, and thus should be present on Windows via msvcrt.dll - (except snprintf, until they catch up to C99). Change the calling - convention of all functions to Cdecl, as the .NET default is Stdcall. - Changing the calling convention isn't needed in Syscall, as it can only be - run on Unix platforms anyway, where the default is Cdecl. - * Syscall.cs: Add LIBC member that points to the real "libc"; we can't use - the imported definition from Stdlib as "msvcrt" doesn't exist on Unix. - -2005-01-29 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: sys_* functions shouldn't be public. - -2005-01-13 Jonathan Pryor <jonpryor@vt.edu> - - * make-map.cs: libMonoPosixHelper exports Mono_Posix prefixes, not Mono_Unix - prefixes, so change the type and namespace to generate compatible code. - * Syscall.cs: Change OpenFlags values so they match the Linux values. - -2005-01-13 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Use Stdlib.LIBC instead of "libc". - * StdioFileStream.cs: Add FilePosition property (not that I expect anyone to - use it) and Rewind() method. - -2005-01-05 Jonathan Pryor <jonpryor@vt.edu> - - * StdioFileStream.cs: Added; System.IO.Stream wrapper for C FILE struct. - * Stdlib.cs: Correct visibility of ftell(). - -2005-01-05 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Re-order declarations to match the order used in the - C99 Standard Annex B; Complete <stdio.h> exports (except for those not - worth supporting); Add non-"unsafe" versions of fread(3), fwrite(3) and - add some rudimentary buffer-overflow checking; Add <stdlib.h> exports such - as getenv(3), exit(3), rand(3), EXIT_SUCCESS, RAND_MAX, etc. - -2005-01-03 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Update endfsent() and setfsent() declarations, as these must - now be implemented in MonoPosixHelper. - -2005-01-01 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs, Syscall.cs: Minimize duplicate declarations of - "MonoPosixHelper" for use in DllImport statements. - -2005-01-01 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Don't use C# v2 features; fixes build under CSC.EXE. - -2004-12-30 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: On miguel's suggestion, rename Sighandler_t to SignalHandler. - -2004-12-30 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Implement all C89 <stdio.h> functions except for the scanf(3) - family. These are too dangerous to expose. - -2004-12-30 Jonathan Pryor <jonpryor@vt.edu> - - * CdeclFunctions.cs: Remove warning about unused variable. - * Stdlib.cs: Make signal(2) sane and (hopefully) complete. - * Syscall.cs: Fix cuserid Obsolete message to reference correct class name. - * UnixProcess.cs: Remove warning about unused variable. - * UnixMarshal.cs: Remove warnings about unused variables. - -2004-12-29 Jonathan Pryor <jonpryor@vt.edu> - - * UnixPath.cs: Add ReadSymbolicLink(), which takes an intelligent approach - to reading symlinks (since their contents may be any size, we grow the - buffer dynamically to fit them all, instead of assuming a maximum size). - * UnixSymbolicLinkInfo.cs: Remove MaxContentsSize. - -2004-12-29 Jonathan Pryor <jonpryor@vt.edu> - - * UnixPath.cs: Add check for when symlink points to a full path name. - -2004-12-29 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Fix Object.Equals implementations. - * UnixPath.cs: New & improved, with Testing! GetRealPath() is changed so - that it doesn't walk the entire path looking for symlinks, it just reads - the leaf. GetCompletRealPath() walks the entire path resolving symlinks. - GetCanonicalPath() added, which "cleans up" a path (removing extraneous - "." and ".." entries). - * UnixSymbolicLinkInfo.cs: Rename ContentsLength -> MaxContentsSize. - -2004-12-28 Jonathan Pryor <jonpryor@vt.edu> - - * UnixFileSystemInfo.cs: Add a link(2) wrapper, CreateLink(). Strictly - speaking it's only "safe" to do this on files, but an exception will be - returned if the user tries to hard link directories (because of EPERM), - unless the user is root, in which case it should be allowed anyway... - -2004-12-28 Jonathan Pryor <jonpryor@vt.edu> - - * CdeclFunctions.cs: Correct the comments for AMD64 - * UnixDirectoryInfo.cs: override Name; add Parent & Root properties; - Correct Path usage (s/Path/FullPath/g). - * UnixDriveInfo.cs: Added. Based on .NET 2.0 System.IO.DriveInfo docs, - provides statvfs(2) and getfsfile(3) information about a mounted volume. - GetDrives() wraps getfsent(3), thus parsing /etc/fstab. - * UnixFile.cs: Use UnixConver.ToOpenFlags, deleting the local version. - * UnixFileInfo.cs: Use UnixConver.ToOpenFlags, deleting the local version; - override Name; add DirectoryName and Directory properties; - * UnixFileSystemInfo.cs: Make more .NET-like, using FullPath and - OriginalPath protected members, abstract Name property; Add - CreateSymbolicLink; Remove ReadLink (it's now - UnixSymbolicLinkInfo.Contents); Use lstat(2) for Create(string), so we - properly detect Symbolic Links. - * UnixPath.cs: Added; Path manipulation utility functions. - * UnixSymbolicLinkInfo.cs: - - Seal the class; - - override new abstract member Name; - - rename ReadLink to ContentsPath (and Contents) properties - (why "Contents"? Because readlink(2) says "readlink places the - contents of the symbolic link in the buffer...") - - Add CreateSymbolicLinkTo(), which creates a symlink to the specified - "normal" file - -2004-12-28 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Add syslog(3) to XPrintfFunctions; Add additional printf(3) - and fprintf(3) overload which properly escape the format string - (by using "%s" as the format for the user-supplied message). - * Syscall.cs: Add #regions for enummerations, structures, classes; Wrap - syslog(3) and related enumerations; fix operator!= on Dirent, Group; - wrap {f}statvfs(2); wrap <fstab.h> entries (getfsent(3), etc.). - * UnixConvert.cs: Add Syslog-releated enumeration translation functions; - Move ToOpenFlags here from UnixFile and UnixFileInfo. - * UnixMarshal.cs: Missing P/Invoke methods throw - EntryPointNotFoundException, not MissingMethodException; add - EscapeFormatString, which escapes printf-style format strings so that they - can be safely handed off to native code (avoiding stack overflow, etc); - make CreateExceptionForError internal. - -2004-12-15 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Add more <stdio.h> wrappers, such as fread(3) and fwrite(3). - These will be useful in implementing System.IO.Stream subclass for - reading/writing to a FILE*. Fix a typo in the realloc(3) DllImport. - * Syscall.cs: Fix the sys_kill and sys_crypt declarations. - * CdeclFunction.cs: Document calling convention problems on AMD64. - -2004-11-18 Jonathan Pryor <jonpryor@vt.edu> - - * CdeclFunction.cs: Added. - * Stdlib.cs: Re-add printf(3) and fprintf(3). They may not be portable (the - jury is still out on that; the AMD64 SysV ABI looks like it should be - portable to AMD64 to my eyes), but they will work on *some* platforms, so - we should permit it. The new implementation takes a page out of - cocoa-sharp: use System.Reflection.Emit to generate a P/Invoke method at - runtime to invoke printf(3) or fprintf(3). This way, we can export a - params signature to C# code, permitting natural usage such as: - Stdlib.printf ("Hello, %s world! (%i)\n", "silly", 42); - * Syscall.cs: Mark which headers are complete, which functions still need - wrapping (for headers which have anything done to them), add #region - blocks for each header; - export mkfifo(3), fexecve(), getppid(2), setlogin(); fix sleep(3) export. - * UnixEnvironment.cs: Export a friendly getppid(2) wrapper. - GetParentProcessId isn't in UnixProcess as there's no way (that I know of) - to get the Parent's Parent, so it can't be a class member, and exposing it - as a static member of UnixProcess doesn't make sense to me, as it isn't - general. Added GetUserShells(). - * UnixProcess.cs: Change constructor to internal, so it can be used from - UnixEnvironment. - -2004-11-16 Jonathan Pryor <jonpryor@vt.edu> - - * Stdlib.cs: Remove printf(3) and fprintf(3). These are vararg/CDECL - functions, and it's not portable to call them in this manner. - (It's not portable because some architectures, such as AMD64, use a - "cookie" as part of the vararg calling sequence to help reduce buffer - overflow exploits. Trying to call vararg functions as if they were an - overloaded function will not properly set this hardware cookie, resulting - in a hardware exception. Talk to lupus for more information.) - -2004-11-16 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs, UnixConvert.cs: Remove mount- and umount-related - functionality. Mount/umount is inherently non-portable (see the C code - for mount/umount), and trying to provide a consistent interface is - impossible. If you need mount/umount support, use the command-line - programs mount(1) and umount(1). - -2004-11-16 Jonathan Pryor <jonpryor@vt.edu> - - + Lots o' Renames, as the namespace changed. - * PosixConvert.cs: Moved to UnixConvert.cs: - * PosixDirectory.cs: Moved to UnixDirectory.cs: - * PosixEnvironment.cs: Moved to UnixEnvironment.cs: - * PosixDirectoryInfo.cs: Moved to UnixDirectoryInfo.cs: - * PosixFile.cs: Moved to UnixFile.cs: - * PosixFileInfo.cs: Moved to UnixFileInfo.cs: - * PosixFileSystemInfo.cs: Moved to UnixFileSystemInfo.cs: - * PosixGroup.cs: Moved to UnixGroup.cs: - * PosixGroupInfo.cs: Moved to UnixGroupInfo.cs: - * PosixIOException.cs: Moved to UnixIOException.cs: - * PosixMarshal.cs: Moved to UnixMarshal.cs: - * PosixProcess.cs: Moved to UnixProcess.cs: - * PosixStream.cs: Moved to UnixStream.cs: - * PosixSymbolicLinkInfo.cs: Moved to UnixSymbolicLinkInfo.cs: - * PosixUser.cs: Moved to UnixUser.cs: - * PosixUserInfo.cs: Moved to UnixUserInfo.cs: - * Catalog.cs, IncludeAttribute.cs, MapAttribute.cs, PeerCred.cs, Stdlib.cs, - Syscall.cs, UnixConvert.cs, UnixDirectory.cs, UnixDirectoryInfo.cs, - UnixEndPoint.cs, UnixEnvironment.cs, UnixFile.cs, UnixFileInfo.cs, - UnixFileSystemInfo.cs, UnixGroup.cs, UnixGroupInfo.cs, UnixIOException.cs, - UnixMarshal.cs, UnixProcess.cs, UnixStream.cs, UnixSymbolicLinkInfo.cs, - UnixUser.cs, UnixUserInfo.cs: Deal with renamed classes/members. - -2004-11-15 Jonathan Pryor <jonpryor@vt.edu> - - * PosixUserInfo.cs: Make the PosixUserInfo(Passwd) constructor public; - override Object.GetHashCode and Object.Equals. - * PosixGroupInfo.cs: Make the PosixGroupInfo(Group) constructor public; - override Object.GetHashCode and Object.Equals. - * PosixIOException.cs: Use PosixMarshal.GetErrorDescription instead of - calling Syscall.strerror_r directly - * PosixMarshal.cs: Add GetErrorDescription. Strerror_r() isn't portable, so - GetErrorDescription() first tries strerror_r(), and if it fails falls back - to strerror(3). - * Syscall.cs: - - Seal the Dirent class. It has no virtual members, so there's no point - in it being non-sealed. Override Object.GetHashCode and Object.Equals. - - Seal the Group class. It has no virtual members, so there's no point - in it being non-sealed. Override Object.GetHashCode and Object.Equals. - Provide operator== and operator!=. - - Seal the Passwd class. It has no virtual members, so there's no point - in it being non-sealed. Override Object.GetHashCode and Object.Equals. - Provide operator== and operator!=. - - Remove strerror_r() convenience overload. This is now - PosixMarshal.GetErrorDescription(). - -2004-11-12 Jonathan Pryor <jonpryor@vt.edu> - - * Syscall.cs: Export time-related functions (gettimeofday, settimeofday, - utime, utimes), mknod. - -2004-11-07 Atsushi Enomoto <atsushi@ximian.com> - - * PosixEnvironment.cs : csc build fix. see bug #69195. - * PosixStream.cs : csc build fix. see bug #69196. - -2004-11-05 Jonathan Pryor <jonpryor@vt.edu> - - * PosixConvert.cs: New file; conversion functions for Mono.Posix types. - * PosixDirectory.cs: New file; Friendly wrapper over directory information. - * PosixDirectoryInfo.cs: New file; Friendly wrapper over directory information. - * PosixEnvironment.cs: New file; Friendly wrapper over environment information. - * PosixFile.cs: New file; Friendly wrapper over file information. - * PosixFileInfo.cs: New file; Friendly wrapper over file information. - * PosixFileSystemInfo.cs: New file; Friendly wrapper over `stat'. - * PosixGroup.cs: New file; User Group-related functionality - * PosixGroupInfo.cs: New file; User Group-related functionality - * PosixIOException.cs: New file; Exception for POSIX-generated exceptions. - * PosixMarshal.cs: New file; utility functions for marshaling, etc. - * PosixProcess.cs: New file; Friendly wrapper over process information. - * PosixStream.cs: New file; Friendly wrapper over file descriptors. - * PosixSymbolicLinkInfo.cs: New file; Friendly wrapper over symbolic links. - * PosixUser.cs: New file; Friendly wrapper over user information. - * PosixUserInfo.cs: New file; Friendly wrapper over user information. - * Stdlib.cs: New file; C standard library exports. - * Syscall.cs: Effective re-write. - - Organize exports by header file - - add additional enumerations (Error for the E* error values, etc.) - - always explicitly specify enumeration underlying type - - Use a new wrapping infrastructure so that ABI-stable types are exported - - For example, size_t is exported as ulong, not IntPtr. - - Wrap more functions, and wrap them better (such as getpwnam). - - This release is NOT backward compatible. Many names are the same, and - hopefully they're still compatible, but no effort was made to maintain - compatibility. For example, FileMode was removed and replaced with - FilePermissions, to avoid a name conflict with System.IO.FileMode. - - Change umount() to use MonoPosixHelper: portability fix for Mac OS X. - * make-map.cs: Another effective re-write, to clean up the code, produce - better output, and produce more output. For example, most of - PosixConvert can be auto-generated, so it is (modulo version delays and - bootstrap issues). `map.c' is now conditional on all macros, and has - error checking for invalid/unsupported values. - -2004-09-18 Jackson Harper <jackson@ximian.com> - - * Syscall.cs: Add support for poll (). - -2004-09-18 Jackson Harper <jackson@ximian.com> - - * make-map.cs: Use field value not name for #defines. - -2004-09-14 Loren Bandiera <lorenb@mmgsecurity.com> - - * Syscall.cs: Added method for getpwnam which uses Passwd - struct. - * macros.c: Helper function for getpwnam - (In committing, Josh Tauberer also added getpwuid.) - -2004-07-09 Dick Porter <dick@ximian.com> - - * PeerCred.cs: Get the unix socket peer credentials. - -2004-05-26 Miguel de Icaza <miguel@ximian.com> - - * Syscall.cs: Do not let the runtime handle strings, as we do not - own those strings, we must transform the char * into a string - ourselves. - -2004-05-03 Miguel de Icaza <miguel@ximian.com> - - * Syscall.cs: Add symlink - -2004-04-19 Miguel de Icaza <miguel@ximian.com> - - * Syscall.cs: Use hex values for FileMode, since C# does not have - an octal integer mode. - -2004-03-30 Joshua Tauberer <tauberer@for.net> - - * Added readlink, strerror, opendir, readdir, closedir - * Added Mono.Posix.Stat.UnixToDateTime(long unixtime) --> DateTime - -2004-03-11 Joshua Tauberer <tauberer@for.net> - - * Syscall.cs: Removed argument to getgid that shouldn't be there. - Added getusername, getgroupname which wrap getpwuid, getgrgid - without dealing with pointers to structures. - Removed duplicate FileMode enum nested in Syscall class. - Added stat and lstat, which use StatMode enumeration - (like FileMode but nicer and complete) and Stat struct. - * macros.c: Helper functions for getpwuid, getgrgid, stat, lstat. - -2004-01-07 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * Syscall.cs: moved the assembly attribute to a proper place - and added 'signal.h' - * make-map.cs: use reflection to invoke the properties, as it - fails under MS runtime. - - -2004-01-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * Syscall.cs: moved assembly attribute and added unsafe block to fix - the build on windows. - -2003-11-11 Wojciech Polak <polak@gnu.org - - * Syscall.cs: Applied patch from Wojciech Polak <polak@gnu.org> to - support IsAtty. - -2003-05-16 Dick Porter <dick@ximian.com> - - * UnixEndPoint.cs: New property to get and set the filename, like - the IPEndPoint has for the IP address. Also implement ToString(). - -Tue Apr 29 16:53:56 CEST 2003 Paolo Molaro <lupus@ximian.com> - - * Syscall.cs: remove the unsafe mess. - -2003-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com> - - * Check in. - * UnixEndPoint.cs: first file. - |