VirtualBox

Changeset 21665 in vbox


Ignore:
Timestamp:
Jul 17, 2009 7:09:08 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
50204
Message:

NAT: socaddr initialization

File:
1 edited

Legend:

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

    r21385 r21665  
    658658{
    659659    int ret;
    660     struct sockaddr_in addr;
     660    struct sockaddr_in *paddr;
     661    struct sockaddr addr;
    661662#if 0
    662663    struct sockaddr_in host_addr;
     
    666667    DEBUG_ARG("so = %lx", (long)so);
    667668    DEBUG_ARG("m = %lx", (long)m);
    668 
    669     addr.sin_family = AF_INET;
     669   
     670    memset(&addr, 0, sizeof(struct sockaddr));
     671#ifdef RT_OS_DARWIN
     672    addr.sa_len = sizeof(struct sockaddr_in);
     673#endif
     674    paddr = (struct sockaddr_in *)&addr;
     675    paddr->sin_family = AF_INET;
    670676    if ((so->so_faddr.s_addr & htonl(pData->netmask)) == special_addr.s_addr)
    671677    {
     
    694700            default:
    695701                if (last_byte == ~pData->netmask)
    696                     addr.sin_addr.s_addr = INADDR_BROADCAST;
     702                    paddr->sin_addr.s_addr = INADDR_BROADCAST;
    697703                else
    698                     addr.sin_addr = loopback_addr;
     704                    paddr->sin_addr = loopback_addr;
    699705                break;
    700706        }
    701707    }
    702708    else
    703         addr.sin_addr = so->so_faddr;
    704     addr.sin_port = so->so_fport;
     709        paddr->sin_addr = so->so_faddr;
     710    paddr->sin_port = so->so_fport;
    705711
    706712    DEBUG_MISC((dfd, " sendto()ing, addr.sin_port=%d, addr.sin_addr.s_addr=%.16s\n",
    707                 ntohs(addr.sin_port), inet_ntoa(addr.sin_addr)));
     713                ntohs(paddr->sin_port), inet_ntoa(paddr->sin_addr)));
    708714
    709715    /* Don't care what port we get */
    710     ret = sendto(so->s, m->m_data, m->m_len, 0,
    711                  (struct sockaddr *)&addr, sizeof (struct sockaddr));
     716    ret = sendto(so->s, m->m_data, m->m_len, 0, &addr, sizeof (struct sockaddr_in));
    712717    if (ret < 0)
    713718    {
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