VirtualBox

Ticket #6918: r66677.patch

File r66677.patch, 1.3 KB (added by vasily Levchenko, 14 years ago)
  • src/VBox/Devices/Network/slirp/socket.c

     
    737737        * 3. attach buffer to allocated header mbuf
    738738        */
    739739        rc = ioctlsocket(so->s, FIONREAD, &n);
    740         if (rc == -1 && signalled == 0)
     740        if (rc == -1)
    741741        {
    742             LogRel(("NAT: can't fetch amount of bytes on socket %R[natsock], so message will be truncated.\n", so));
    743             signalled = 1;
     742            if (  errno == EAGAIN
     743               || errno == EWOULDBLOCK
     744               || errno == EINPROGRESS
     745               || errno == ENOTCONN)
     746                return;
     747            else if (signalled == 0)
     748            {
     749                LogRel(("NAT: can't fetch amount of bytes on socket %R[natsock], so message will be truncated.\n", so));
     750                signalled = 1;
     751            }
     752            return;
    744753        }
    745754
    746755        len = sizeof(struct udpiphdr);
     
    909918    m_copydata(m, 0, mlen, buf);
    910919    ret = sendto(so->s, buf, mlen, 0,
    911920                 (struct sockaddr *)&addr, sizeof (struct sockaddr));
     921    RTMemFree(buf);
    912922    if (ret < 0)
    913923    {
    914924        Log2(("UDP: sendto fails (%s)\n", strerror(errno)));

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