<br><br><div class="gmail_quote">2009/12/18 David Woodhouse <span dir="ltr">&lt;<a href="mailto:dwmw2@infradead.org" target="_blank">dwmw2@infradead.org</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


<div><div></div><div>On Fri, 2009-12-18 at 11:43 +1300, Pál Dorogi wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I&#39;ve created a patch for the openconnect-2.12 to allow connect to the<br>
&gt; target host through a Proxy.<br>
&gt; It&#39;s just a simple patch without any Proxy authentication feature.<br>
&gt; More info can be found in the<br>
&gt; <a href="http://ilapstech.blogspot.com/2009/12/add-proxy-support-to-openconnect.html" target="_blank">http://ilapstech.blogspot.com/2009/12/add-proxy-support-to-openconnect.html</a><br>
<br>
</div></div><div><div></div><div>Looks good; thanks. A few comments...<br>
<br>
It doesn&#39;t look like you&#39;ve fixed the NetworkManager authentication<br>
dialog to set the default proxy port, as main.c does. Perhaps it&#39;s<br>
better to handle that in the connection code itself<br>
(vpninfo-&gt;proxy_port?:&quot;8080&quot;) rather than requiring the setup as you<br>
have? But I&#39;ll settle for anything that doesn&#39;t make the NetworkManager<br>
GUI segfault.<br>
<br></div></div></blockquote><div>I just had a quick look at source and I haven&#39;t tried to understand all the logic of all of the codes. I just pick up those things which I needed urgently as this was just a quick solution for my problem.:) To tell the truth, I didn&#39;t know that this great stuff is supporting the NetworkManager either.:)<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div>
Don&#39;t you want to disable DTLS support when you connect through a proxy?<br>
If direct TCP connections to port 443 don&#39;t work, then UDP surely isn&#39;t<br>
going to either -- even if the server _would_ accept DTLS connections<br>
from a different IP address to the CSTP connection, which I suspect it<br>
doesn&#39;t.<br></div></div></blockquote><div>Yep, you must be right. <br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div>

<br>
You can&#39;t necessarily just use strchr(proxy,&#39;:&#39;) because that&#39;s going to<br>
break parsing of IPv6 addresses. We need to make that work with a string<br>
like &#39;[2001:8b0:10b:1:21d:7dff:fe04:dbe2]:8080&#39;<br></div></div></blockquote><div>Yep, that&#39;s possible but I prefer just the full hostname based url format instead, coz<br>the bunch of other features handling could make the source too complex.<br>
But, the protocol://hostname:port  based would be acceptable too.<br>Of course I meant this above for proxy and not for the target host.<br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div>
+ /* else the default one (1080) which is already set  will be used  */<br>
Er, 8080? This isn&#39;t SOCKS support.<br></div></div></blockquote><div>Yep, It&#39;s  8080 as it&#39;s set in the header file.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div>
<br>
Shouldn&#39;t process_http_proxy() return zero for success, not 1?<br></div></div></blockquote><div>Probably. I&#39;ve learnt the C in the old days, where the TRUE was 1 and the FALSE is 0. So, I tried to use the mix of the logic of your codes and my old days things.:)<br>
But the &quot;... &lt; 0&quot; and the &quot;return 0;&quot; would have better choice.:) <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div><br>
This is going to immediately lead to feature requests / bug reports<br>
about honouring an $http_proxy environment variable, and/or using<br>
something like libproxy to &quot;do the right thing&quot; according to system-wide<br>
configuration, including proxy autoconfig. Using libproxy ought to be<br>
fairly simple, and it&#39;s small and simple enough that I think it&#39;s<br>
reasonable to declare it an unconditional build dependency. Although<br>
it&#39;s simple enough to have a fallback which just uses<br>
getenv(&quot;http_proxy&quot;) if libproxy isn&#39;t available at build time.<br></div></div></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div>
<br>
It&#39;s going to lead to requests for SOCKS support too, but I can probably<br>
do that later, if you want.<br></div></div></blockquote><div>I don&#39;t think it&#39;s necessary as I think the SOCKS proxy is not commonly used nowadays, but I might be false. <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div>
<br>
Oh, and ideally you&#39;d send a patch made from the git repository, which<br>
wouldn&#39;t include changes to the version.c file. But just excluding<br>
version.c from the patch works too.<br>
<br>
--<br>
dwmw2<br>
<br></div></div></blockquote><div>OK, I&#39;ll clean my patch a bit and add the getenv support too.<br>Cheers,<br><br>Pal  <br></div></div><br>