OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 *port++ = '\0'; | 206 *port++ = '\0'; |
207 if (url.port() != atol(port)) { | 207 if (url.port() != atol(port)) { |
208 return false; | 208 return false; |
209 } | 209 } |
210 } | 210 } |
211 | 211 |
212 // A.B.C.D or A.B.C.D/24 | 212 // A.B.C.D or A.B.C.D/24 |
213 int a, b, c, d, m; | 213 int a, b, c, d, m; |
214 int match = sscanf(item, "%d.%d.%d.%d/%d", &a, &b, &c, &d, &m); | 214 int match = sscanf(item, "%d.%d.%d.%d/%d", &a, &b, &c, &d, &m); |
215 if (match >= 4) { | 215 if (match >= 4) { |
216 uint32 ip = ((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | | 216 uint32_t ip = ((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | |
217 (d & 0xFF); | 217 (d & 0xFF); |
218 if ((match < 5) || (m > 32)) | 218 if ((match < 5) || (m > 32)) |
219 m = 32; | 219 m = 32; |
220 else if (m < 0) | 220 else if (m < 0) |
221 m = 0; | 221 m = 0; |
222 uint32 mask = (m == 0) ? 0 : (~0UL) << (32 - m); | 222 uint32_t mask = (m == 0) ? 0 : (~0UL) << (32 - m); |
223 SocketAddress addr(url.host(), 0); | 223 SocketAddress addr(url.host(), 0); |
224 // TODO: Support IPv6 proxyitems. This code block is IPv4 only anyway. | 224 // TODO: Support IPv6 proxyitems. This code block is IPv4 only anyway. |
225 return !addr.IsUnresolved() && | 225 return !addr.IsUnresolved() && |
226 ((addr.ipaddr().v4AddressAsHostOrderInteger() & mask) == (ip & mask)); | 226 ((addr.ipaddr().v4AddressAsHostOrderInteger() & mask) == (ip & mask)); |
227 } | 227 } |
228 | 228 |
229 // .foo.com | 229 // .foo.com |
230 if (*item == '.') { | 230 if (*item == '.') { |
231 size_t hostlen = url.host().length(); | 231 size_t hostlen = url.host().length(); |
232 return (hostlen > len) | 232 return (hostlen > len) |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 return (PROXY_VALUE[lhs] > PROXY_VALUE[rhs]); | 282 return (PROXY_VALUE[lhs] > PROXY_VALUE[rhs]); |
283 } | 283 } |
284 | 284 |
285 bool ParseProxy(const std::string& saddress, ProxyInfo* proxy) { | 285 bool ParseProxy(const std::string& saddress, ProxyInfo* proxy) { |
286 const size_t kMaxAddressLength = 1024; | 286 const size_t kMaxAddressLength = 1024; |
287 // Allow semicolon, space, or tab as an address separator | 287 // Allow semicolon, space, or tab as an address separator |
288 const char* const kAddressSeparator = " ;\t"; | 288 const char* const kAddressSeparator = " ;\t"; |
289 | 289 |
290 ProxyType ptype; | 290 ProxyType ptype; |
291 std::string host; | 291 std::string host; |
292 uint16 port; | 292 uint16_t port; |
293 | 293 |
294 const char* address = saddress.c_str(); | 294 const char* address = saddress.c_str(); |
295 while (*address) { | 295 while (*address) { |
296 size_t len; | 296 size_t len; |
297 const char * start = address; | 297 const char * start = address; |
298 if (const char * sep = strchr(address, kAddressSeparator)) { | 298 if (const char * sep = strchr(address, kAddressSeparator)) { |
299 len = (sep - address); | 299 len = (sep - address); |
300 address += len + 1; | 300 address += len + 1; |
301 while (*address != '\0' && ::strchr(kAddressSeparator, *address)) { | 301 while (*address != '\0' && ::strchr(kAddressSeparator, *address)) { |
302 address += 1; | 302 address += 1; |
(...skipping 13 matching lines...) Expand all Loading... |
316 buffer[len] = 0; | 316 buffer[len] = 0; |
317 | 317 |
318 char * colon = ::strchr(buffer, ':'); | 318 char * colon = ::strchr(buffer, ':'); |
319 if (!colon) { | 319 if (!colon) { |
320 LOG(LS_WARNING) << "Proxy address without port [" << buffer << "]"; | 320 LOG(LS_WARNING) << "Proxy address without port [" << buffer << "]"; |
321 continue; | 321 continue; |
322 } | 322 } |
323 | 323 |
324 *colon = 0; | 324 *colon = 0; |
325 char * endptr; | 325 char * endptr; |
326 port = static_cast<uint16>(strtol(colon + 1, &endptr, 0)); | 326 port = static_cast<uint16_t>(strtol(colon + 1, &endptr, 0)); |
327 if (*endptr != 0) { | 327 if (*endptr != 0) { |
328 LOG(LS_WARNING) << "Proxy address with invalid port [" << buffer << "]"; | 328 LOG(LS_WARNING) << "Proxy address with invalid port [" << buffer << "]"; |
329 continue; | 329 continue; |
330 } | 330 } |
331 | 331 |
332 if (char * equals = ::strchr(buffer, '=')) { | 332 if (char * equals = ::strchr(buffer, '=')) { |
333 *equals = 0; | 333 *equals = 0; |
334 host = equals + 1; | 334 host = equals + 1; |
335 if (_stricmp(buffer, "socks") == 0) { | 335 if (_stricmp(buffer, "socks") == 0) { |
336 ptype = PROXY_SOCKS5; | 336 ptype = PROXY_SOCKS5; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 path->AppendFolder("Mozilla"); | 390 path->AppendFolder("Mozilla"); |
391 path->AppendFolder("Firefox"); | 391 path->AppendFolder("Firefox"); |
392 #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) | 392 #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) |
393 FSRef fr; | 393 FSRef fr; |
394 if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType, | 394 if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType, |
395 kCreateFolder, &fr)) { | 395 kCreateFolder, &fr)) { |
396 LOG(LS_ERROR) << "FSFindFolder failed"; | 396 LOG(LS_ERROR) << "FSFindFolder failed"; |
397 return false; | 397 return false; |
398 } | 398 } |
399 char buffer[NAME_MAX + 1]; | 399 char buffer[NAME_MAX + 1]; |
400 if (0 != FSRefMakePath(&fr, reinterpret_cast<uint8*>(buffer), | 400 if (0 != FSRefMakePath(&fr, reinterpret_cast<uint8_t*>(buffer), |
401 ARRAY_SIZE(buffer))) { | 401 ARRAY_SIZE(buffer))) { |
402 LOG(LS_ERROR) << "FSRefMakePath failed"; | 402 LOG(LS_ERROR) << "FSRefMakePath failed"; |
403 return false; | 403 return false; |
404 } | 404 } |
405 path->SetFolder(std::string(buffer)); | 405 path->SetFolder(std::string(buffer)); |
406 path->AppendFolder("Firefox"); | 406 path->AppendFolder("Firefox"); |
407 #else | 407 #else |
408 char* user_home = getenv("HOME"); | 408 char* user_home = getenv("HOME"); |
409 if (user_home == NULL) { | 409 if (user_home == NULL) { |
410 return false; | 410 return false; |
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1294 if (!result) { | 1294 if (!result) { |
1295 // Either auto detection is not supported or we simply didn't | 1295 // Either auto detection is not supported or we simply didn't |
1296 // find any proxy, reset type. | 1296 // find any proxy, reset type. |
1297 proxy->type = rtc::PROXY_NONE; | 1297 proxy->type = rtc::PROXY_NONE; |
1298 } | 1298 } |
1299 } | 1299 } |
1300 return result; | 1300 return result; |
1301 } | 1301 } |
1302 | 1302 |
1303 } // namespace rtc | 1303 } // namespace rtc |
OLD | NEW |