ObjFW  History of src/OFHTTPClient.h of e91cba848b550271

History of the file that is called src/OFHTTPClient.h at check-in e91cba848b550271

2024-01-02
17:17
Update copyright file: [0e950c9026] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 8383 [annotate] [blame] [check-ins using] [diff]
2023-07-22
11:24
OFHTTPClient: Minor documentation improvement file: [0bca7b11fb] check-in: [400199f299] user: js, branch: trunk, size: 8383 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [67bbe697a1] check-in: [8939cbdb52] user: js, branch: trunk, size: 8338 [annotate] [blame] [check-ins using] [diff]
2022-12-27
13:58
Rename OFAlready{Connected -> Open}Exception file: [3625e60bd3] check-in: [29a41e5a78] user: js, branch: trunk, size: 8338 [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Rename OFURI to OFIRI file: [03e878758b] check-in: [23272e6d43] user: js, branch: trunk, size: 8358 [annotate] [blame] [check-ins using] [diff]
2022-09-28
22:05
OFHTTPClientDelegate: Improve a method name file: [d5da950339] check-in: [4b1045c2d1] user: js, branch: trunk, size: 8358 [annotate] [blame] [check-ins using] [diff]
21:40
Rename OFUR{L -> I} in preparation for URI support file: [cad337925c] check-in: [e7ab06503c] user: js, branch: trunk, size: 8354 [annotate] [blame] [check-ins using] [diff]
2022-09-25
15:39
Document more exceptions file: [d00f0b1c33] check-in: [7ab0c2561a] user: js, branch: trunk, size: 8354 [annotate] [blame] [check-ins using] [diff]
2022-09-12
08:52
Restrict subclassing on more classes file: [ce9ecefc1d] check-in: [1038191a03] user: js, branch: trunk, size: 7558 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [4532ba7b26] check-in: [1a86b8175b] user: js, branch: trunk, size: 7557 [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: [dfdc56fd61] check-in: [d30efa8bbf] user: js, branch: trunk, size: 7557 [annotate] [blame] [check-ins using] [diff]

2021-01-02
22:04
Update copyright file: [e81e6f28b9] check-in: [374e1a1bfa] user: js, branch: trunk, size: 7163 [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: [428c441451] check-in: [7f102e8c95] user: js, branch: trunk, size: 7252 [annotate] [blame] [check-ins using] [diff]

2020-10-10
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: [2c21807c55] check-in: [6e42ee482f] user: js, branch: trunk, size: 7561 [annotate] [blame] [check-ins using] [diff]

2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [f4b177457f] check-in: [163a4a5a2e] user: js, branch: trunk, size: 7557 [annotate] [blame] [check-ins using] [diff]
2020-05-06
00:32
Improve names of several properties file: [a28aee5e52] check-in: [bc67e98833] user: js, branch: trunk, size: 7557 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [1c7acee4b8] check-in: [c7f0229795] user: js, branch: trunk, size: 7552 [annotate] [blame] [check-ins using] [diff]
2019-09-29
19:35
Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. file: [e516a827e2] check-in: [496695d778] user: js, branch: trunk, size: 7549 [annotate] [blame] [check-ins using] [diff]

2019-03-08
00:35
Use dot syntax file: [ec1691a772] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 7523 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [37c93537fa] check-in: [0509d7a844] user: js, branch: trunk, size: 7534 [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: [793c0b92a1] check-in: [eaf458c1e6] user: js, branch: trunk, size: 7528 [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: [488f1f88e1] check-in: [d375061886] user: js, branch: trunk, size: 9756 [annotate] [blame] [check-ins using] [diff]

2018-02-25
15:48
OFHTTPClient: Reintroduce -[performRequest:]

This uses -[asyncPerformRequest:redirects:context:] under the hood and
runs a runloop until it finished. file: [baab318aa5] check-in: [f80b0d270c] user: js, branch: trunk, size: 9715 [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: [e93ee6e64d] check-in: [8681bba25e] user: js, branch: trunk, size: 7417 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [637136b15a] check-in: [7e5c81e186] user: js, branch: trunk, size: 6850 [annotate] [blame] [check-ins using] [diff]
2017-11-18
18:50
Documentation: Use @brief for all properties file: [ee9dc77896] check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 6827 [annotate] [blame] [check-ins using] [diff]
2017-09-26
22:01
Many nullability fixes file: [cd3656efe4] check-in: [319709fff1] user: js, branch: 0.90, size: 5164 [annotate] [blame] [check-ins using] [diff]
21:53
Many nullability fixes file: [414d2558e4] check-in: [52011fbfd6] user: js, branch: trunk, size: 6813 [annotate] [blame] [check-ins using] [diff]
2017-09-25
00:02
OFHTTPClient: Add support for passing a context file: [c9323a5119] check-in: [c35ba05bbc] user: js, branch: trunk, size: 6773 [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: [e0785471fb] check-in: [0319fe1eb9] user: js, branch: trunk, size: 5876 [annotate] [blame] [check-ins using] [diff]

11:24
Change type for async exceptions to id file: [cce5af40ca] check-in: [f8498bb114] user: js, branch: trunk, size: 5868 [annotate] [blame] [check-ins using] [diff]
02:11
OFObject: Add -[performSelector*] with 3 objects file: [c2310631fb] check-in: [9f1accca4e] user: js, branch: trunk, size: 5888 [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: [daaaeddb63] check-in: [56a18442e2] user: js, branch: trunk, size: 5874 [annotate] [blame] [check-ins using] [diff]

2017-09-23
19:02
OFHTTPClient: Add request performed callback

This is in preparation for making OFHTTPClient asynchronous. file: [b02049e5b7] check-in: [d3d4d34dad] user: js, branch: trunk, size: 5523 [annotate] [blame] [check-ins using] [diff]

2017-08-14
13:33
Always have assign before nonatomic file: [45c3b5270f] check-in: [4eab54022e] user: js, branch: trunk, size: 5124 [annotate] [blame] [check-ins using] [diff]
2017-07-22
20:50
Split OFDataArray into OFData and OFMutableData file: [a366523288] check-in: [c8f7b90082] user: js, branch: trunk, size: 5124 [annotate] [blame] [check-ins using] [diff]
2017-05-27
08:56
+[OFHTTPCookie requestHeaderFieldsWithCookies:]

Also renames +[OFHTTPCookie cookiesFromHeaders:forURL:] to
+[OFHTTPCookie cookiesWithResponseHeaderFields:forURL:] to differentiate
between request and response header fields. file: [b76c7b05e7] check-in: [8896ef883e] user: js, branch: trunk, size: 5144 [annotate] [blame] [check-ins using] [diff]

2017-05-13
16:29
Also use nonatomic for non-object properties file: [7523e2d4b7] check-in: [f663d40cbd] user: js, branch: trunk, size: 4880 [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: [8fd8945807] check-in: [4af49a13c3] user: js, branch: trunk, size: 4853 [annotate] [blame] [check-ins using] [diff]

2017-01-29
19:08
ofhttp: Add --insecure flag to ignore TLS errors file: [08ff8ce82a] check-in: [d040a0989d] user: js, branch: trunk, size: 4836 [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: [ba8c9a7683] check-in: [44f45c2e35] user: js, branch: trunk, size: 4825 [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: [bb02a1b9bf] check-in: [a509ab7e91] user: js, branch: trunk, size: 4819 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

While at it, also update the mail address. file: [c62fbae14a] check-in: [2a27cf3000] user: js, branch: trunk, size: 4720 [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: [b45a098c16] check-in: [ba62f00fac] user: js, branch: trunk, size: 4716 [annotate] [blame] [check-ins using] [diff]

11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [ed0609a453] check-in: [48980f2297] user: js, branch: trunk, size: 4829 [annotate] [blame] [check-ins using] [diff]

2015-06-17
22:11
Add OF_NULLABLE_PROPERTY

This is necessary to make GCC (>= 4.6 and Apple GCC) happy as they don't
like the list of property attributes ending in a comma. file: [1d478e9a98] check-in: [80e1a9655b] user: js, branch: trunk, size: 5464 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [74c3496cfd] check-in: [9e76144ef8] user: js, branch: trunk, size: 5453 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [65cccf1fb8] check-in: [5329fe7c1a] user: js, branch: trunk, size: 5377 [annotate] [blame] [check-ins using] [diff]
2015-05-20
22:26
OFHTTPClient: Correctly handle keep-alive for HEAD file: [aa446e953e] check-in: [a8184e90ae] user: js, branch: trunk, size: 5312 [annotate] [blame] [check-ins using] [diff]
2015-04-26
12:45
utils/ofhttp: Print redirects in non-quiet mode file: [95e9e3b5c5] check-in: [05a0a6f65c] user: js, branch: trunk, size: 5292 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [ef2286c80d] check-in: [cfd374b906] user: js, branch: trunk, size: 5288 [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
Documentation: Show correct imports file: [edd0288715] check-in: [246cfe0807] user: js, branch: trunk, size: 5282 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [eeab9ddcde] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 5147 [annotate] [blame] [check-ins using] [diff]
2013-09-30
16:11
OFHTTPClient: Status in delegate for redirection. file: [f17362c62b] check-in: [6bd37697f2] user: js, branch: trunk, size: 5141 [annotate] [blame] [check-ins using] [diff]
2013-07-29
19:43
Rename OFHTTPRequestReply to OFHTTPResponse. file: [f3d93005f7] check-in: [36d0b1e2d8] user: js, branch: trunk, size: 5051 [annotate] [blame] [check-ins using] [diff]
2013-04-26
19:42
Make it possible to disable sockets. file: [630572f8e2] check-in: [590c377d8a] user: js, branch: trunk, size: 4984 [annotate] [blame] [check-ins using] [diff]
2013-03-15
17:04
OFHTTPClient: Implement "Connection: keep-alive". file: [838f77c97e] check-in: [c195c1f098] user: js, branch: trunk, size: 4922 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. file: [157d08fbae] check-in: [c5ef582958] user: js, branch: trunk, size: 4756 [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
Prefix all ivars with an underscore. file: [97e24a8655] check-in: [e40729d406] user: js, branch: trunk, size: 4756 [annotate] [blame] [check-ins using] [diff]
2013-01-26
00:13
Make OFHTTPRequestReply a stream.

This also implements chunked transfer encoding for OFHTTPServer and adds
a property for the protocol version to OFHTTPRequest(Reply).

Additionally, this makes it possible to add an async version of
OFHTTPClient. file: [19781d2abd] check-in: [bdf9c4d96b] user: js, branch: trunk, size: 4754 [annotate] [blame] [check-ins using] [diff]

2013-01-10
22:52
Fix all Doxygen warnings. file: [aa40337e14] check-in: [365d74aa27] user: js, branch: trunk, size: 5769 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [4ef6dc4356] check-in: [813c00ccf0] user: js, branch: trunk, size: 5718 [annotate] [blame] [check-ins using] [diff]
2012-12-26
20:55
OFHTTPRequestResult -> OFHTTPRequestReply.

The class also has its own file now. file: [ab52e94768] check-in: [75f187cef5] user: js, branch: trunk, size: 5712 [annotate] [blame] [check-ins using] [diff]

2012-12-20
16:42
Remove dummy implementations for formal protocols. file: [f80794c7b1] check-in: [89177dcd09] user: js, branch: trunk, size: 5720 [annotate] [blame] [check-ins using] [diff]
2012-12-13
20:53
Add of_tls_socket_class for 3rd-party TLS libs.

This removes of_http_client_tls_socket_class in favor of having one
symbol for all places where TLS would be desired. file: [0ec84f966d] check-in: [1abe5a111f] user: js, branch: trunk, size: 5789 [annotate] [blame] [check-ins using] [diff]

2012-12-09
12:13
Added: Split OFHTTPRequest into OFHTTP{Client,Request}. file: [c649e6c2e2] check-in: [2b7a70e246] user: js, branch: trunk, size: 5836 [annotate] [blame] [check-ins using]