VirtualBox

Changeset 15575 in vbox


Ignore:
Timestamp:
Dec 16, 2008 11:38:54 AM (16 years ago)
Author:
vboxsync
Message:

slirp:icmp: fix on issue ICMP to alliased (DNS) addresses

Location:
trunk/src/VBox/Devices/Network/slirp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/slirp.h

    r15453 r15575  
    348348#endif
    349349
    350 #endif
     350#define DO_ALIAS(paddr)                                                     \
     351do {                                                                        \
     352    if ((paddr)->s_addr == dns_addr.s_addr)                                 \
     353    {                                                                       \
     354        (paddr)->s_addr = htonl(ntohl(special_addr.s_addr) | CTL_DNS);      \
     355    }                                                                       \
     356} while(0)
     357#endif
  • trunk/src/VBox/Devices/Network/slirp/socket.c

    r15573 r15575  
    814814    if (   icp->icmp_type == ICMP_TIMXCEED
    815815        || icp->icmp_type == ICMP_UNREACH)
     816    {
    816817        ip = &icp->icmp_ip;
     818        DO_ALIAS(&ip->ip_dst);
     819    }
     820    else
     821    {
     822        DO_ALIAS(&ip->ip_src);
     823    }
    817824
    818825    icm = icmp_find_original_mbuf(pData, ip);
     
    932939                ip = mtod(m, struct ip *);
    933940                ip->ip_src.s_addr = icr[i].Address;
     941                DO_ALIAS(&ip->ip_src);
    934942                ip->ip_p = IPPROTO_ICMP;
    935943                ip->ip_dst.s_addr = so->so_laddr.s_addr; /*XXX: still the hack*/
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette