diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-08-25 22:12:49 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-08-25 22:12:49 +0000 |
commit | ed332eeaf23a455ced679165c645b00a0f6e98de (patch) | |
tree | 4f465c7e11cdb2dc5d89e39f10782d3330ff62c2 /slirp.c | |
parent | 287ff16ad177dbf088d855a37dbfb0673b223674 (diff) | |
download | slirp-ed332eeaf23a455ced679165c645b00a0f6e98de.zip slirp-ed332eeaf23a455ced679165c645b00a0f6e98de.tar.gz slirp-ed332eeaf23a455ced679165c645b00a0f6e98de.tar.bz2 |
port redirection support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1054 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'slirp.c')
-rw-r--r-- | slirp.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -616,3 +616,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; +} |