<div dir="ltr"><div><div>Hi Galen,<br><br></div>I agree about relative URLs. I could try that and check it fixes the VNC problem but I can not reproduce the bug with upstream code.<br><br></div>About your patch, please, go ahead and send it here. I&#39;d be glad to merge it upstream.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 11, 2017 at 12:09 PM, Galen Pospisil <span dir="ltr">&lt;<a href="mailto:galen.m.pospisil@gmail.com" target="_blank">galen.m.pospisil@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">AFAIK, relative would be a better way to do things all around.  I tried to address this earlier, but I think the way I went about it was less than ideal.  I don&#39;t know much about encoding. In any case, relative urls and port numbers would work best, as even with a reverse proxy in front of kimchi, the browser will get the correct port.<div><br></div><div>See: <a href="https://github.com/kimchi-project/kimchi/commit/b14fb611d3d79904694a14e67f28db8f9c8acf40" target="_blank">https://github.com/kimchi-<wbr>project/kimchi/commit/<wbr>b14fb611d3d79904694a14e67f28db<wbr>8f9c8acf40</a><div><br></div><div><br></div></div><div><div class="h5"><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 11, 2017 at 8:51 AM, Patrick Barrett <span dir="ltr">&lt;<a href="mailto:patrick@psbarrett.com" target="_blank">patrick@psbarrett.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, that would also fix it in this case, but as far as I can tell it<br>
would still be technically broken, there should not be a second &#39;?&#39; in<br>
the first page URL. I don&#39;t have access to test it while I&#39;m at work,<br>
but AFAIK if you get rid of the slash and change the &#39;?&#39; to &#39;&amp;&#39; it<br>
should also work and be properly formatted, I&#39;m just not totally sure if<br>
it&#39;s semantically correct.<br>
<span class="m_5699627381032001600HOEnZb"><font color="#888888"><br>
--<br>
  Patrick Barrett<br>
  <a href="mailto:patrick@psbarrett.com" target="_blank">patrick@psbarrett.com</a><br>
</font></span><div class="m_5699627381032001600HOEnZb"><div class="m_5699627381032001600h5"><br>
On Mon, Sep 11, 2017, at 09:42, Aline Manera wrote:<br>
&gt; Ops... I haven&#39;t tested serial console before and with this patch it is<br>
&gt; broken.<br>
&gt;<br>
&gt; Analyzing the code and your detailed explanation, don&#39;t we just need to<br>
&gt; make the path relative instead of absolute?<br>
&gt; So instead referring to &#39;/websockify&#39; it would be &#39;websockify&#39;<br>
&gt;<br>
&gt; On 09/11/2017 11:16 AM, Aline Manera wrote:<br>
&gt; &gt; Hi Patrick,<br>
&gt; &gt;<br>
&gt; &gt; Thanks for this patch!<br>
&gt; &gt;<br>
&gt; &gt; I could not reproduce the problem but I tested this patch and it does<br>
&gt; &gt; not break anything, ie, VNC continue working for me.<br>
&gt; &gt;<br>
&gt; &gt; Could you check it solves the issue?<br>
&gt; &gt;<br>
&gt; &gt; Regards,<br>
&gt; &gt; Aline Manera<br>
&gt; &gt;<br>
&gt; &gt; On 09/03/2017 11:44 AM, <a href="mailto:patrick@psbarrett.com" target="_blank">patrick@psbarrett.com</a> wrote:<br>
&gt; &gt;&gt; From: Patrick Barrett &lt;<a href="mailto:patrick@psbarrett.com" target="_blank">patrick@psbarrett.com</a>&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Currently kimchi directs you to<br>
&gt; &gt;&gt; `<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__hera.lan-3A8001_plugins_kimchi_novnc_vnc-5Fauto.html-3Fport-3D8001-26path-3D_websockify-3Ftoken-3D-5B...-5D-26encrypt-3D1&amp;d=DwIBaQ&amp;c=jf_iaSHvJObTbx-siA1ZOg&amp;r=IH2IbOioVtBemYyjWtO2FV71Y6c8-CWLHAPDI5dc2gs&amp;m=55perbMCcacetij4ysJl2fw3_svtUDOuvY1ooDsEu94&amp;s=VTJ3PxuzW_QFrrxibrpU87drdUNAlQrSbpwXNlXMsZ4&amp;e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint<wbr>.com/v2/url?u=https-3A__hera.<wbr>lan-3A8001_plugins_kimchi_<wbr>novnc_vnc-5Fauto.html-3Fport-<wbr>3D8001-26path-3D_websockify-<wbr>3Ftoken-3D-5B...-5D-26encrypt-<wbr>3D1&amp;d=DwIBaQ&amp;c=jf_iaSHvJObTbx-<wbr>siA1ZOg&amp;r=IH2IbOioVtBemYyjWtO2<wbr>FV71Y6c8-CWLHAPDI5dc2gs&amp;m=55pe<wbr>rbMCcacetij4ysJl2fw3_svtUDOuvY<wbr>1ooDsEu94&amp;s=VTJ3PxuzW_QFrrxibr<wbr>pU87drdUNAlQrSbpwXNlXMsZ4&amp;e=</a><br>
&gt; &gt;&gt; `<br>
&gt; &gt;&gt; when you click on &#39;View Console`, however this is improperly encoded<br>
&gt; &gt;&gt; and Firefox guesses that the second `?` was meant to be an `&amp;`. This<br>
&gt; &gt;&gt; means that `token` and `encrypt` are sent to the current page rather<br>
&gt; &gt;&gt; than being used for the websocket path.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; It seems that noVNC should &quot;work&quot; with this, but there&#39;s another bug<br>
&gt; &gt;&gt; (or kimchi is using path improperly, not sure, could be fixed in<br>
&gt; &gt;&gt; either AFAIK) in noVNC where it assumes path is relative and prepends<br>
&gt; &gt;&gt; a `/` to it, which then when it uses and anchor tag to reformat the<br>
&gt; &gt;&gt; URL (I think) in `WebUtil.injectParamIfMissing`<wbr>. However when path<br>
&gt; &gt;&gt; already has a leading `/` it interprets &quot;websockify&quot; as the host<br>
&gt; &gt;&gt; (that is it becomes `//websockify/`) and the path becomes just<br>
&gt; &gt;&gt; `/?token=[...]`.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; That code path is only executed when token is part of the original<br>
&gt; &gt;&gt; URL, so this commit urlencodes the path to prevent the<br>
&gt; &gt;&gt; interpretation of the token in the original URL and use it only in<br>
&gt; &gt;&gt; path. This could also be fixed by changing the `?` to an `&amp;` and<br>
&gt; &gt;&gt; removing the leading `/`. However, `encodeURIcomponent` should<br>
&gt; &gt;&gt; probably be used regardless since parts of path can come from a<br>
&gt; &gt;&gt; config file.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; **Caveats**<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; This is **UNTESTED** because I don&#39;t know how to build it all and<br>
&gt; &gt;&gt; wanted to just get this since it&#39;s simple, but I have manually<br>
&gt; &gt;&gt; tested it with the URL I believe this should produce.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I wasn&#39;t totally sure about the encrypt param because it was just<br>
&gt; &gt;&gt; another &amp; param in the URL and there&#39;s nothing to indicate where if<br>
&gt; &gt;&gt; it&#39;s part of path or part of the page url. However, it doesn&#39;t seem<br>
&gt; &gt;&gt; to make a visible difference where it&#39;s put, or even if it is<br>
&gt; &gt;&gt; removed. (This would also make a difference to the alternate<br>
&gt; &gt;&gt; solution I suggested above.)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Patrick Barrett (1):<br>
&gt; &gt;&gt;    urlencode path<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;   ui/js/src/kimchi.api.js | 24 ++++++++++++++----------<br>
&gt; &gt;&gt;   1 file changed, 14 insertions(+), 10 deletions(-)<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; ______________________________<wbr>_________________<br>
&gt; &gt; Kimchi-devel mailing list<br>
&gt; &gt; <a href="mailto:Kimchi-devel@ovirt.org" target="_blank">Kimchi-devel@ovirt.org</a><br>
&gt; &gt; <a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman<wbr>/listinfo/kimchi-devel</a><br>
&gt; &gt;<br>
&gt;<br>
______________________________<wbr>_________________<br>
Kimchi-devel mailing list<br>
<a href="mailto:Kimchi-devel@ovirt.org" target="_blank">Kimchi-devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/mailman<wbr>/listinfo/kimchi-devel</a><br>
</div></div></blockquote></div><br></div></div></div></div>
<br>______________________________<wbr>_________________<br>
Kimchi-devel mailing list<br>
<a href="mailto:Kimchi-devel@ovirt.org">Kimchi-devel@ovirt.org</a><br>
<a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/kimchi-devel</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Aline Manera<br></div>
</div>