| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); | 137 curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); |
| 138 curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); | 138 curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); |
| 139 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ReceiveData); | 139 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, ReceiveData); |
| 140 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &responseText); | 140 curl_easy_setopt(curl, CURLOPT_WRITEDATA, &responseText); |
| 141 // Request compressed data. Using any supported aglorithm | 141 // Request compressed data. Using any supported aglorithm |
| 142 curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, ""); | 142 curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, ""); |
| 143 curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, ReceiveHeader); | 143 curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, ReceiveHeader); |
| 144 curl_easy_setopt(curl, CURLOPT_HEADERDATA, &headerData); | 144 curl_easy_setopt(curl, CURLOPT_HEADERDATA, &headerData); |
| 145 | 145 |
| 146 struct curl_slist* headerList = 0; | 146 struct curl_slist* headerList = 0; |
| 147 for (HeaderList::const_iterator it = requestHeaders.begin(); | 147 for (auto it = requestHeaders.cbegin(); it != requestHeaders.cend(); ++it) |
| 148 it != requestHeaders.end(); ++it) | |
| 149 { | 148 { |
| 150 headerList = curl_slist_append(headerList, (it->first + ": " + it->second)
.c_str()); | 149 headerList = curl_slist_append(headerList, (it->first + ": " + it->second)
.c_str()); |
| 151 } | 150 } |
| 152 if (headerList) | 151 if (headerList) |
| 153 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerList); | 152 curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerList); |
| 154 | 153 |
| 155 result.status = ConvertErrorCode(curl_easy_perform(curl)); | 154 result.status = ConvertErrorCode(curl_easy_perform(curl)); |
| 156 result.responseStatus = headerData.status; | 155 result.responseStatus = headerData.status; |
| 157 result.responseText = responseText.str(); | 156 result.responseText = responseText.str(); |
| 158 for (std::vector<std::string>::iterator it = headerData.headers.begin(); | 157 for (auto it = headerData.headers.cbegin(); it != headerData.headers.cend();
++it) |
| 159 it != headerData.headers.end(); ++it) | |
| 160 { | 158 { |
| 161 // Parse header name and value out of something like "Foo: bar" | 159 // Parse header name and value out of something like "Foo: bar" |
| 162 std::string header = *it; | 160 std::string header = *it; |
| 163 size_t colonPos = header.find(':'); | 161 size_t colonPos = header.find(':'); |
| 164 if (colonPos != std::string::npos) | 162 if (colonPos != std::string::npos) |
| 165 { | 163 { |
| 166 size_t nameStart = 0; | 164 size_t nameStart = 0; |
| 167 size_t nameEnd = colonPos; | 165 size_t nameEnd = colonPos; |
| 168 while (nameEnd > nameStart && isspace(header[nameEnd - 1])) | 166 while (nameEnd > nameStart && isspace(header[nameEnd - 1])) |
| 169 nameEnd--; | 167 nameEnd--; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 183 } | 181 } |
| 184 } | 182 } |
| 185 } | 183 } |
| 186 | 184 |
| 187 if (headerList) | 185 if (headerList) |
| 188 curl_slist_free_all(headerList); | 186 curl_slist_free_all(headerList); |
| 189 curl_easy_cleanup(curl); | 187 curl_easy_cleanup(curl); |
| 190 } | 188 } |
| 191 return result; | 189 return result; |
| 192 } | 190 } |
| OLD | NEW |