Commit graph

8251 commits

Author SHA1 Message Date
Frederik Seiffert
b41953d274 More robust check for Windows ICU
Also ensure that we don't include both unicode/*.h and icu.h.
2021-08-08 17:27:40 +02:00
Frederik Seiffert
dc32970502 Add support for using ICU DLL from Windows 10
Requires Windows 10 version 1903 (May 2019 Update):
https://docs.microsoft.com/en-us/windows/win32/intl/international-components-for-unicode--icu-

Also adds missing configure check for unicode/utext.h.
2021-08-03 16:52:38 +02:00
Frederik Seiffert
cf2dae1e21 Improve NSThread thread priority error handling
Now using sched_get_priority_min/max instead of PTHREAD_MIN/MAX_PRIORITY defines, and prevent error log when min/max priority are equal (e.g. 0), which happens e.g. on Android when thread priorities are not settable.
2021-07-29 14:22:27 +02:00
Frederik Seiffert
abfe4e2a04 Use native threading and locking APIs on Windows
Removes dependency on pthread library and uses fast Slim Reader/Writer (SRW) locks for NSLock/NSRecursiveLock/NSCondition/NSConditionLock as well as all internal locks. Adds GS_MUTEX_*() macros in GSPThread.h, that are being used for all internal locking instead of pthread APIs.

Also adds support for thread priorities on Windows, fixes method signature of +[NSThread setThreadPriority:] to match Apple platforms, and adds error handling in same method.
2021-07-29 14:22:27 +02:00
Richard Frith-Macdonald
3b8bbb00ba Try to make timezone parsing more robust: always use standard header for posix time zone files. 2021-07-29 10:35:19 +01:00
Richard Frith-Macdonald
0b3f2a9fb0 Fixup for incorrect method implementation used in sloppy parser. 2021-07-26 14:57:41 +01:00
Richard Frith-Macdonald
395fafde6f Set file version consistently to avoid misunderstanding 2021-07-25 07:50:31 +01:00
Richard Frith-Macdonald
7245156336 Add sup[port for 64bit time transitions 2021-07-22 10:33:49 +01:00
Frederik Seiffert
a377a86094 Fix possible memory corruption in string handling 2021-07-19 12:23:15 +02:00
Frederik Seiffert
813ae35d39 Export GSPathHandling() in GNUstep headers.
Fixes linker errors for some tests under Windows MSVC.
2021-07-14 10:09:45 +02:00
Frederik Seiffert
47ed291b80 Fix possible heap corruption when converting to NSNonLossyASCIIStringEncoding. 2021-07-03 08:34:14 +02:00
Richard Frith-Macdonald
a29248bd4d Differentiate between client/server for DO over TLS 2021-06-24 08:50:28 +01:00
Richard Frith-Macdonald
640198a395 add missing brace 2021-06-21 09:15:11 +01:00
Richard Frith-Macdonald
e34584e323 Encryption emprovements 2021-06-19 14:40:47 +01:00
Richard Frith-Macdonald
b252f4067a remove a couple of redundent lines 2021-06-18 10:02:48 +01:00
rfm
a1b0c1c8db
Merge pull request #185 from triplef/fix-unicode-lookup
Fix lookup of string encodings with high numeric values in encoding table
2021-06-18 10:01:36 +01:00
Frederik Seiffert
8137b5a2a0 Fix lookup of string encodings with high numeric values in encoding table 2021-06-17 17:53:22 +02:00
Richard Frith-Macdonald
dd3b6c3d7f fix typo in name 2021-06-17 16:22:31 +01:00
Richard Frith-Macdonald
7ea49c252b encryption fixes and debug improvements 2021-06-03 14:59:09 +01:00
Richard Frith-Macdonald
e9d3ba8179 Improve debug logging ... use the I/O handle as the tag for debug logs so that they can more easily be matched to the object for which the I/O is taking place. 2021-06-03 14:54:16 +01:00
Richard Frith-Macdonald
2fc16eae5e Tidyups for when TLS is not used 2021-06-02 14:12:28 +01:00
Richard Frith-Macdonald
f72f46efa4 Minor debug improvement 2021-06-02 13:32:44 +01:00
Richard Frith-Macdonald
a2298990fc Improve debug logging and fix tls session startup when we have to try connecting to multiple possible destinations 2021-06-01 16:32:25 +01:00
Richard Frith-Macdonald
dd52dfb36d Do more logging based on 'RMC' so we can track send/receive of messages 2021-06-01 16:31:21 +01:00
Richard Frith-Macdonald
29f76a5cba minor thread safety fix 2021-05-31 14:27:42 +01:00
Richard Frith-Macdonald
e42d9fdc6b New code for secure (encrypted) inter-host distrinuted objects. 2021-05-31 13:19:42 +01:00
Richard Frith-Macdonald
1bcb73f0f8 If space becomes available for a stream whose status is writing, we
should change the status to be open (the write completed).
2021-05-23 10:58:09 +01:00
Richard Frith-Macdonald
391c00b058 Added some debug logging 2021-05-19 11:15:29 +01:00
Richard Frith-Macdonald
12c88716d0 indentation tweaks 2021-05-19 11:06:10 +01:00
rfm
1aa11956b5
Merge pull request #183 from gnustep/windows-keepalive-fix
The portable way to detect if a socket is reusable or has been closed
2021-05-19 10:57:54 +01:00
Richard Frith-Macdonald
8b8fe60070 break out of loop if write fails 2021-05-15 17:53:44 +01:00
Richard Frith-Macdonald
ed9bb899a7 Support writing large chunks of data over tls on windows 2021-05-15 16:10:23 +01:00
Richard Frith-Macdonald
782e7aed31 Fix for -setHTTPMaximumConnectionLifetime: 2021-05-05 12:04:28 +01:00
Richard Frith-Macdonald
713c7c0f7e Fix one character truncation of certificate name/issuer in debug output 2021-04-28 15:27:23 +01:00
Richard Frith-Macdonald
31f2528b93 Ignore GS_EXPORT_CLASS when generating documentation for base/additions 2021-04-23 06:56:00 +01:00
Richard Frith-Macdonald
bd5f2909e6 Simplify conversion of a string to data (use base class code) and fix to handle the insertion of BOM consistently (as on OSX) for encodings where the byte order matters but is not specified by the encoding. 2021-04-14 09:57:11 +01:00
Riccardo Mottola
19d76d2478 The portable way to detect if a socket is reusable or has been closed
was failed, since its test read would leave the file handle with a read
in progress, invalidating further background reads. More recent versions
of Windows seem to handle the unix way.
2021-04-13 23:59:45 +02:00
Frederik Seiffert
843800d413 Add support for libobjc2 runtime in NSObject on Windows 2021-03-29 11:22:00 +02:00
Frederik Seiffert
0582eddd96 Export string constants and annotate exported function implementations
Moves scattered string constants to externs.m, and removes obsolete code replacing constant strings.
2021-03-27 17:36:15 +01:00
Frederik Seiffert
fb84b3b1e8 Revert "Export objc_enumerationMutation."
This is now correctly exported in the libobjc2 runtime.

This reverts commit c52f1e3223.
2021-03-26 21:03:48 +01:00
Frederik Seiffert
b05481a8c8 Don't resurrect GSFileHandle singletons.
It seems to be no longer possible to call -retain from -dealloc with the latest libobjc2, which was causing the tests to fail.

We are also throwing an exception in this case, which would need to be specifically caught in order for the resurrection to be of value to users, so this simply removes the -retain call and resets the singleton variables to nil in order to not have invalid pointers and for the singletons to be re-created on subsequent access.
2021-03-26 13:17:36 +01:00
Frederik Seiffert
c52f1e3223 Export objc_enumerationMutation.
When using clang a call to this is inserted by the compiler, so we need to always export it.
2021-03-26 13:17:36 +01:00
Frederik Seiffert
7800e27879 Add missing GS_EXPORT annotations to various string constants. 2021-03-26 13:17:36 +01:00
Riccardo Mottola
c9020acd4b suppress warning, compiler is confused by exception handler 2021-03-18 23:06:54 +01:00
Richard Frith-Macdonald
b489f9b82b Changes to detect that bfd_get_section_vma has changed to bfd_section_vma and make corresponding changes so we can support use of binutils 2.34 and later. 2021-03-18 21:35:34 +00:00
Richard Frith-Macdonald
4e61056743 The code in GSPrivateReturnAddresses() and the -symbols method must have ifdefs in matching order so that setup of the information from the stack matches the code used to generate the corresponding symbols. 2021-03-18 20:17:35 +00:00
Frederik Seiffert
5fb5fb46c4 Win MSVC: add NSFileManager support
Also unifies _CHAR in NSFileManager with GSNativeChar, as they are internally required to be the same.
2021-03-17 17:42:15 +01:00
Frederik Seiffert
54ae296b69 Fix libdispatch integration compilation error on Windows. 2021-03-17 17:42:15 +01:00
Richard Frith-Macdonald
d7e4086f6b Rewrite handling of tls handshake to operate asynchronously, attempting continuation of the handshake when the socket becomes readable. The point of this is to prevent recursive entry into the runloop (and possible stack overflow) if the remote end fails to send anything for a while. 2021-03-05 11:54:32 +00:00
Frederik Seiffert
172e75b865 Add unscheduled NSTimer block initializer. 2021-03-03 10:03:14 +01:00