|
From: | Amos Kong |
Subject: | Re: [Qemu-devel] [PATCH 3/4] net: split hostname and service by last colon |
Date: | Fri, 02 Mar 2012 17:58:20 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110930 Thunderbird/7.0.1 |
On 02/03/12 11:38, Amos Kong wrote:
--- a/net.c +++ b/net.c @@ -84,7 +84,7 @@ static int get_str_sep(char *buf, int buf_size, const char **pp, int sep) const char *p, *p1; int len; p = *pp; - p1 = strchr(p, sep); + p1 = strrchr(p, sep); if (!p1) return -1; len = p1 - p;And what if the port isn't specified? I think you would erroneously interpret the last part of the IP address as port.
Hi Kevin, port must be specified in '-incoming' parameters and migrate monitor cmd.
qemu-kvm ... -incoming tcp:$host:$port (qemu) migrate -d tcp:$host:$port If use boot up guest by wrong cmdline, qemu will report an error msg.# ./x86_64-softmmu/qemu-system-x86_64 --enable-kvm -boot n -incoming tcp:2312::8272 -monitor stdio
qemu-system-x86_64: qemu: getaddrinfo: Name or service not known tcp_server_start: Invalid argument Migration failed. Exit code tcp:2312::8272(-22), exiting.
IPv6 address have paired colons, need more precision check.
------ parse_host_port() are used in four functions in net/socket.c: tcp_start_outgoing_migration() tcp_start_incoming_migration() net_socket_mcast_init() net_socket_udp_init() The argument type of parse_host_port() needs to be changed if we replace inet_aton/gethostbyname by getaddrinfo. So I will not change parse_host_port(), and verify Ipv6 addr in tcp_start_common without parse_host_port. -- Amos.
[Prev in Thread] | Current Thread | [Next in Thread] |