Overview
Comment: | OFHTTPRequest: Disallow redirects from HTTPS to HTTP by default. Still works when setting redirectsFromHTTPSToHTTPAllowed. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
46881c3773a24122ae319e27ae720f6d |
User & Date: | js on 2011-03-30 00:36:27 |
Other Links: | manifest | tags |
Context
2011-03-30
| ||
17:43 | A few minor improvements in configure.ac. check-in: df6f3a1895 user: js tags: trunk | |
00:36 |
OFHTTPRequest: Disallow redirects from HTTPS to HTTP by default. Still works when setting redirectsFromHTTPSToHTTPAllowed. check-in: 46881c3773 user: js tags: trunk | |
00:03 | A few win32 fixes. check-in: 13a4dee1da user: js tags: trunk | |
Changes
Modified src/OFHTTPRequest.h from [ee98886554] to [3154174ff6].
︙ | ︙ | |||
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | */ @interface OFHTTPRequest: OFObject { OFURL *URL; of_http_request_type_t requestType; OFString *queryString; OFDictionary *headers; } #ifdef OF_HAVE_PROPERTIES @property (copy) OFURL *URL; @property (assign) of_http_request_type_t requestType; @property (copy) OFString *queryString; @property (copy) OFDictionary *headers; #endif /** * \return A new, autoreleased OFHTTPRequest */ + request; | > > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | */ @interface OFHTTPRequest: OFObject { OFURL *URL; of_http_request_type_t requestType; OFString *queryString; OFDictionary *headers; BOOL redirectsFromHTTPSToHTTPAllowed; } #ifdef OF_HAVE_PROPERTIES @property (copy) OFURL *URL; @property (assign) of_http_request_type_t requestType; @property (copy) OFString *queryString; @property (copy) OFDictionary *headers; @property (assign) BOOL redirectsFromHTTPSToHTTPAllowed; #endif /** * \return A new, autoreleased OFHTTPRequest */ + request; |
︙ | ︙ | |||
109 110 111 112 113 114 115 116 117 118 119 120 121 122 | - (void)setHeaders: (OFDictionary*)headers; /** * \return A dictionary with headers for the HTTP request. */ - (OFDictionary*)headers; /** * Performs the HTTP request and returns an OFHTTPRequestResult. * * \return An OFHTTPRequestResult with the result of the HTTP request */ - (OFHTTPRequestResult*)perform; | > > > > > > > > > > > > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | - (void)setHeaders: (OFDictionary*)headers; /** * \return A dictionary with headers for the HTTP request. */ - (OFDictionary*)headers; /** * Sets whether redirects from HTTPS to HTTP are allowed. * * \param allowed Whether redirects from HTTPS to HTTP are allowed */ - (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed; /** * \return Whether redirects from HTTPS to HTTP are allowed */ - (BOOL)redirectsFromHTTPSToHTTPAllowed; /** * Performs the HTTP request and returns an OFHTTPRequestResult. * * \return An OFHTTPRequestResult with the result of the HTTP request */ - (OFHTTPRequestResult*)perform; |
︙ | ︙ |
Modified src/OFHTTPRequest.m from [43e2c90ca2] to [5637b3f014].
︙ | ︙ | |||
117 118 119 120 121 122 123 124 125 126 127 128 129 130 | OF_SETTER(headers, headers_, YES, YES) } - (OFDictionary*)headers { OF_GETTER(headers, YES) } - (OFHTTPRequestResult*)perform { return [self performWithRedirects: 10]; } - (OFHTTPRequestResult*)performWithRedirects: (size_t)redirects | > > > > > > > > > > | 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | OF_SETTER(headers, headers_, YES, YES) } - (OFDictionary*)headers { OF_GETTER(headers, YES) } - (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed { redirectsFromHTTPSToHTTPAllowed = allowed; } - (BOOL)redirectsFromHTTPSToHTTPAllowed { return redirectsFromHTTPSToHTTPAllowed; } - (OFHTTPRequestResult*)perform { return [self performWithRedirects: 10]; } - (OFHTTPRequestResult*)performWithRedirects: (size_t)redirects |
︙ | ︙ | |||
253 254 255 256 257 258 259 | do { tmp++; } while (*tmp == ' '); value = [OFString stringWithCString: tmp]; | | | > > > | 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 | do { tmp++; } while (*tmp == ' '); value = [OFString stringWithCString: tmp]; if ((redirects > 0 && (status == 301 || status == 302 || status == 303) && [key caseInsensitiveCompare: @"Location"] == OF_ORDERED_SAME) && (redirectsFromHTTPSToHTTPAllowed || [scheme isEqual: @"http"] || ![value hasPrefix: @"http://"])) { OFURL *new; new = [[OFURL alloc] initWithString: value relativeToURL: URL]; [URL release]; URL = new; |
︙ | ︙ |
Modified src/OFString.m from [0f0b8d53a9] to [f081783cbe].
︙ | ︙ | |||
712 713 714 715 716 717 718 | if ([[url scheme] isEqual: @"file"]) { self = [[c alloc] initWithContentsOfFile: [url path] encoding: encoding]; [pool release]; return self; } | | < | 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | if ([[url scheme] isEqual: @"file"]) { self = [[c alloc] initWithContentsOfFile: [url path] encoding: encoding]; [pool release]; return self; } req = [OFHTTPRequest requestWithURL: url]; res = [req perform]; if ([res statusCode] != 200) @throw [OFHTTPRequestFailedException newWithClass: [req class] HTTPRequest: req statusCode: [res statusCode]]; |
︙ | ︙ |