<div class="im">Hello,<br><br>== Bug Summary ==<br><br>When opening a network stream with VLC, on some servers requiring a specific user-agent (like <a href="http://38.108.112.114:8810">38.108.112.114:8810</a> requiring KPeerClient), it doesn't work, VLC doesn't even have time to send the user-agent information.<br>
In fact it works one time out of something like 20, it is kind of random. I think this is due to the server shutting down the connection as soon as it receive the first packet (GET) and seeing there is not the wanted user-agent.<br>
I checked with a packet sniffer and then by looking at the source code and VLC does in fact send the user-agent in a different packet, just after the GET packet, causing this problem.<br><br>== How to fix ==<br><br>
In the file modules/access/http.c line around 12XX (function Request)<br>I think there should be only a single call to the net_Printf function in order to send all the informations in a single packet and thus preventing this problem.<br>
To do so, a String or something similar could be used and be filled out with the packet data little by little before being sent (basically, str = "GET ....", then str += "User-agent: ....", and finally net_Printf(....,str)) or something like that.<br>
As I've never worked on VLC source code, I'm not really sure the best way of doing it, that's why I sent this e-mail, hoping I gave enough information for someone to fix this problem easily.<br><br>== Where to fix ==<br>
<br> 
[...]<br>
             net_Printf( p_access, p_sys->fd, pvs,<br>
                         "GET %s HTTP/1.%d\r\nHost: %s:%d\r\n",<br>
                         psz_path, p_sys->i_version, p_sys->url.psz_host,<br>
                         p_sys->url.i_port );<br>
         }<br>
         else<br>
         {<br>
             net_Printf( p_access, p_sys->fd, pvs,<br>
                         "GET %s HTTP/1.%d\r\nHost: %s\r\n",<br>
                         psz_path, p_sys->i_version, p_sys->url.psz_host );<br>
         }<br>
     }<br>
     /* User Agent */<br>
     net_Printf( p_access, p_sys->fd, pvs,<br>
                 "User-Agent: %s\r\n",<br>
                 p_sys->psz_user_agent );<br> 
[...]<br>
<br>
</div>
Best Regards,<br>Robin<br>