aboutsummaryrefslogtreecommitdiff
path: root/socket.c
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2011-07-20 12:20:18 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2011-07-23 10:19:50 -0500
commit68a340053c766490b3c7460e543aebcc4bee4efa (patch)
treee8a4e80e36569cb2bc6047f048c54a46a6a5f3ed /socket.c
parentaf35375b6d600cf553f0d0748b2a10ff7dbf6142 (diff)
downloadslirp-68a340053c766490b3c7460e543aebcc4bee4efa.zip
slirp-68a340053c766490b3c7460e543aebcc4bee4efa.tar.gz
slirp-68a340053c766490b3c7460e543aebcc4bee4efa.tar.bz2
slirp: Forward ICMP echo requests via unprivileged socketsv0.15.0-rc0
Linux 3.0 gained support for unprivileged ICMP ping sockets. Use this feature to forward guest pings to the outer world. The host admin has to set the ping_group_range in order to grant access to those sockets. To allow ping for the users group (GID 100): echo 100 100 > /proc/sys/net/ipv4/ping_group_range Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'socket.c')
-rw-r--r--socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/socket.c b/socket.c
index c920000..00b6bc2 100644
--- a/socket.c
+++ b/socket.c
@@ -65,6 +65,8 @@ void sofree(struct socket *so)
slirp->tcp_last_so = &slirp->tcb;
} else if (so == slirp->udp_last_so) {
slirp->udp_last_so = &slirp->udb;
+ } else if (so == slirp->icmp_last_so) {
+ slirp->icmp_last_so = &slirp->icmp;
}
m_free(so->so_m);