<!doctype html><html><head><title></title><style type="text/css">
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body>PS: And of course, file names with white spaces from the CLI are encoded fine as well, provided that they are not mistaken for an MRL, a CLI option, a input option or interpreted by the shell.<br><br><div class="gmail_quote">Le 9 octobre 2020 11:21:11 GMT+03:00, "Rémi Denis-Courmont" <remi@remlab.net> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
When I open a playlist with a whitespace in the URL, it gets turned into %20. When I follow a redirect, ditto.<br><br>URL on CLI don't work nicely, never will, no matter how much it annoys me that I can't just do:<br># vlc <a href="https://tube.example.com/videos/?item=1234&playlist=abcd">https://tube.example.com/videos/?item=1234&playlist=abcd</a><br>It can perhaps be improved but access is not the place for CLI specific hacks.<br><br><div class="gmail_quote">Le 9 octobre 2020 11:01:36 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div>"VLC should automatically replace spaces with %20 like all browsers do"<br></div><div><br></div><div>It's not the case when I type: ./vlc "<a href="https://server/file">https://server/file</a> name.mp3"<br></div><div><br></div><div>So, how can you say that #3435 is fixed?<br></div><div><br></div><div>You are right about one point, it should not be done in http modules, but at a higher level when we know the url come from an user.<br></div><div><br></div><div><br></div><div>On Fri, Oct 9, 2020, at 09:59, Rémi Denis-Courmont wrote:<br></div><blockquote type="cite" id="qt" style=""><div>Hi,<br></div><div><br></div><div>#3435 is fixed. VLC can parse file paths and insufficiently encoded URLs from playlists or redirects just fine. We have to do the fixup there in the producer so that relative-to-absolute resolution works.m properly.<br></div><div><br></div><div>Validation must be done in access because it can't be done earlier due to the different rules for different MRL schemes.<br></div><div><br></div><div class="qt-gmail_quote"><div>Le 9 octobre 2020 10:41:28 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote class="qt-gmail_quote" style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><div>I remember a previous discussion where we said it was the responsibility of the access modules to do this fixup.<br></div><div><br></div><div>cf. <a href="https://trac.videolan.org/vlc/ticket/18991">https://trac.videolan.org/vlc/ticket/18991</a> and <a href="https://git.videolan.org/?p=vlc.git;a=commit;h=762ca1e8a01278b34ddb34765f3339690aad5d2e">https://git.videolan.org/?p=vlc.git;a=commit;h=762ca1e8a01278b34ddb34765f3339690aad5d2e</a><br></div><div><br></div><div>I'm not sure that URLs are fixed up at this point.<br></div><div><br></div><div>How do you propose to fix <a href="https://trac.videolan.org/vlc/ticket/3435" class="qt-trac-id">#3435</a> then? Because you said it was fixed but it is *not*. VLC can't handle unvalid http URLs with a " ". Every other player or browsers can.<br></div><div><br></div><div>On Fri, Oct 9, 2020, at 09:26, Rémi Denis-Courmont wrote:<br></div><blockquote type="cite" id="qt-qt" style=""><div>URLs are already fixed up when they get to this point. Fixing up URLs twice is a recipe for disaster. We've tried.<br></div><div><br></div><div>-1<br></div><div><br></div><div class="qt-qt-gmail_quote"><div>Le 9 octobre 2020 09:56:58 GMT+03:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote class="qt-qt-gmail_quote" style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;"><pre class="qt-qt-k9mail"><div>This will allow VLC to open unvalid URLs (using a space instead of the<br></div><div>%20 encoding, for example). Every other browsers or players are doing<br></div><div>this fixup.<br></div><div><br></div><div>Fixes #3435<hr> modules/access/http/access.c | 12 ++++++++++--<br></div><div> 1 file changed, 10 insertions(+), 2 deletions(-)<br></div><div><br></div><div>diff --git a/modules/access/http/access.c b/modules/access/http/access.c<br></div><div>index a3805d0d426..123daaf51d3 100644<br></div><div>--- a/modules/access/http/access.c<br></div><div>+++ b/modules/access/http/access.c<br></div><div>@@ -171,19 +171,27 @@ static int Open(vlc_object_t *obj)<br></div><div>     struct vlc_url_t crd_url;<br></div><div>     char *psz_realm = NULL;<br></div><div> <br></div><div>-    vlc_UrlParse(&crd_url, access->psz_url);<br></div><div>+    char *url_fixup = vlc_uri_fixup(access->psz_url);<br></div><div>+    if (url_fixup == NULL)<br></div><div>+        goto error;<br></div><div>+<br></div><div>+    vlc_UrlParse(&crd_url, url_fixup);<br></div><div>     vlc_credential_init(&crd, &crd_url);<br></div><div> <br></div><div>     sys->manager = vlc_http_mgr_create(obj, jar);<br></div><div>     if (sys->manager == NULL)<br></div><div>+    {<br></div><div>+        free(url_fixup);<br></div><div>         goto error;<br></div><div>+    }<br></div><div> <br></div><div>     char *ua = var_InheritString(obj, "http-user-agent");<br></div><div>     char *referer = var_InheritString(obj, "http-referrer");<br></div><div>     bool live = var_InheritBool(obj, "http-continuous");<br></div><div> <br></div><div>     sys->resource = (live ? vlc_http_live_create : vlc_http_file_create)(<br></div><div>-        sys->manager, access->psz_url, ua, referer);<br></div><div>+        sys->manager, url_fixup, ua, referer);<br></div><div>+    free(url_fixup);<br></div><div>     free(referer);<br></div><div>     free(ua); <br></div></pre></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></blockquote><div><br></div></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></blockquote><div><br></div></blockquote></div></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>