qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/4] net: split hostname and service by last col


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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]