Bug 1331777

Summary: IPv6 server address is not enclosed in brackets in HTTP CONNECT request
Product: Red Hat Enterprise Linux 7 Reporter: David Jaša <djasa>
Component: spice-gtkAssignee: Pavel Grunt <pgrunt>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: cfergeau, pgrunt, rbalakri, rduda, tpelka
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: spice-gtk-0.31-4.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1503117 (view as bug list) Environment:
Last Closed: 2016-11-04 01:18:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1503117    

Description David Jaša 2016-04-29 13:33:25 UTC
Description of problem:
When connecting over proxy to IPv6 host, proxy returns 400 Bad Request because spice-gtk sends the address in the request without the enclosing brackets, e.g.:
CONNECT 1234::1122:33ff:fe44:5566:5900 HTTP/1.0
instead of correct:
CONNECT [1234::1122:33ff:fe44:5566]:5900 HTTP/1.0

Version-Release number of selected component (if applicable):
spice-gtk3-0.26-8.el7.x86_64
glib-networking-2.42.0-1.el7.x86_64
glib2-2.46.2-3.el7.x86_64

How reproducible:
always

Steps to Reproduce:
1. run SPICE_PROXY=http://proxy.example.com remote-viewer spice://[ipv6]:port
(ipv6 nor any VM has to be active, error takes place before proxy trying to connect to it)
2.
3.

Actual results:
400 Bad Request

Expected results:
successful connection or different error

Additional info:

Comment 1 Christophe Fergeau 2016-05-04 10:15:52 UTC
Maybe a bug in proxy_lookup_ready() in spice-session.c, but this probably means spice_uri_create() (which returns a string of the form "spice://$host:$port") has the same issue.
Or a bug in wocky-http-proxy.c:create_request(), which could try to use g_inet_address_new_from_string () on g_proxy_address_get_destination_hostname() to make sure it's not an ipv6 address it needs to bracket.

Comment 2 Pavel Grunt 2016-06-21 13:29:58 UTC
As Christophe said, the problem was missing "[]" around the hostname
Fix was pushed upstream:
ea37f06eaa11b6307c797895aeb85d87d142625a

Comment 6 errata-xmlrpc 2016-11-04 01:18:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2229.html