• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to get proxy settings for use with CFStream?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to get proxy settings for use with CFStream?


  • Subject: Re: How to get proxy settings for use with CFStream?
  • From: Josh Graessley <email@hidden>
  • Date: Tue, 28 May 2013 12:59:02 -0700

Not my area of expertise, so I’m a little fuzzy on the details, but maybe this will give you a hint that will help.

Some proxy settings may involve running a java script to evaluate what proxy to use. I think that’s what kCFProxyTypeAutoConfigurationURL means. You may need to use something like CFNetworkCopyProxiesForAutoConfigurationScript to run the script.

If there’s any way you can use NSURLRequest/NSURLConnection instead, the world of hurt known as proxies will no longer be your problem :)

-josh

On May 28, 2013, at 12:51 PM, Jens Alfke <email@hidden> wrote:

> I have some code that uses CFReadStreamCreateForHTTPRequest to send an HTTP request. I have a bug report that this fails with a POSIX error 60 (ECONN) in an environment where a proxy server has to be used to reach outside HTTP servers. I looked at the docs and sure ‘nuf, CFStream doesn’t use the system proxy settings the way NSURLConnection does. Crap.
>
> I added the following code, but the user reports that it still doesn’t work for him:
>
>     CFDictionaryRef proxySettings = CFNetworkCopySystemProxySettings();
>     if (proxySettings) {
>         CFArrayRef proxies = CFNetworkCopyProxiesForURL((__bridge CFURLRef)url, proxySettings);
>         if (CFArrayGetCount(proxies) > 0) {
>             CFTypeRef proxy = CFArrayGetValueAtIndex(proxies, 0);
>             NSLog(@"Changes feed using proxy %@", proxy);
>             bool ok = CFReadStreamSetProperty(cfInputStream, kCFStreamPropertyHTTPProxy, proxy);
>             Assert(ok);
>             CFRelease(proxies);
>         }
>         CFRelease(proxySettings);
>     }
>
> The output of that NSLog shows that the proxy dictionary he’s getting is:
>
> 	{ kCFProxyAutoConfigurationURLKey = "http://bgproxy.XXXX/wpad.dat";;
> 	  kCFProxyTypeKey = kCFProxyTypeAutoConfigurationURL; }
>
> This doesn’t look right. It’s a specification of where to read the proxy settings from, not an actual proxy setting, and it doesn’t match the proxy keys defined in the CFStream documentation (i.e. “kCFStreamPropertySOCKS*”.) So how do I get the actual proxy settings?
>
> (This is complicated by the fact that I don’t have access to a firewalled network that uses an HTTP proxy, so I can’t reproduce the problem directly.)
>
> —Jens
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Macnetworkprog mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: How to get proxy settings for use with CFStream?
      • From: Jens Alfke <email@hidden>
References: 
 >How to get proxy settings for use with CFStream? (From: Jens Alfke <email@hidden>)

  • Prev by Date: How to get proxy settings for use with CFStream?
  • Next by Date: Re: How to get proxy settings for use with CFStream?
  • Previous by thread: How to get proxy settings for use with CFStream?
  • Next by thread: Re: How to get proxy settings for use with CFStream?
  • Index(es):
    • Date
    • Thread