2008-04-03 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / ChangeLog
index 395c58c58bffcfeddb2367bfcae05416fb056232..fdbb9c27e4a82f0ed4715005d7d902a380d52e25 100644 (file)
@@ -1,3 +1,423 @@
+2008-04-03  Dick Porter  <dick@ximian.com>
+
+       * timefuncs.c (GetTickCount): Use mono_msec_ticks(), see bug
+       347476.
+
+2008-04-01  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (get_string_block): Refine the fix for bug 354856
+       (r93661) so that it also fixes the new part of bug 374600.
+
+2008-03-28  Dick Porter  <dick@ximian.com>
+
+       * processes.c (GetExitCodeProcess): Check if a process has exited
+       and recorded it's exit code, before seeing if the process is
+       signalled.  Fixes bug 325463.
+
+2008-03-27  Dick Porter  <dick@ximian.com>
+
+       * processes.c (match_procname_to_modulename): Check the whole
+       process name first, in case it is recorded as an absolute path.
+       Fixes bug 360348.
+
+2008-03-27  Dick Porter  <dick@ximian.com>
+
+       * processes.c (ShellExecuteEx): Grotty kludge to work around
+       unpleasant feature in g_shell_parse_argv() where it treats '#'
+       embedded in a filename as a comment marker, and throws away the
+       rest of the line.  When we're directly opening URLs quote the
+       filename, to avoid this.  Fixes bug 371567.
+
+2008-03-25  Dick Porter  <dick@ximian.com>
+
+       * wapi-private.h (_WAPI_HANDLE_VERSION): Increment file layout
+       version
+
+       * threads.c: Make thread handles private to the process that owns
+       them.
+
+2008-03-22  Kornél Pál  <kornelpal@gmail.com>
+
+       * io-layer.h: Windows: Rename GetProcessId to __GetProcessId for targets not
+       supporting it. This fixes MSVC build with new Windows SDKs that declare
+       GetProcessId unconditionally.
+
+2008-03-20  Kornél Pál  <kornelpal@gmail.com>
+
+       * io-layer.h: Removed Windows version macros.
+
+Thu Mar 13 16:24:53 CET 2008 Paolo Molaro <lupus@ximian.com>
+
+       * processes.c: properly check for executable files (fixes bug #368829).
+
+2008-02-05  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (VerLanguageName): Implement VerLanguageName.
+
+2008-01-31  Bill Holmes  <billholmes54@gmail.com>
+       * processes.c (match_procname_to_modulename) : Added to check if the last 
+         part of module name is equal to the process name.
+
+       * processes.c (EnumProcessModules) : Changed the first entry in the returned 
+         modules array (the process module) to be populated from the entry found
+         in /proc/<PID>/maps.
+
+       * processes.c (get_module_name & GetModuleInformation) : In the case where 
+         the module passed in is NULL, search the /proc/<PID>/maps for a name that
+         matches the process name to populate the return information.
+
+       Fixes #357062
+
+2008-01-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * security.c (RevertToSelf): Make this return TRUE if impersonating is not
+       supported.
+
+       * sockets.c (_wapi_connect): Add a workaround to a solaris x86 problem where
+       getsockopt (SO_ERROR) doesn't return an error code after connect () fails. Fixes
+       #356552.
+
+2008-01-23  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (get_string_block): When stepping over the
+       StringTable block, do not read an extra block at the end.  Fixes
+       the new part of bug 354856.
+
+2008-01-19  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (get_stringtable_block): Cope when the StringTable
+       block is first in the resources data, and we just need to step
+       over it.  Fixes bug 354856.
+
+2008-01-16  Dick Porter  <dick@ximian.com>
+
+       * threads.c (_wapi_thread_set_termination_details): Move the
+       thread abandonment to outside the shared handle lock.  Fixes bug
+       349680.
+
+2008-01-16  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (VerQueryValue): Include trailing null in returned
+       string length, for MS compatibility.
+
+2008-01-09  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (get_ptr_from_rva, scan_resource_dir): Make it
+       work on big-endian systems.
+       (scan_resource_dir): Copy the resource directory entry and
+       byteswap if necessary so it works big-endian.  This fixes bug
+       345972 for real this time.
+       (VerQueryValue): String values set the length to the number of
+       unicode chars, but the data length reported was already correct so
+       don't halve it again.  Fixes the previous fix for bug 345972.
+       (GetFileVersionInfo): On big-endian systems, scan the resource
+       data and turn all unicode strings into UTF-16BE.  FileVersionInfo
+       now works big-endian.
+
+2008-01-04  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (VerQueryValue): Returned buffer length counts
+       chars not bytes for string data.  Fixes bug 345972 again.
+       (get_enclosing_section_header): Make sure values read are treated
+       as LE.  Fixes crash on ppc reported in bug 345972.
+
+2007-12-17  Mark Probst  <mark.probst@gmail.com>
+
+       * threads.c: Guard against a race condition involving
+       thread_hash_key that can occur during shutdown.
+
+2007-12-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * processes.c: Include sys/mkdev.h if exists. Fixes solaris x86 build.
+
+2007-12-06  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c: Resource language values must be compared in a
+       'case'-insensitive manner.  Fixes bug 345972.
+
+2007-12-05  Dick Porter  <dick@ximian.com>
+
+       * io.c (CreateFile): Create files with mode 0666 (&~umask) by
+       default.  Fixes bugs 325299 and 337040.
+
+2007-11-22  Dick Porter  <dick@ximian.com>
+
+       * critical-sections.h (EnterCriticalSection): Reinstate the
+       asserts in the devel branch, so any problems aren't obscured.
+
+2007-11-22  Dick Porter  <dick@ximian.com>
+
+       * versioninfo.c (find_pe_file_resources): Make it work on 64bit
+       systems.  Fixes bug 343353.
+
+2007-11-21  Dick Porter  <dick@ximian.com>
+
+       * processes.c (load_modules): Rewrite based on the libgc
+       /proc/<pid>/maps parsing to avoid using glib functions only
+       available since 2004.
+       (load_modules): Check for duplicates before adding a module to the
+       list.
+
+2007-11-15  Dick Porter  <dick@ximian.com>
+
+       * processes.c (load_modules): Don't bother if we don't have
+       g_strsplit_set() and g_strv_length().  Allows building against old
+       glib versions.
+       (EnumProcessModules): Don't miss the first module returned by
+       load_modules().
+
+2007-11-15  Dick Porter  <dick@ximian.com>
+
+       * processes.c: Implement process module support by reading from
+       /proc if it's available.
+
+       * versioninfo.h: 
+       * versioninfo.c: New functions to implement PE file version info
+       support.
+
+2007-11-08  Dick Porter  <dick@ximian.com>
+
+       * critical-sections.h (EnterCriticalSection): Disable the critical
+       section asserts for the release branch
+
+2007-11-05  Kornél Pál  <kornelpal@gmail.com>
+
+       * io-layer.h: Added includes for run-time GetProcessId API detection for
+       Windows.
+
+2007-10-26  Dick Porter  <dick@ximian.com>
+
+       * shared.c (_wapi_shm_file_open): Set the umask when opening
+       shared files, so restrictive defaults don't prevent subsequent
+       processes re-opening them.
+
+2007-10-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * atomic.h (InterlockedCompareExchange): Fix the ia64 version so it works for
+       negative values too. Hopefully fixes #332700.
+
+2007-09-26  Dick Porter  <dick@ximian.com>
+
+       * io-portability.c (_wapi_io_scandir): Only update the error
+       status of glob() when performing a secondary glob() if the first
+       returned an error.  Fixes bug 325107.
+
+2007-09-12  Marek Habersack  <mhabersack@novell.com>
+
+       * io-portability.c: options_init moved to
+       utils/mono-io-portability.c
+       Do not initialize portability helpers here, it's done in
+       mono_runtime_init.
+       find_file and find_in_dir moved to utils/mono-io-portability.c
+
+2007-09-09  Robert Jordan  <robertj@gmx.net>
+
+       * sockets.c (_wapi_setsockopt): Add support for FreeBSD multicast
+       sockets. Fixes #81891.
+       Code is contributed under MIT/X11 license.
+
+2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * processes.h, processes.c : ok, they are simple string.
+
+2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * processes.h : sigh, I really hate fixing them on windows :(
+
+2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * processes.c : fix build again.
+
+2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * processes.h : removed extra parameters from CreateProcessWithLogonW.
+
+2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * processes.c, processes.h: added CreateProcessWithLogonW(). For now
+         it just calls CreateProcess().
+       * io-layer.h : CreateProcessWithLogonW() requires WINVER 0x0500
+         on Windows.
+
+2007-08-23  Robert Jordan  <robertj@gmx.net>
+
+       * processes.[c|h]: Implement Get|SetPriorityClass ().
+       Code is contributed under MIT/X11 license.
+
+Tue Aug 21 20:08:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * io.c: made convert_arg_to_utf8() and write_file() static.
+       Worked around gcc's incorrect warning.
+
+2007-08-20  William Holmes  <billholmes54@gmail.com>
+
+       *io.c: Added implementation for ReplaceFile.
+       *io.h: Added deceleration for ReplaceFile method.
+
+       Code is contributed under MIT/X11 license.
+
+2007-08-20  Wade Berrier  <wberrier@novell.com>
+
+       * processes.c: include sys/resource.h for rusage to fix 
+       mac 10.3 build
+
+Mon Aug 20 12:36:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * processes.c: implemented query for user/system times using
+       getrusage ().
+
+2007-08-10  Dick Porter  <dick@ximian.com>
+
+       * sockets.c (_wapi_getsockopt, _wapi_setsockopt): Check the option
+       level as well as the name when mangling some of the values.  Fixes
+       bug 82000.
+
+2007-08-02  Dick Porter  <dick@ximian.com>
+
+       * sockets.c: Changes in error handling, and move the SO_REUSEADDR
+       setting from metadata/socket-io.c.
+
+2007-08-01  Dick Porter  <dick@ximian.com>
+
+       * io-portability.c (_wapi_io_scandir): Special-case patterns
+       ending in '.*' so that files with no extension are also matched.
+       Fixes bug 82212.
+
+       * wapi_glob.h: 
+       * wapi_glob.c: Reinstate WAPI_GLOB_APPEND, and add
+       WAPI_GLOB_UNIQUE to avoid matching the same entry twice when
+       appending.
+
+2007-07-26  Dick Porter  <dick@ximian.com>
+
+       * handles-private.h: 
+       * thread-private.h: 
+       * handles.h: 
+       * critical-sections.c: 
+       * handles.c: 
+       * critical-section-private.h:
+       * error.h: 
+       * threads.c: 
+       * error.c: Clean up TLS and pthreads structures.  Finishes off bug
+       78739.
+
+       * collection.c (collection_thread): Exit the collection thread if
+       the io-layer has been cleaned up.
+
+       * mono-mutex.h (mono_mutexattr_destroy): Add this define too
+
+Mon Jul 23 10:40:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * timefuncs.c: make TickCount measure from boot time if it's
+       available.
+
+2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
+
+       * io.c (MoveFile): Fix a leak. 
+
+Fri Jul 13 12:46:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * handles-private.h, handles.c, thread-private.h, threads.c,
+       uglify.h, wait.c: temporarily revert the alertable wait changes
+       (r79386) until the deadlock issues are fixed.
+
+2007-06-22  Dick Porter  <dick@ximian.com>
+
+       * shared.c: The non-shared mutexes weren't being initialised properly
+       on macos.  Fixes bug 81929.
+
+2007-06-13  Randolph Chung  <tausq@debian.org>
+
+       * atomic.h: Enable for all hppa targets.
+       * Makefile.am: rename hppa_atomic.s to hppa_atomic.S so the preprocessor
+       can handle the file.
+       * hppa_atomic.s: Renamed to ...
+       * hppa_atomic.S: ... and updated to work on both HPUX and Linux.
+
+2007-06-13  Dick Porter  <dick@ximian.com>
+
+       * handles.c (timedwait_signal_wait_cond): Alertable waits on
+       private handles are now interrupted by signalling the same
+       condition that would end the wait if the handle became signalled,
+       rather than polling.  (Shared handles still have to poll.)
+
+       * threads.c (_wapi_thread_queue_apc): Interrupt the thread if it's
+       waiting on a handle
+
+       * handles-private.h (_wapi_handle_current_thread_set_waiting_on):
+       Helper functions to inform the APC queuing functions when threads
+       are waiting for handles, and to interrupt the wait.
+
+       * wait.c (WaitForMultipleObjectsEx): Need to tell the handle
+       waiting functions if any of the handles in question are shared
+
+2007-06-06  Miguel de Icaza  <miguel@novell.com>
+
+       * processes.c (is_managed_binary): Fix for OSX.
+
+2007-06-06  Wade Berrier  <wberrier@novell.com>
+
+       * atomic.h (InterlockedExchangePointer): cast to pointer to to silence
+       compiler warnings (autobuild fails the build on this type of warning)
+
+2007-05-21  Dick Porter  <dick@ximian.com>
+
+       * io-portability.c (_wapi_g_dir_open): Don't propagate any errors
+       from the second call to g_dir_open, preserve the original error if
+       the second call still fails but clear the error if it succeeds.
+
+2007-05-10  Dick Porter  <dick@ximian.com>
+
+       * sockets.c (_wapi_recvfrom): Refine the fix to bug 75705 so EINTR
+       isn't returned if the remote end shuts down cleanly.  Fixes zmd
+       and the second example in bug 75705.
+
+2007-04-26  Dick Porter  <dick@ximian.com>
+
+       * shared.c (_wapi_shm_semaphores_init): Need to check
+       MONO_DISABLE_SHM in this entry point, as it's called before
+       _wapi_shm_attach().  Fixes bug 81436.
+
+2007-04-24  Dick Porter  <dick@ximian.com>
+
+       * sockets.c (_wapi_recvfrom, socket_close): Force recvfrom() to
+       error if the socket is closed while the receive is blocking.
+       Fixes bug 75705.
+
+2007-04-13  Dick Porter  <dick@ximian.com>
+
+       * shared.h:
+       * shared.c: Complete the reimplementation of disabling of shared
+       memory, by not allocating sysv semaphores when shm disabling has
+       been requested (either at compile time or run time.)
+
+       * processes.c (CreateProcess): Don't synchronize locking across
+       processes when forking, when shared memory has been disabled.
+
+2007-04-06  Andreas Faerber  <andreas.faerber@web.de>
+
+       * wapi_glob.h:
+       * wapi_glob.c: remove reference to sys/cdefs.h, use glib instead.
+       Fixes: 81326
+
+2007-04-05  Dick Porter  <dick@ximian.com>
+
+       * io.c:
+       * io-portability.c (_wapi_io_scandir): Moved from io.c, and
+       changed to use a cut-down version of glob(3) that has been
+       extended to match with case-insensitivity if needed.
+
+       * wapi_glob.h:
+       * wapi_glob.c: Cut down implementation of glob(3), based on
+       OpenBSD.
+
+2007-03-22  Dick Porter  <dick@ximian.com>
+
+       * sockets.c (_wapi_connect): Do additional checks when connect(2)
+       fails, because some systems don't let it be restarted.  Patch
+       based on one submitted by Robert S Wojciechowski <robertw@ssgx.com>,
+       fixes bug 81010.
+
 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
 
        * io-layer.h:  Remove UNICODE and _UNICODE defines as