Differences From Artifact [c92bc66cbb]:
- File
src/OFHTTPClient.m
— part of check-in
[c25601d462]
at
2016-07-02 23:35:56
on branch trunk
— OFHTTPClient: Properly escape path & query string
OFURL used to return all URL parts escaped, however, when this was
changed, OFHTTPClient was not adjusted. (user: js, size: 17583) [annotate] [blame] [check-ins using]
To Artifact [382795589b]:
- File src/OFHTTPClient.m — part of check-in [df0769200f] at 2016-07-03 17:25:34 on branch trunk — OFHTTPClient: Make sure / is not encoded in path (user: js, size: 17601) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
- (OFHTTPResponse*)performRequest: (OFHTTPRequest*)request
redirects: (size_t)redirects
{
void *pool = objc_autoreleasePoolPush();
OFURL *URL = [request URL];
OFString *scheme = [URL scheme];
of_http_request_method_t method = [request method];
OFMutableString *requestString;
OFString *user, *password;
OFMutableDictionary OF_GENERIC(OFString*, OFString*) *headers;
OFDataArray *body = [request body];
OFTCPSocket *socket;
OFHTTPClientResponse *response;
OFString *line, *version, *redirect, *connectionHeader;
| > | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 |
- (OFHTTPResponse*)performRequest: (OFHTTPRequest*)request
redirects: (size_t)redirects
{
void *pool = objc_autoreleasePoolPush();
OFURL *URL = [request URL];
OFString *scheme = [URL scheme];
of_http_request_method_t method = [request method];
OFString *path;
OFMutableString *requestString;
OFString *user, *password;
OFMutableDictionary OF_GENERIC(OFString*, OFString*) *headers;
OFDataArray *body = [request body];
OFTCPSocket *socket;
OFHTTPClientResponse *response;
OFString *line, *version, *redirect, *connectionHeader;
|
| ︙ | ︙ | |||
370 371 372 373 374 375 376 377 378 379 | socket = [self OF_closeAndCreateSocketForRequest: request]; /* * As a work around for a bug with split packets in lighttpd when using * HTTPS, we construct the complete request in a buffer string and then * send it all at once. */ if ([URL query] != nil) requestString = [OFMutableString stringWithFormat: @"%s /%@?%@ HTTP/%@\r\n", | > > | < | < | 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 |
socket = [self OF_closeAndCreateSocketForRequest: request];
/*
* As a work around for a bug with split packets in lighttpd when using
* HTTPS, we construct the complete request in a buffer string and then
* send it all at once.
*/
path = [[URL path] stringByURLEncodingWithIgnoredCharacters: "/"];
if ([URL query] != nil)
requestString = [OFMutableString stringWithFormat:
@"%s /%@?%@ HTTP/%@\r\n",
of_http_request_method_to_string(method), path,
[[URL query] stringByURLEncoding],
[request protocolVersionString]];
else
requestString = [OFMutableString stringWithFormat:
@"%s /%@ HTTP/%@\r\n",
of_http_request_method_to_string(method), path,
[request protocolVersionString]];
headers = [[[request headers] mutableCopy] autorelease];
if (headers == nil)
headers = [OFMutableDictionary dictionary];
if ([headers objectForKey: @"Host"] == nil) {
|
| ︙ | ︙ |