qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v3 4/5] Add "restrict" and "ip" option to "user" net


From: Gleb Natapov
Subject: [Qemu-devel] [PATCH v3 4/5] Add "restrict" and "ip" option to "user" net option
Date: Thu, 08 Jan 2009 11:55:54 +0200
User-agent: StGIT/0.14.2

Expose new slirp capabilities to user through a command line options.

Signed-off-by: Gleb Natapov <address@hidden>
---

 net.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/net.c b/net.c
index 2399557..237d3ef 100644
--- a/net.c
+++ b/net.c
@@ -446,6 +446,8 @@ ssize_t qemu_sendv_packet(VLANClientState *vc1, const 
struct iovec *iov,
 /* slirp network adapter */
 
 static int slirp_inited;
+static int slirp_restrict;
+static char *slirp_ip;
 static VLANClientState *slirp_vc;
 
 int slirp_can_output(void)
@@ -482,7 +484,7 @@ static int net_slirp_init(VLANState *vlan, const char 
*model, const char *name)
 {
     if (!slirp_inited) {
         slirp_inited = 1;
-        slirp_init(0, NULL);
+        slirp_init(slirp_restrict, slirp_ip);
     }
     slirp_vc = qemu_new_vlan_client(vlan, model, name,
                                     slirp_receive, NULL, NULL);
@@ -500,7 +502,7 @@ void net_slirp_redir(const char *redir_str)
 
     if (!slirp_inited) {
         slirp_inited = 1;
-        slirp_init(0, NULL);
+        slirp_init(slirp_restrict, slirp_ip);
     }
 
     p = redir_str;
@@ -586,7 +588,7 @@ void net_slirp_smb(const char *exported_dir)
 
     if (!slirp_inited) {
         slirp_inited = 1;
-        slirp_init(0, NULL);
+        slirp_init(slirp_restrict, slirp_ip);
     }
 
     /* XXX: better tmp dir construction */
@@ -1553,6 +1555,12 @@ int net_client_init(const char *device, const char *p)
         if (get_param_value(buf, sizeof(buf), "hostname", p)) {
             pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf);
         }
+        if (get_param_value(buf, sizeof(buf), "restrict", p)) {
+            slirp_restrict = (buf[0] == 'y') ? 1 : 0;
+        }
+        if (get_param_value(buf, sizeof(buf), "ip", p)) {
+            slirp_ip = strdup(buf);
+        }
         vlan->nb_host_devs++;
         ret = net_slirp_init(vlan, device, name);
     } else





reply via email to

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