ObjFW  History of utils/ofhttp/OFHTTP.m of 88ed5be67150e44c

History of the file that is called utils/ofhttp/OFHTTP.m at check-in 88ed5be67150e44c

2024-02-03
11:41
Update copyright file: [e4695aa030] check-in: [7324ec8590] user: js, branch: 1.0, size: 31799 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:26
utils: Indicate options with an argument with = file: [bf9f7e1c82] check-in: [21823c0d56] user: js, branch: trunk, size: 31801 [annotate] [blame] [check-ins using] [diff]
17:17
Update copyright file: [2625323d66] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 31801 [annotate] [blame] [check-ins using] [diff]
2023-10-15
14:55
Add OFHTTPRequestMethodString()

This deprecates OFHTTPRequestMethodName(), which returns a C string.
APIs should avoid C strings as much as possible.

This function was initially only used internally, where this was fine.
However, when it was made public, it should have been converted to
OFString at the same time.

Adds OFHTTPRequestMethodParseString() for consistency, which behaves the
same as OFHTTPRequestMethodParseName() and deprecates it. file: [336f94ad28] check-in: [12c09ef41e] user: js, branch: trunk, size: 31801 [annotate] [blame] [check-ins using] [diff]

2023-10-08
08:18
utils: Minor style fix file: [d2650dbe5b] check-in: [c626b708a4] user: js, branch: trunk, size: 31799 [annotate] [blame] [check-ins using] [diff]
08:03
ofhttp: Fix missing comma that caused a crash file: [872ae0262a] check-in: [b21bacd5fd] user: js, branch: trunk, size: 31796 [annotate] [blame] [check-ins using] [diff]
2023-08-26
15:30
ofhttp: Prevent empty file name file: [02af79d7f6] check-in: [a45da5cb30] user: js, branch: trunk, size: 31795 [annotate] [blame] [check-ins using] [diff]
10:44
ofhttp: Add error message for failed TLS handshake file: [32c3b36a14] check-in: [579dd0a7ee] user: js, branch: trunk, size: 31763 [annotate] [blame] [check-ins using] [diff]
2023-04-11
18:42
utils: Fix %c instead of %C for short options file: [22d5583cf6] check-in: [bb4026082a] user: js, branch: trunk, size: 31169 [annotate] [blame] [check-ins using] [diff]
2023-01-28
20:27
ofhttp: Set user.ofhttp.downloaded_from xattr file: [1fcffa7dee] check-in: [ad148c821a] user: js, branch: trunk, size: 31169 [annotate] [blame] [check-ins using] [diff]
2023-01-23
23:19
ofhttp: Set com.apple.quarantine on macOS file: [f89a26cb27] check-in: [a4ac11954b] user: js, branch: trunk, size: 30650 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [52c1f1f14b] check-in: [8939cbdb52] user: js, branch: trunk, size: 30085 [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Rename OFURI to OFIRI file: [e73ed438ad] check-in: [23272e6d43] user: js, branch: trunk, size: 30085 [annotate] [blame] [check-ins using] [diff]
2022-11-23
21:39
Use a URI for the localization directory

This theoretically allows embedding localizations. While this isn't
great as all will be held in memory but only one will be used, there
might be cases where everything should be in one binary. file: [05abbe7837] check-in: [88ed5be671] user: js, branch: trunk, size: 30085 [annotate] [blame] [check-ins using] [diff]

2022-11-13
19:07
Add OFApplicationDidFinishLaunchingNotification file: [4bdf3b8ffc] check-in: [204b27318f] user: js, branch: trunk, size: 30024 [annotate] [blame] [check-ins using] [diff]
18:46
utils/ofhttp: Fix signedness mismatch file: [f34323cefa] check-in: [50a345a4f5] user: js, branch: trunk, size: 29992 [annotate] [blame] [check-ins using] [diff]
2022-10-22
16:50
Rename OFConnect{ion -> Socket}FailedException file: [36f1e9db6a] check-in: [43b57ece47] user: js, branch: trunk, size: 29992 [annotate] [blame] [check-ins using] [diff]
2022-09-29
20:27
OFLocale: Rename a few methods file: [2267fb0c48] check-in: [915bfc7431] user: js, branch: trunk, size: 29986 [annotate] [blame] [check-ins using] [diff]
2022-09-28
22:05
OFHTTPClientDelegate: Improve a method name file: [84e58d6177] check-in: [4b1045c2d1] user: js, branch: trunk, size: 29961 [annotate] [blame] [check-ins using] [diff]
21:40
Rename OFUR{L -> I} in preparation for URI support file: [d8707f71b6] check-in: [e7ab06503c] user: js, branch: trunk, size: 29957 [annotate] [blame] [check-ins using] [diff]
2022-09-25
14:00
OF{Retrieve -> Get}ItemAttributesFailedException file: [0c6715c4db] check-in: [78032c89cb] user: js, branch: trunk, size: 29957 [annotate] [blame] [check-ins using] [diff]
2022-09-23
14:01
Rename OFInvalidServer{Reply -> Response}Exception file: [dd51d26874] check-in: [60ebc06824] user: js, branch: trunk, size: 29972 [annotate] [blame] [check-ins using] [diff]
2022-07-14
15:15
utils/ofhttp: Improve Unicode detection on Windows file: [aa1d962c4e] check-in: [0c7c78f397] user: js, branch: trunk, size: 29960 [annotate] [blame] [check-ins using] [diff]
2022-06-06
09:46
utils/ofhttp: Work around GCC bug file: [6f883db433] check-in: [834e43651c] user: js, branch: trunk, size: 29886 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [622c13a414] check-in: [1a86b8175b] user: js, branch: trunk, size: 29813 [annotate] [blame] [check-ins using] [diff]
2021-11-20
13:18
Move TLS implementations to a separate library

These implementations all depend on additional libraries that are
otherwise not needed for an ObjFW application that does not use TLS,
meaning they would add unnecessary dependencies for a lot of
applications and waste memory. file: [1e6fb1a87b] check-in: [8f8af474fc] user: js, branch: trunk, size: 29813 [annotate] [blame] [check-ins using] [diff]

2021-11-13
13:04
Completely rework the TLS/SSL API

The previous API could never work cleanly and would always require
hacks, as it needed intercepting all interactions of OFTCPSocket with
the raw socket and did not work at all if the OFTCPSocket had anything
in its read buffer before starting the TLS handshake. This also could
not be fixed easily, as it would have required the object to contain two
read buffers, one for the unencrypted connection and one for the
encrypted connection. There was also no clean way to perform the
handshake in a non-blocking way.

The new API is a lot cleaner and requires none of the hacks, but using
it requires slightly more work. But this is more than made up for by
making a fully asynchronous handshake possible. It uses the concept of a
stream wrapping another stream, meaning the entire connecting part is
being handled by OFTCPSocket and then the connected socket is passed off
to OFTLSStream to wrap it. This also makes for a lot cleaner separation
of concerns. file: [6bac196b77] check-in: [d30efa8bbf] user: js, branch: trunk, size: 29663 [annotate] [blame] [check-ins using] [diff]

2021-11-06
00:10
Make OFTLSSocket an abstract class

This should make it easier to add TLS support using various
implementations. file: [2fe08b11b5] check-in: [34cb121dc5] user: js, branch: trunk, size: 29920 [annotate] [blame] [check-ins using] [diff]

2021-05-02
11:59
ofhttp: Fix typo file: [cd70aeb710] check-in: [5a087b5409] user: js, branch: trunk, size: 29949 [annotate] [blame] [check-ins using] [diff]
2021-04-25
20:12
Merge trunk into branch "sandbox" file: [758155ce18] check-in: [1c5fb04713] user: js, branch: sandbox, size: 29942 [annotate] [blame] [check-ins using] [diff]
19:58
Last round of renames (hopefully) file: [c136ae289f] check-in: [6ae98c1dcf] user: js, branch: trunk, size: 29948 [annotate] [blame] [check-ins using] [diff]
2021-04-19
22:20
Rename all remaining enums file: [8591ab818f] check-in: [e97b03815f] user: js, branch: new-naming-convention, size: 29948 [annotate] [blame] [check-ins using] [diff]
21:54
Rename a few more constants file: [fd5b97783f] check-in: [458420998c] user: js, branch: new-naming-convention, size: 29870 [annotate] [blame] [check-ins using] [diff]
2021-04-18
22:56
Rename all symbols marked extern file: [fa0717c415] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 29759 [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
Rename of_(re)alloc and add OFFreeMemory file: [b78631e300] check-in: [498074dab9] user: js, branch: new-naming-convention, size: 29801 [annotate] [blame] [check-ins using] [diff]
14:33
Rename of_http_* file: [83d4f96412] check-in: [83d8f3e5f6] user: js, branch: new-naming-convention, size: 29796 [annotate] [blame] [check-ins using] [diff]
14:24
of_plugin_handle_t -> OFPluginHandle file: [88b7d0694f] check-in: [cedc0cb75e] user: js, branch: new-naming-convention, size: 29833 [annotate] [blame] [check-ins using] [diff]
05:22
Rename of_options_parser_option_t file: [b36faae7ff] check-in: [91daa42649] user: js, branch: new-naming-convention, size: 29834 [annotate] [blame] [check-ins using] [diff]
02:25
Rename remaining enums in OFString.h file: [ed48a4cbd1] check-in: [169692a120] user: js, branch: new-naming-convention, size: 29839 [annotate] [blame] [check-ins using] [diff]
02:10
of_string_encoding_t -> OFStringEncoding file: [9ae5740c07] check-in: [255f21fb3d] user: js, branch: new-naming-convention, size: 29842 [annotate] [blame] [check-ins using] [diff]
01:32
of_unichar_t -> OFUnichar file: [64964c284b] check-in: [2d3790870d] user: js, branch: new-naming-convention, size: 29846 [annotate] [blame] [check-ins using] [diff]
01:24
OF_NOT_FOUND -> OFNotFound file: [ecc61cd90c] check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 29849 [annotate] [blame] [check-ins using] [diff]
2021-04-07
21:18
Merge trunk into 1.0 branch file: [f445945689] check-in: [36669d22b4] user: js, branch: 1.0, size: 29853 [annotate] [blame] [check-ins using] [diff]
2021-04-05
21:31
ofhttp: Fix finding ObjOpenSSL opportunistically file: [3e09fbe274] check-in: [e37212ea80] user: js, branch: trunk, size: 29847 [annotate] [blame] [check-ins using] [diff]
2021-03-30
21:23
Merge trunk into 1.0 branch file: [596ef6416d] check-in: [564d6d6b6f] user: js, branch: 1.0, size: 29829 [annotate] [blame] [check-ins using] [diff]
2021-03-14
18:55
ofhttp: Use "unnamed" if output name is nil or / file: [1db0eb477d] check-in: [7b2c6a3873] user: js, branch: trunk, size: 29823 [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
*.m: Fold methods into one line where it fits file: [3f5985320f] check-in: [1b82d3bf4f] user: js, branch: trunk, size: 29658 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [9525086526] check-in: [374e1a1bfa] user: js, branch: trunk, size: 29741 [annotate] [blame] [check-ins using] [diff]
2020-12-22
20:19
Merge trunk into 1.0 branch file: [febf489eba] check-in: [62edb405b9] user: js, branch: 1.0, size: 29836 [annotate] [blame] [check-ins using] [diff]
13:16
Make OFSandbox private

It is unclear whether the same API can be applied to other sandboxing
frameworks. file: [8920dc599a] check-in: [510628432f] user: js, branch: 1.0, size: 29395 [annotate] [blame] [check-ins using] [diff]

2020-12-19
21:52
ofhttp: Support for non-Unicode console output file: [b323b730e9] check-in: [7da1f47ece] user: js, branch: trunk, size: 29830 [annotate] [blame] [check-ins using] [diff]
2020-12-15
19:16
ofhttp: Avoid passing nil to OF_LOCALIZED file: [089353e353] check-in: [1e07e91324] user: js, branch: trunk, size: 29389 [annotate] [blame] [check-ins using] [diff]
2020-11-14
12:23
Rename of_malloc and of_calloc

The new names should be more accurate. file: [0d0e8ff125] check-in: [627511b032] user: js, branch: trunk, size: 29352 [annotate] [blame] [check-ins using] [diff]

2020-11-05
02:27
Further reduce usage of -[allocMemoryWithSize:] file: [121d87bdd5] check-in: [da1fb6b21c] user: js, branch: trunk, size: 29353 [annotate] [blame] [check-ins using] [diff]
2020-11-01
11:35
OFString: Add -[substring{From,To}Index:] file: [c172d83732] check-in: [4bbac7ab17] user: js, branch: trunk, size: 29367 [annotate] [blame] [check-ins using] [diff]
2020-10-31
19:16
OFHTTPClient: Remove didFailWithException

Instead, add an exception to didPerformRequest, to make it more
consistent with other places. file: [1aec658c7f] check-in: [7f102e8c95] user: js, branch: trunk, size: 29488 [annotate] [blame] [check-ins using] [diff]

2020-10-10
11:09
ofhttp: Add --ignore-status option file: [24d165719e] check-in: [3162555b75] user: js, branch: trunk, size: 29319 [annotate] [blame] [check-ins using] [diff]
10:58
Make HTTP status code consistently a short

It used to be a short in some places and an int in other places. file: [20466a8b30] check-in: [6e42ee482f] user: js, branch: trunk, size: 29006 [annotate] [blame] [check-ins using] [diff]

2020-09-27
02:12
ofhttp: Fix compiling with Apple GCC 4.2.1 file: [cd147444d1] check-in: [431116c906] user: js, branch: trunk, size: 29000 [annotate] [blame] [check-ins using] [diff]
2020-08-29
23:17
ofhttp: Translate "Error!" message file: [d4c7821db4] check-in: [f79f04f882] user: js, branch: trunk, size: 28980 [annotate] [blame] [check-ins using] [diff]
14:53
ofhttp: Opportunistically try loading ObjOpenSSL file: [77db884daa] check-in: [4666442ec2] user: js, branch: trunk, size: 28905 [annotate] [blame] [check-ins using] [diff]
2020-08-13
21:07
OFString: Rename JSONValue to objectByParsingJSON file: [976ffe7a77] check-in: [8611f48f42] user: js, branch: trunk, size: 28647 [annotate] [blame] [check-ins using] [diff]
2020-08-12
20:56
Avoid using (u)intmax_t in methods

It is not guaranteed that a type encoding for it exists. file: [636026cd3b] check-in: [d74f244ab7] user: js, branch: trunk, size: 28644 [annotate] [blame] [check-ins using] [diff]

2020-08-11
19:45
OFString: Rework number parsing API

This solves the old signed vs. unsigned problem and allows for more
bases than just 8, 10 and 16, as well as auto-detection of the base (if
base is 0). file: [e499272015] check-in: [b6ee372b98] user: js, branch: trunk, size: 28612 [annotate] [blame] [check-ins using] [diff]

2020-05-06
00:32
Improve names of several properties file: [da5c2f66e5] check-in: [bc67e98833] user: js, branch: trunk, size: 28564 [annotate] [blame] [check-ins using] [diff]
2020-04-13
15:48
OFLocale: Allow plural scripting in fallback file: [37d96aee35] check-in: [8a0c5ed345] user: js, branch: trunk, size: 28585 [annotate] [blame] [check-ins using] [diff]
2020-03-25
21:26
OFHTTPClient: Support for sending chunked body file: [cb6f1d9fe7] check-in: [aac504a7bc] user: js, branch: trunk, size: 28449 [annotate] [blame] [check-ins using] [diff]
2020-03-22
21:39
ofhttp: Don't try writing a file for HEAD requests file: [7982cd7599] check-in: [0e2f8c361e] user: js, branch: trunk, size: 28049 [annotate] [blame] [check-ins using] [diff]
16:15
ofhttp: Allow all request methods file: [a9d2a994f3] check-in: [a013a9d577] user: js, branch: trunk, size: 27990 [annotate] [blame] [check-ins using] [diff]
15:51
ofhttp: Print the HTTP status code on error

Without this, there would be no indication of the error when using -q. file: [39d0dcb133] check-in: [9c506fc995] user: js, branch: trunk, size: 28316 [annotate] [blame] [check-ins using] [diff]

2020-02-27
23:53
ofhttp: Properly reset _length on redirect

Additionally, only use _length for progress. file: [fb786804a8] check-in: [283aece9e8] user: js, branch: trunk, size: 28064 [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
Update copyright file: [42b4813df4] check-in: [c7f0229795] user: js, branch: trunk, size: 28116 [annotate] [blame] [check-ins using] [diff]
2019-10-07
00:07
OFDNSResolver: Major refactor

This temporarily doesn't use the search domains anymore and makes CNAMEs
slightly more inefficient. The next commits will fix both. file: [749d02c708] check-in: [ee592cf603] user: js, branch: trunk, size: 28113 [annotate] [blame] [check-ins using] [diff]

2019-10-06
16:27
Rename OFDNSRequest -> OFDNSQuery

This is now in alignment with the terminology of the RFC. file: [77758e69da] check-in: [d69f7bc1ff] user: js, branch: trunk, size: 28098 [annotate] [blame] [check-ins using] [diff]

2019-10-01
00:40
Add OFDNSRequest file: [8c21bf2dad] check-in: [6b2fb27dca] user: js, branch: trunk, size: 28106 [annotate] [blame] [check-ins using] [diff]
2019-09-07
23:33
ofhttp: Fix error code not always being set file: [03652a6d82] check-in: [9764b0886f] user: js, branch: trunk, size: 28120 [annotate] [blame] [check-ins using] [diff]
2019-08-22
19:01
ofhttp: Allow sandbox to read continued files file: [6d1ae6e71c] check-in: [a93dc48427] user: js, branch: trunk, size: 28103 [annotate] [blame] [check-ins using] [diff]
2019-03-19
01:39
ofhttp: Parse unquoted Content-Disposition file: [5a1e81f84f] check-in: [ec962afb8e] user: js, branch: trunk, size: 28080 [annotate] [blame] [check-ins using] [diff]
01:04
ofhttp: Fix --detect-filename file: [292d3ba59e] check-in: [d112a476aa] user: js, branch: trunk, size: 27186 [annotate] [blame] [check-ins using] [diff]
00:32
ofhttp: Set _resumedFrom to 0 if statusCode != 206 file: [f89010b0ee] check-in: [967a498fcc] user: js, branch: trunk, size: 26836 [annotate] [blame] [check-ins using] [diff]
2019-03-18
21:27
ofhttp: Only print HEAD request for -O with -v

This also fixes trying to print the name when it has not been detected
yet. file: [6159de2c20] check-in: [a7872e1065] user: js, branch: trunk, size: 26791 [annotate] [blame] [check-ins using] [diff]

2019-03-12
23:20
utils: Use dot syntax file: [64f6fe7e2e] check-in: [53e3ae1e45] user: js, branch: trunk, size: 26737 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [1da76a65b7] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 26944 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [fe54fd9353] check-in: [0509d7a844] user: js, branch: trunk, size: 26950 [annotate] [blame] [check-ins using] [diff]
2018-12-28
14:58
ofhttp: Allow reading /etc/ssl from the sandbox file: [f19ce10640] check-in: [632999a7ab] user: js, branch: trunk, size: 26944 [annotate] [blame] [check-ins using] [diff]
2018-12-21
21:39
Remove context from OFHTTPClientDelegate

It was not very useful as for any OFHTTPClient there can only be one
active request. file: [5aba4f761b] check-in: [eaf458c1e6] user: js, branch: trunk, size: 26839 [annotate] [blame] [check-ins using] [diff]

2018-12-11
22:57
Include an exception in delegate methods

Otherwise, there would be two methods for every operation: One for
success and one for failure. It also makes it easy to forget about
handling failure, so it's better to always pass an optional exception. file: [c4c7ef8326] check-in: [064dbe5127] user: js, branch: trunk, size: 26963 [annotate] [blame] [check-ins using] [diff]

2018-12-07
01:33
OFStream: Use a delegate for async operations

The target / selector approach had several drawbacks:

* It was inconvenient to use, as for every read or write, a target,
selector and context would need to be specified.
* It lacked any kind of type-safety and would not even warn about using
a callback method with the wrong number of parameters.
* It encouraged using a different callback method for each read or
write call, which results in code that is hard to follow and also
slower (as it needs to recreate the async operation with a new
callback every time). file: [31817d3b24] check-in: [d16ad96cbd] user: js, branch: trunk, size: 26966 [annotate] [blame] [check-ins using] [diff]

2018-11-04
20:46
ofhttp: Use OFSandbox's new unveiling file: [661d5ad21b] check-in: [c554cd71da] user: js, branch: trunk, size: 26992 [annotate] [blame] [check-ins using] [diff]
2018-08-04
23:43
OFDNSResolver: Improve error reporting file: [43dea22caf] check-in: [647ec47eda] user: js, branch: trunk, size: 26760 [annotate] [blame] [check-ins using] [diff]
2018-07-28
18:45
Rename OFLocalization -> OFLocale file: [df6be230a4] check-in: [aa0384d1bf] user: js, branch: trunk, size: 26778 [annotate] [blame] [check-ins using] [diff]
2018-07-03
23:35
ofhttp: Move around the _URLIndex--

This is to make sure that the same URL is only tried again after we
successfully detected the file name, as otherwise we'd end up in an
infinite loop if we fail to detect the file name. file: [075e25cbdb] check-in: [ba6cb57178] user: js, branch: trunk, size: 26796 [annotate] [blame] [check-ins using] [diff]

2018-04-23
22:19
Use more native AmigaOS APIs on AmigaOS 3 file: [e2bb21d82f] check-in: [b16fc262c0] user: js, branch: trunk, size: 26796 [annotate] [blame] [check-ins using] [diff]
2018-03-11
20:47
ofhttp: Allow insecure redirects with --insecure file: [de7a31ac42] check-in: [38ccb06dff] user: js, branch: trunk, size: 26796 [annotate] [blame] [check-ins using] [diff]
20:38
ofhttp: Print headers as we receive them

This allows printing all headers of redirects in verbose mode. file: [3e501ee1e4] check-in: [892fbf97ac] user: js, branch: trunk, size: 26699 [annotate] [blame] [check-ins using] [diff]

2018-02-27
20:36
OFHTTP{Client,Server}: Rename body to requestBody

This makes it more clear that this has nothing to do with the body of
the response, as the body of the response is read from the
OFHTTPResponse itself. file: [20b438d92f] check-in: [d375061886] user: js, branch: trunk, size: 26838 [annotate] [blame] [check-ins using] [diff]

2018-02-18
00:20
OFHTTPClient: Add a callback for the request body

This is in preparation for removing the body from OFHTTPRequest.
Having it as OFData that is part of the OFHTTPRequest was a bad idea, as
it does not allow streaming. file: [cdc79122cb] check-in: [8681bba25e] user: js, branch: trunk, size: 26836 [annotate] [blame] [check-ins using] [diff]

2018-01-03
23:00
ofhttp: Fix file name not always being reset file: [5bb85c3a07] check-in: [8377e80ba9] user: js, branch: trunk, size: 26427 [annotate] [blame] [check-ins using] [diff]
19:49
Update copyright notice file: [8c1ff01854] check-in: [7e5c81e186] user: js, branch: trunk, size: 26408 [annotate] [blame] [check-ins using] [diff]
2017-12-27
20:40
of{http,zip}: Allow user database reading

This is required as they now use attributesOfItemAtPath:, which reads
the user database. file: [de5b9ca60c] check-in: [904d0f429b] user: js, branch: trunk, size: 26385 [annotate] [blame] [check-ins using] [diff]

2017-11-22
00:47
OF_APPLICATION_DELEGATE(): Verify conformance file: [d6522c977d] check-in: [eba39f1c9d] user: js, branch: trunk, size: 26337 [annotate] [blame] [check-ins using] [diff]
2017-11-12
18:27
OFFileManager: Major API redesign

This removes all query methods and replaces them by a single one that
returns a dictionary. Not only does this allow querying multiple
attributes at once, it is also more extensible, as the previous
attributes were specific to file URLs. file: [e43d76979b] check-in: [34fe205b84] user: js, branch: trunk, size: 26314 [annotate] [blame] [check-ins using] [diff]

2017-10-22
15:05
Make Apple GCC with -Wshadow happy file: [46acc91009] check-in: [a06354b42a] user: js, branch: trunk, size: 26271 [annotate] [blame] [check-ins using] [diff]
14:09
Make Apple GCC with -Wshadow happy file: [511674f2be] check-in: [31c0f5b89e] user: js, branch: 0.90, size: 25122 [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. file: [7674e4cd26] check-in: [2f4e0df8be] user: js, branch: trunk, size: 26277 [annotate] [blame] [check-ins using] [diff]

2017-10-11
20:59
Fix shadowed variables and enable -Wshadow file: [92c2a328ea] check-in: [836314f39a] user: js, branch: 0.90, size: 25128 [annotate] [blame] [check-ins using] [diff]
20:53
Fix shadowed variables and enable -Wshadow file: [19987f61b8] check-in: [00476e4430] user: js, branch: trunk, size: 26263 [annotate] [blame] [check-ins using] [diff]
2017-10-01
21:06
Fix compilation with GCC file: [94fff99697] check-in: [f97084d9c3] user: js, branch: trunk, size: 26232 [annotate] [blame] [check-ins using] [diff]
2017-09-25
00:02
OFHTTPClient: Add support for passing a context file: [e7a88133ce] check-in: [c35ba05bbc] user: js, branch: trunk, size: 26206 [annotate] [blame] [check-ins using] [diff]
2017-09-24
21:00
OFHTTPClient: Rename to -[asyncPerformRequest:]

This makes it clear that the request is handled asynchronously and makes
it possible to reintroduce a synchronous version later. file: [7ea7ca97c5] check-in: [0319fe1eb9] user: js, branch: trunk, size: 26106 [annotate] [blame] [check-ins using] [diff]

00:59
Make OFHTTPClient asynchronous

This does not make OFHTTPClientResponse completely asynchronous yet.

Since -[initWithURL:] does not work well with an asynchronous API, it no
longer supports HTTP URLs. However, a new, asynchronous API will be
added as a replacement later on. file: [725d764e14] check-in: [56a18442e2] user: js, branch: trunk, size: 26096 [annotate] [blame] [check-ins using] [diff]

2017-09-23
22:07
Support for passing a context to async IO handlers file: [fb3cc5ba3d] check-in: [958da109d3] user: js, branch: trunk, size: 25949 [annotate] [blame] [check-ins using] [diff]
20:35
ofhttp: Refactor for asynchronous OFHTTPClient file: [2ea2fa69f0] check-in: [c26c8ca746] user: js, branch: trunk, size: 25893 [annotate] [blame] [check-ins using] [diff]
2017-08-14
11:33
ofhttp: Convert a method to a static function file: [729b47a746] check-in: [608b76a238] user: js, branch: trunk, size: 25093 [annotate] [blame] [check-ins using] [diff]
2017-07-22
23:04
OFFile: Simplify mode

This removes "b" for binary and always uses binary, as there is no good
reason to not use binary. file: [492c8ebbc8] check-in: [23e57c5040] user: js, branch: trunk, size: 25097 [annotate] [blame] [check-ins using] [diff]

20:50
Split OFDataArray into OFData and OFMutableData file: [1f66bff7ec] check-in: [c8f7b90082] user: js, branch: trunk, size: 25099 [annotate] [blame] [check-ins using] [diff]
2017-06-04
18:48
Treat MorphOS + ixemul as a separate platform

This reduces the ifdef hell and makes much more sense, as with ixemul,
no native calls are allowed. file: [09fa3de57a] check-in: [c9621825fc] user: js, branch: trunk, size: 25120 [annotate] [blame] [check-ins using] [diff]

01:30
OFLocalization: Add support for MorphOS + libnix file: [144754058e] check-in: [d974e769c5] user: js, branch: trunk, size: 25148 [annotate] [blame] [check-ins using] [diff]
2017-06-03
18:41
ofhttp: Small string fix file: [4a96f71a53] check-in: [cead04ef07] user: js, branch: trunk, size: 25017 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

Casts are now written like types in variable declarations. file: [fd3994865b] check-in: [4af49a13c3] user: js, branch: trunk, size: 25024 [annotate] [blame] [check-ins using] [diff]

2017-04-09
18:22
Add OFSandbox

Only OpenBSD's pledge() is supported so far. file: [9d1be742e3] check-in: [40cf53506a] user: js, branch: trunk, size: 24999 [annotate] [blame] [check-ins using] [diff]

2017-02-27
21:57
ofhttp: Move formatting out of localized strings file: [c3a4b738ae] check-in: [7ffbd24169] user: js, branch: trunk, size: 24536 [annotate] [blame] [check-ins using] [diff]
2017-01-29
19:08
ofhttp: Add --insecure flag to ignore TLS errors file: [cc6aaa39b2] check-in: [d040a0989d] user: js, branch: trunk, size: 24418 [annotate] [blame] [check-ins using] [diff]
2017-01-10
19:51
Do not use DATADIR as a define

This creates a conflict on Windows. file: [b07f7b6ae5] check-in: [e3e38ed68d] user: js, branch: trunk, size: 23986 [annotate] [blame] [check-ins using] [diff]

19:39
Implement support for localized strings file: [9a10462bff] check-in: [e731dc4c75] user: js, branch: trunk, size: 24070 [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. file: [2334e6806d] check-in: [44f45c2e35] user: js, branch: trunk, size: 23930 [annotate] [blame] [check-ins using] [diff]

06:26
Add OFLocalization

This singleton gives access to all things locale, including the ability
to get localized strings.

This also adds the OF_LOCALIZED() macro. Its first argument is an ID for
the string to be localized and its second argument is the fallback
string to be used if it cannot retrieve the localized string. Following
that are variable name / value pairs to be replaced in the localized
string.

Getting translated strings is not implemented yet: Instead, it always
uses the fallback string.

This also switches ofhttp to localized strings. file: [6d271e2d00] check-in: [06bcb21fc7] user: js, branch: trunk, size: 23924 [annotate] [blame] [check-ins using] [diff]

2017-01-07
02:34
Always use "." for the decimal point

This is achieved by replacing the locale's decimal point with "." after
formatting and replacing "." with the locale's decimal point before
parsing.

To still use the decimal point from the locale for formatting, the new
flag "," is introduced to formats. This is useful for just printing a
string to the user that is not saved to a file or sent via a network.

While this is an ugly hack, there is no better way to do this other than
implementing the functionality of printf and strtod myself, as POSIX
does not specify versions of these that take a locale as an argument.
While this is a lot of work and error-prone, I will most likely end up
doing this eventually.

This commit also enables the locale in OFApplication to notice when
things break. As a nice side effect, ofhttp now uses the locale's
decimal point in its user interface. file: [3ef2bcb62b] check-in: [6dff0f5922] user: js, branch: trunk, size: 20848 [annotate] [blame] [check-ins using] [diff]

2016-08-28
10:12
ofhttp: Add -f / --force to overwrite file file: [676c6715db] check-in: [9a43c41721] user: js, branch: trunk, size: 20845 [annotate] [blame] [check-ins using] [diff]
2016-08-21
14:09
OFHTTPClient: Add response to redirect delegate

This allows ofhttp to display all headers for the redirect in verbose
mode (the change for this is included). file: [e8263f7476] check-in: [a509ab7e91] user: js, branch: trunk, size: 20701 [annotate] [blame] [check-ins using] [diff]

2016-02-21
15:37
Make use of C99-style for loops file: [4bc226ed65] check-in: [e0b9167693] user: js, branch: trunk, size: 20109 [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [20c2c916a8] check-in: [cec0f072f8] user: js, branch: 0.8, size: 18704 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

While at it, also update the mail address. file: [ed4e5bef24] check-in: [2a27cf3000] user: js, branch: trunk, size: 20105 [annotate] [blame] [check-ins using] [diff]

2015-12-05
21:23
of{http,zip}: Better documentation of long options file: [4ffeaaca45] check-in: [227351155f] user: js, branch: trunk, size: 20101 [annotate] [blame] [check-ins using] [diff]
2015-11-29
14:20
Clean up optional protocols

Now that we can require GCC >= 4.6, we no longer need to have a category
on OFObject that adds the optional protocol to it. file: [545bac3fa9] check-in: [ba62f00fac] user: js, branch: trunk, size: 19765 [annotate] [blame] [check-ins using] [diff]

2015-11-28
18:56
OFOptionsParser: Reworked API

The new API allows long options and requires less manual parsing. file: [bdce356a5d] check-in: [bfa913aebe] user: js, branch: trunk, size: 19742 [annotate] [blame] [check-ins using] [diff]

2015-08-22
10:57
Move file management to its own class

This makes it possible to add support for delegates for file management
operations and on top makes it easier to add support for file management
operations on URLs. file: [45b5064c67] check-in: [f3c452dfef] user: js, branch: trunk, size: 18805 [annotate] [blame] [check-ins using] [diff]

2015-06-28
17:16
{generators,utils/of{hash,http}}: Use generics file: [9d72e08e88] check-in: [325f616d84] user: js, branch: trunk, size: 18700 [annotate] [blame] [check-ins using] [diff]
2015-06-14
12:47
utils/ofhttp: Allow specifying - to -b for stdin file: [4ec503b029] check-in: [51cfed24d2] user: js, branch: trunk, size: 18605 [annotate] [blame] [check-ins using] [diff]
2015-06-08
23:19
utils/ofhttp: Fix a very nasty typo file: [3efdc075b3] check-in: [1d81eaca70] user: js, branch: trunk, size: 18428 [annotate] [blame] [check-ins using] [diff]
2015-06-01
18:27
OFKernelEventObserver_select: Small Win64 fix file: [36dd0a09a7] check-in: [734fbbb144] user: js, branch: trunk, size: 18428 [annotate] [blame] [check-ins using] [diff]
2015-05-24
10:58
utils/ofhttp: Add verbose mode file: [de242f4469] check-in: [33760dee1a] user: js, branch: trunk, size: 18435 [annotate] [blame] [check-ins using] [diff]
2015-05-23
11:21
OFHTTPRequest: Rename entity to body file: [84d9105a37] check-in: [c8877fd278] user: js, branch: trunk, size: 17652 [annotate] [blame] [check-ins using] [diff]
2015-05-21
20:31
utils/ofhttp: Change some Unicode characters file: [d09ed2ac2f] check-in: [50de0da5bc] user: js, branch: trunk, size: 17672 [annotate] [blame] [check-ins using] [diff]
2015-05-20
22:51
utils/ofhttp: Add support for Content-Disposition file: [e58ba69867] check-in: [25d6acad98] user: js, branch: trunk, size: 17672 [annotate] [blame] [check-ins using] [diff]
2015-05-16
11:16
utils/ofhttp: Default User-Agent to OFHTTP

It can still be overridden with -HUser-Agent:. file: [e352c0cdcc] check-in: [625377fca5] user: js, branch: trunk, size: 14140 [annotate] [blame] [check-ins using] [diff]

2015-05-07
19:17
utils/ofhttp: Fix a wrong type file: [4b90142579] check-in: [ce7b92cbcf] user: js, branch: trunk, size: 14084 [annotate] [blame] [check-ins using] [diff]
2015-05-06
22:07
utils/ofhttp: Add options for method and entity file: [b1ee5836a1] check-in: [a83058c2c0] user: js, branch: trunk, size: 14079 [annotate] [blame] [check-ins using] [diff]
2015-05-04
22:54
utils/ofhttp: Fix a type mismatch file: [2ecde9c270] check-in: [0b13fb2e38] user: js, branch: trunk, size: 12747 [annotate] [blame] [check-ins using] [diff]
2015-04-26
20:48
utils/ofhttp: Allow specifying headers and proxy file: [9d4b8c5595] check-in: [ac6dadc698] user: js, branch: trunk, size: 12741 [annotate] [blame] [check-ins using] [diff]
16:06
utils/ofhttp: Better error output and small bugfix file: [4f8bf24b84] check-in: [06b8800f20] user: js, branch: trunk, size: 11058 [annotate] [blame] [check-ins using] [diff]
14:57
utils/ofhttp: Support for continuing downloads file: [157aaf05ca] check-in: [336a6e129b] user: js, branch: trunk, size: 10461 [annotate] [blame] [check-ins using] [diff]
14:08
utils/ofhttp: Better error output file: [0c3783e492] check-in: [9fb003e423] user: js, branch: trunk, size: 9419 [annotate] [blame] [check-ins using] [diff]
12:45
utils/ofhttp: Print redirects in non-quiet mode file: [4922b58539] check-in: [05a0a6f65c] user: js, branch: trunk, size: 8433 [annotate] [blame] [check-ins using] [diff]
12:24
Added: Add utils/ofhttp

This is a small tool to download files via HTTP(S). file: [f40132b96b] check-in: [486073790c] user: js, branch: trunk, size: 8135 [annotate] [blame] [check-ins using]