Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Mono.Posix/Mono.Unix/ChangeLog')
-rw-r--r--mcs/class/Mono.Posix/Mono.Unix/ChangeLog1221
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.
-