Commit graph

10836 commits

Author SHA1 Message Date
Daniel Ferreira
814c19ecce NSURLProtectionSpace: improve authentication method handling
Improve handling of NSURL authentication methods. Make "HTMLForm"
authentication a no-op as it should be instead of making it fall back to
Basic authentication.

Add stubs for NTLM and Negotiate IIS methods. They should be easily
implementable given the current framework for authentication methods.

Add stubs for ClientCertificate and ServerTrust authentication methods.
A blocker for supporting them is the lack of a Security.framework
implementation (since they rely on SecTrustRef). They would also require
additions to the current SSL handling code for GNUstep https requests.
Also stub the -distinguishedNames property of NSURLProtectionSpace,
which also deals with certificate-related authentication methods.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
aa70ff5300 NSURLRequest: add new values for NSURLCachePolicy
Add new values for the NSURLCachePolicy enum. Although
NSURLRequestReloadIgnoringLocalAndRemoteCacheData and
NSURLRequestReloadRevalidatingCacheData have been left unimplemented,
the same applies for the reference platform, so not supporting it does
not break API compatibility.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
8df9e6d73d NSZone: implement NSMakeCollectable()
Implement NSMakeCollectable(), an interface which makes CoreFoundation
objects eligible for garbage collection.

Since garbage collection is a totally deprecated API, its implementation
is a no-op, which may cause objects that rely on it to leak. However, it
doesn't look like supporting actual garbage collection at this point
will bring a gain to the project -- and having this function available
will avoid breaking builds that rely on it.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
d49db3ab29 NSProcessInfo: add stubs for new APIs
Add stubs for sudden termination APIs and for application activity
management methods.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
cbfa4d8cc9 NSProcessInfo: implement getting system uptime
Introduce the systemUptime property to NSProcessInfo, which can compute
platform-independently what is the uptime of the system.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
277ae581a6 NSHTTPCookie: fix bug in Set-Cookie parser
Fix a bug in NSHTTPCookie's Set-Cookie parser where it would fail to
parse more than one key-only cookie (such as "Secure; HTTPOnly;") in a
header.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
644b676949 NSHTTPCookie: add support for HTTPOnly cookies
Add support for parsing HTTPOnly cookies (those that cannot be accessed
by clients). Implement -[NSHTTPCookie isHTTPOnly].
2017-06-29 21:18:16 +01:00
Daniel Ferreira
fae4ff3371 NSHTTPCookie: make -isSessionOnly and -isSecure properties
Make -[NSHTTPCookie isSessionOnly] and -[NSHTTPCookie isSecure] methods
become properties if possible, so that they can be also queried as
`cookie.sessionOnly` and `cookie.secure`. This increases compatibility
with applications that rely on this notation.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
3111003ca1 NSFileManager: create NSFileManagerDelegate
Create NSFileManagerDelegate, a more modern manner to verify whether to
proceed a file operation after an error or whether an operation should
actually be performed by NSFileManager.

No functionality using the delegate is yet implemented.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
2ec3c7bc27 NSURL: create stub for -getResourceValue:forKey:error:
Create an unimplemented stub for NSURL's -getResourceValue:... method,
which can gather a numerous set of information about a URL.

Define the constants which are passed into -getResourceValue:... for
requiring information so that a build that relies on this method does
not break.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
41a00e1ad3 NSURL: create .fileURL property
Create the NSURL.fileURL property to increase compatibility with
applications that rely on this.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
064df5ba69 NSURL: add stubs for alias functions
The OSX filesystem implements "aliases", a species of symlink which
tracks its source if it was moved. Create stubs for the NSURL functions
which handle these aliases.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
e813dde02c NSURL: implement +fileURLWithPath:isDirectory:
Implement +[NSURL fileURLWithPath:isDirectory:], a class method added in
OSX 10.5, which was missing from the implementation.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
314f437f43 NSCoder: implement NSSecureCoding stub
Implement stubs for NSSecureCoding which do not break projects that rely
on it.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
be874e5d8f NSDate: declare system clock change notification
Declare a system clock change notification. Base still does not emit
this notification, but this allows applications that wait for it not to
have their build broken.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
58db96f385 NSObjCRuntime: create NS_ROOT_CLASS macro
Create the NS_ROOT_CLASS macro, a wrapper around the objc_root_class
compiler attribute.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
ec9e4055dd NSObjCRuntime: create stubs for Apple availability macros
Make NS_AVAILABLE and NS_CLASS_AVAILABLE macros no-ops so that their
absence does not break projects that rely on it.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
dc88164c94 NSCalendar: add new NSCalendarUnit definitions
Update NSCalendarUnit definitions with a newer specification from Cocoa.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
959415a236 NSCalendar: add NSCalendarOptions enum
Add the NSCalendarOptions enum to NSCalendar for compatibility purposes.
While NSCalendar does not yet know how to handle them, it will not
generate build errors in projects that attempt to use them.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
5ab00e2c49 NSCalendar: add new calendar identifier constants
Add new calendar identifier constants to NSCalendar, to add
compatibility for newer OSX applications. Some identifiers do not hold
parity with the older equivalents and have been left unimplemented, with
the gregorian calendar as a fallback.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
a9df1b104a NSGeometry: create NSEdgeInsets struct
Create the NSEdgeInsets struct in NSGeometry, introduced in OSX 10.7.
Add helper functions for creating these insets.

This struct is not used in Base. Rather, it is used as part of newer
APIs in GUI.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
47ecf6a90b FoundationErrors: add "no file exists" error
Create a no-file-exists error to the FoundationErrors enums. No function
is yet implemented to throw this error, but it has been added for
compatibility with applications that handle it.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
1e8c1d3855 headers: define GS_HAS_DECLARED_PROPERTIES macro
To keep compatibility with compilers prior to Objective-C 2.0 support
(added in the GCC 4.6 series), we are unable to always declare @property
attributes in classes. However, compatibility with dot-syntax
applications require us to define properties if we can.

We already had some checks for the GS_HAS_DECLARED_PROPERTIES macro to
see whether we could or could not declare properties (or whether we
should fall back to manual getter/setter defining). However, it seems
this macro never got defined.

This commit adds this macro, checking whether we possess either GCC >=
4.6 or Clang.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
ef4929b2c2 chore: create .gitignore file
Create a .gitignore file to ease Base development using the Git version
control system. This stops object files, automake products and test
files from being accidentally inserted into the tree.
2017-06-29 21:18:16 +01:00
Richard Frith-Macdonald
383c3246ee partial fix for compiler without properties 2017-06-25 15:17:12 +01:00
Richard Frith-Macdonald
e1e0315e34 Use new NSFileManager behavior rather than operating system specific calls. 2017-06-21 11:25:05 +01:00
Richard Frith-Macdonald
9b8f8a8444 Replace lost edit spotted by Fred. 2017-06-19 07:07:13 +01:00
Richard Frith-Macdonald
24d29934cf Fix directory creation to match actual OSX sematics as determined by adding
a few testcases ...
The basic method should fail if the directory already exists.
The intermediate directories method should fail if the directory exists unless
the option to create intermediate directories is selected, in which case a
pre-existing directory is counted as a success.
2017-06-18 09:13:57 +01:00
Richard Frith-Macdonald
c494785630 Fix GSI_MAP_NODE_IS_EMPTY macros as suggested
by Daniel Ferreira <bnmvco@gmail.com>
2017-06-17 07:13:55 +01:00
Richard Frith-Macdonald
ed721bf4da Fix directory creation to use low level methods which consider the presence
of an existing directory to be an error, rather than the NSFileManager methods
that consider it a success.  The logic of distributed locking requires us to
fail if a directory already exists.
2017-06-17 06:52:05 +01:00
Richard Frith-MacDonald
a5a2e85423 improve debug log
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40510 72102866-910b-0410-8b05-ffd578937521
2017-05-19 16:20:17 +00:00
Richard Frith-MacDonald
9400f9105d Make TLS client certificate issuer/owner names available
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40508 72102866-910b-0410-8b05-ffd578937521
2017-05-19 11:38:48 +00:00
Wolfgang Lux
65af5b5ad6 Fix incorrect use addresses returned from getaddrinfo.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40500 72102866-910b-0410-8b05-ffd578937521
2017-05-10 12:38:40 +00:00
Richard Frith-MacDonald
5a810920e4 minor documentation generation tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40492 72102866-910b-0410-8b05-ffd578937521
2017-04-24 13:42:35 +00:00
Richard Frith-MacDonald
090aa2445d Release new version
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40479 72102866-910b-0410-8b05-ffd578937521
2017-04-14 09:54:19 +00:00
Richard Frith-MacDonald
1f786ad7a8 fixes for #47618
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40462 72102866-910b-0410-8b05-ffd578937521
2017-04-09 12:45:18 +00:00
Richard Frith-MacDonald
073fb54804 apply bug #49021
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40461 72102866-910b-0410-8b05-ffd578937521
2017-04-09 09:56:55 +00:00
Wolfgang Lux
6df2b6f4c9 Add missing class declaration for new methods in NSStream.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40445 72102866-910b-0410-8b05-ffd578937521
2017-04-04 07:44:00 +00:00
Richard Frith-MacDonald
c6b8f4fb03 fix memory leak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40433 72102866-910b-0410-8b05-ffd578937521
2017-04-03 20:23:31 +00:00
Riccardo Mottola
b5b9126290 Correct format specifier to char*
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40432 72102866-910b-0410-8b05-ffd578937521
2017-04-01 14:09:01 +00:00
Richard Frith-MacDonald
71d1d5c42b implement methods to create a stream to read from a URL
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40420 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:44:13 +00:00
Richard Frith-MacDonald
173079f8f5 fix swapped arguments (spotted by Fred in testplant changes)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40419 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:27:12 +00:00
Richard Frith-MacDonald
7c9d7acafa Update NSComparisonResult to use NS_ENUM
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40418 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:00:35 +00:00
Richard Frith-MacDonald
02688abdb6 NS_OPTIONS support
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40407 72102866-910b-0410-8b05-ffd578937521
2017-03-21 09:28:45 +00:00
Richard Frith-MacDonald
871b9059ef Handle NS_ENUM declarations
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40404 72102866-910b-0410-8b05-ffd578937521
2017-03-20 14:40:41 +00:00
Riccardo Mottola
b19d076452 Skip file if no valid filename could be retrieved most probably due to Charset mismatches, this is is more a last resort: probably a lossy conversion should be attempted before
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40397 72102866-910b-0410-8b05-ffd578937521
2017-03-17 14:11:14 +00:00
Richard Frith-MacDonald
0cd2430234 updated timezone information
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40396 72102866-910b-0410-8b05-ffd578937521
2017-03-17 12:25:30 +00:00
Richard Frith-MacDonald
d28ab9eaac Implement OSX compatible non-lossy ascii encoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40395 72102866-910b-0410-8b05-ffd578937521
2017-03-17 12:04:19 +00:00
Richard Frith-MacDonald
85e8bdb20d non-lossy emncoding tests
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40394 72102866-910b-0410-8b05-ffd578937521
2017-03-17 11:50:05 +00:00
Richard Frith-MacDonald
cc27fb0cb5 Use UTF8String rather than cString
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40393 72102866-910b-0410-8b05-ffd578937521
2017-03-17 09:45:02 +00:00