diff mbox

slirp: fix pinging the virtual ipv4 DNS server

Message ID 20170429124715.5xrpapuedv6nnpnd@var.youpi.perso.aquilenet.fr
State New
Headers show

Commit Message

Samuel Thibault April 29, 2017, 12:47 p.m. UTC
so that people do not think it is not working at least basically.
    
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Comments

Philippe Mathieu-Daudé April 29, 2017, 10:36 p.m. UTC | #1
On 04/29/2017 09:47 AM, Samuel Thibault wrote:
> so that people do not think it is not working at least basically.
>
> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>
> diff --git a/slirp/ip_icmp.c b/slirp/ip_icmp.c
> index 5ffc7a683d..0b667a429a 100644
> --- a/slirp/ip_icmp.c
> +++ b/slirp/ip_icmp.c
> @@ -152,8 +152,9 @@ icmp_input(struct mbuf *m, int hlen)
>    switch (icp->icmp_type) {
>    case ICMP_ECHO:
>      ip->ip_len += hlen;	             /* since ip_input subtracts this */
> -    if (ip->ip_dst.s_addr == slirp->vhost_addr.s_addr) {
> -      icmp_reflect(m);
> +    if (ip->ip_dst.s_addr == slirp->vhost_addr.s_addr ||
> +        ip->ip_dst.s_addr == slirp->vnameserver_addr.s_addr) {
> +        icmp_reflect(m);
>      } else if (slirp->restricted) {
>          goto freeit;
>      } else {
>
diff mbox

Patch

diff --git a/slirp/ip_icmp.c b/slirp/ip_icmp.c
index 5ffc7a683d..0b667a429a 100644
--- a/slirp/ip_icmp.c
+++ b/slirp/ip_icmp.c
@@ -152,8 +152,9 @@  icmp_input(struct mbuf *m, int hlen)
   switch (icp->icmp_type) {
   case ICMP_ECHO:
     ip->ip_len += hlen;	             /* since ip_input subtracts this */
-    if (ip->ip_dst.s_addr == slirp->vhost_addr.s_addr) {
-      icmp_reflect(m);
+    if (ip->ip_dst.s_addr == slirp->vhost_addr.s_addr ||
+        ip->ip_dst.s_addr == slirp->vnameserver_addr.s_addr) {
+        icmp_reflect(m);
     } else if (slirp->restricted) {
         goto freeit;
     } else {