[tip:tools/kvm] kvm tools: Make tcp between guest/ host virtual ip work in UIP mode

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

 



Commit-ID:  7069d7bd471fbf6cf838159a124a73c3bcb18095
Gitweb:     http://git.kernel.org/tip/7069d7bd471fbf6cf838159a124a73c3bcb18095
Author:     Asias He <asias.hejun@xxxxxxxxx>
AuthorDate: Thu, 23 Aug 2012 20:47:50 +0800
Committer:  Pekka Enberg <penberg@xxxxxxxxxx>
CommitDate: Thu, 23 Aug 2012 19:41:31 +0300

kvm tools: Make tcp between guest/host virtual ip work in UIP mode

This pach makes tcp between 'guest ip' and 'host virtual ip' work in UIP mode.
(The defulat guest ip is 192.168.33.15, host virtual ip is 192.168.33.1)

  guest$ wget http://192.168.33.1/file
  guest$ ssh 192.168.33.1

Without this patch, user has to figure out the ip address of host's
interface (e.g. eth0) and use that ip address to access host.

With this patch, user can simply use the virtual host ip.

Signed-off-by: Asias He <asias.hejun@xxxxxxxxx>
Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx>
---
 tools/kvm/net/uip/tcp.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/tools/kvm/net/uip/tcp.c b/tools/kvm/net/uip/tcp.c
index 586a45c..68a1d6e 100644
--- a/tools/kvm/net/uip/tcp.c
+++ b/tools/kvm/net/uip/tcp.c
@@ -3,6 +3,7 @@
 #include <linux/virtio_net.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
+#include <arpa/inet.h>
 
 static int uip_tcp_socket_close(struct uip_tcp_socket *sk, int how)
 {
@@ -66,8 +67,11 @@ static struct uip_tcp_socket *uip_tcp_socket_alloc(struct uip_tx_arg *arg, u32 s
 
 	sk->fd				= socket(AF_INET, SOCK_STREAM, 0);
 	sk->addr.sin_family		= AF_INET;
-	sk->addr.sin_addr.s_addr	= dip;
 	sk->addr.sin_port		= dport;
+	sk->addr.sin_addr.s_addr	= dip;
+
+	if (ntohl(dip) == arg->info->host_ip)
+		sk->addr.sin_addr.s_addr = inet_addr("127.0.0.1");
 
 	ret = connect(sk->fd, (struct sockaddr *)&sk->addr, sizeof(sk->addr));
 	if (ret) {
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux