)]}'
{"nova/console/websocketproxy.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3a1d7aed7ea1a2a6bccd0cc02cbf415c73854155","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        expected_origin_hostname \u003d self.headers.getheader(\u0027Host\u0027)"},{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_38493d32","line":103,"updated":"2015-06-15 09:04:17.000000000","message":"maybe you want to check the existence of both \"[\" and \"]\" in expected_origin_hostname here, but current code just checks the existence of \"]\" only like:\n\n \u003e\u003e\u003e hostname \u003d \"2001:db8::1]:6080\"\n \u003e\u003e\u003e \u0027[\u0027 and \u0027]\u0027 in hostname\n True\n\nso here should be\n\n if \u0027[\u0027 in e and \u0027]\u0027 in e:\n\nor something.","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"7f54c346e9b30305dc2ea8e7a8dc542e4f43b9ae","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        expected_origin_hostname \u003d self.headers.getheader(\u0027Host\u0027)"},{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_781105ac","line":103,"in_reply_to":"fa32b979_38493d32","updated":"2015-06-15 09:15:00.000000000","message":"Nice catch!","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"29480ec531dac639579827a35c381efd3ca5cfe3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        expected_origin_hostname \u003d self.headers.getheader(\u0027Host\u0027)"},{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_f873d54b","line":103,"in_reply_to":"fa32b979_38493d32","updated":"2015-06-15 09:11:49.000000000","message":"Yes, good catch Ken !","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"7196fbf0658c9841b1e9258a3b797aed964fda8c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        expected_origin_hostname \u003d self.headers.getheader(\u0027Host\u0027)"},{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_98c72912","line":103,"in_reply_to":"fa32b979_781105ac","updated":"2015-06-15 09:17:32.000000000","message":"Thanks Ken for spotting it. I\u0027ll update the patch.","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dd8f9e9845760dba4e9a3fb3358ec44a38ca3bea","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"},{"line_number":107,"context_line":"        origin_url \u003d self.headers.getheader(\u0027Origin\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_6a07a818","line":104,"updated":"2015-06-09 12:06:58.000000000","message":"Yep good way to match the address. Thanks","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"13431715fba0400090756d1e6fb2dc0b6257cd3c","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"},{"line_number":107,"context_line":"        origin_url \u003d self.headers.getheader(\u0027Origin\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d24ef0c0","line":104,"in_reply_to":"3afb71cf_6a07a818","updated":"2015-06-15 08:19:06.000000000","message":"Please use:\nfrom oslo_utils import netutils\n\nif netutils.is_valid_ipv6(host):\n...","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"de78ecd93173bac7d15972dd1a7b998f83a3d14d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"},{"line_number":107,"context_line":"        origin_url \u003d self.headers.getheader(\u0027Origin\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_6db945e9","line":104,"in_reply_to":"fa32b979_d206f01f","updated":"2015-06-15 08:38:45.000000000","message":"I agree with Nikola. Thanks all for reviewing the patch.","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"c771145b382240cf1471d868be6b9226916ddeb7","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if \u0027:\u0027 in expected_origin_hostname:"},{"line_number":102,"context_line":"            e \u003d expected_origin_hostname"},{"line_number":103,"context_line":"            if \u0027[\u0027 and \u0027]\u0027 in e:"},{"line_number":104,"context_line":"                expected_origin_hostname \u003d e.split(\u0027]\u0027)[0][1:]"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                expected_origin_hostname \u003d e.split(\u0027:\u0027)[0]"},{"line_number":107,"context_line":"        origin_url \u003d self.headers.getheader(\u0027Origin\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d206f01f","line":104,"in_reply_to":"fa32b979_d24ef0c0","updated":"2015-06-15 08:28:41.000000000","message":"Gary - That\u0027s not what this does though - it extracts the host from an ipv6 address, there is no convenience method for this in oslo","commit_id":"966e1b93343900c6c1f96ad2ee9abbd22454b6ac"}]}
