]> git.proxmox.com Git - mirror_qemu.git/blobdiff - slirp/slirp.c
port redirection support
[mirror_qemu.git] / slirp / slirp.c
index 405647b48ce54d9e8a124b21bd62bc2e8b10a454..bc2b15509aea8a347ef98a3ba4834ea40c8c741c 100644 (file)
@@ -617,3 +617,18 @@ void if_encap(const uint8_t *ip_data, int ip_data_len)
     memcpy(buf + sizeof(struct ethhdr), ip_data, ip_data_len);
     slirp_output(buf, ip_data_len + ETH_HLEN);
 }
+
+int slirp_redir(int is_udp, int host_port, 
+                struct in_addr guest_addr, int guest_port)
+{
+    if (is_udp) {
+        if (!udp_listen(htons(host_port), guest_addr.s_addr, 
+                        htons(guest_port), 0))
+            return -1;
+    } else {
+        if (!solisten(htons(host_port), guest_addr.s_addr, 
+                      htons(guest_port), 0))
+            return -1;
+    }
+    return 0;
+}