VirtualBox

Changeset 41855 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 21, 2012 5:46:27 AM (12 years ago)
Author:
vboxsync
Message:

NAT: collapsing EAGAIN,EWOULDBLOCK,EINPROGRESS conditions to soIgnorableErrorCode inline function.

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

Legend:

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

    r41839 r41855  
    822822            ret = connect(so->s, (struct sockaddr *)&sin, sizeof(sin));
    823823            if (   ret < 0
    824                 && errno == EINPROGRESS
    825                 && errno == EAGAIN
    826                 && errno == EWOULDBLOCK)
     824                && !soIgnorableErrorCode(errno))
    827825            {
    828826                closesocket(so->s);
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r41812 r41855  
    11141114    {
    11151115        /* XXXXX Must fix, zero bytes is a NOP */
    1116         if (   errno == EAGAIN
    1117             || errno == EWOULDBLOCK
    1118             || errno == EINPROGRESS
     1116        if (   soIgnorableErrorCode(errno)
    11191117            || errno == ENOTCONN)
    11201118        {
     
    13841382            {
    13851383                /* XXX */
    1386                 if (   errno == EAGAIN
    1387                     || errno == EWOULDBLOCK
    1388                     || errno == EINPROGRESS
     1384                if (   soIgnorableErrorCode(errno)
    13891385                    || errno == ENOTCONN)
    13901386                {
     
    14031399                {
    14041400                    /* XXX */
    1405                     if (   errno == EAGAIN
    1406                         || errno == EWOULDBLOCK
    1407                         || errno == EINPROGRESS
     1401                    if (   soIgnorableErrorCode(errno)
    14081402                        || errno == ENOTCONN)
    14091403                    {
  • trunk/src/VBox/Devices/Network/slirp/socket.c

    r41806 r41855  
    335335        }
    336336        if (   nn < 0
    337             && (   errno == EINTR
    338                 || errno == EAGAIN
    339                 || errno == EWOULDBLOCK))
     337            && soIgnorableErrorCode(errno))
    340338        {
    341339            SOCKET_UNLOCK(so);
     
    468466        }
    469467        if (   n < 0
    470             && (   errno == EINTR
    471                 || errno == EAGAIN
    472                 || errno == EWOULDBLOCK))
     468            && soIgnorableErrorCode(errno))
    473469        {
    474470            SOCKET_UNLOCK(so);
     
    687683    /* This should never happen, but people tell me it does *shrug* */
    688684    if (   nn < 0
    689         && (   errno == EAGAIN
    690             || errno == EINTR
    691             || errno == EWOULDBLOCK))
     685        && soIgnorableErrorCode(errno))
    692686    {
    693687        SOCKET_UNLOCK(so);
     
    845839        if (rc == -1)
    846840        {
    847             if (  errno == EAGAIN
    848                || errno == EWOULDBLOCK
    849                || errno == EINPROGRESS
     841            if (  soIgnorableErrorCode(errno)
    850842               || errno == ENOTCONN)
    851843                return;
     
    917909
    918910            m_freem(pData, m);
    919             if (   errno == EAGAIN
    920                 || errno == EWOULDBLOCK
    921                 || errno == EINPROGRESS
     911            if (   soIgnorableErrorCode(errno)
    922912                || errno == ENOTCONN)
    923913            {
     
    16271617                   (struct sockaddr *)&addr, &addrlen);
    16281618    if (   len < 0
    1629         && (   errno == EAGAIN
    1630             || errno == EWOULDBLOCK
    1631             || errno == EINPROGRESS
     1619        && (   soIgnorableErrorCode(errno)
    16321620            || errno == ENOTCONN))
    16331621    {
     
    16861674                   (struct sockaddr *)&addr, &addrlen);
    16871675    if (   len < 0
    1688         && (   errno == EAGAIN
    1689             || errno == EWOULDBLOCK
    1690             || errno == EINPROGRESS
     1676        && (   soIgnorableErrorCode(errno)
    16911677            || errno == ENOTCONN))
    16921678    {
  • trunk/src/VBox/Devices/Network/slirp/socket.h

    r41453 r41855  
    195195#endif
    196196
     197static inline int soIgnorableErrorCode(int iErrorCode)
     198{
     199    return (   iErrorCode == EINPROGRESS
     200            || iErrorCode == EAGAIN
     201            || iErrorCode == EWOULDBLOCK);
     202}
     203
    197204#endif /* _SOCKET_H_ */
  • trunk/src/VBox/Devices/Network/slirp/tcp_timer.h

    r41840 r41855  
    152152void tcp_slowtimo (PNATState);
    153153void tcp_canceltimers (struct tcpcb *);
    154 #if 0
    155 struct tcpcb * tcp_timers (PNATState, register struct tcpcb *, int);
    156154#endif
    157 
    158 #endif
  • trunk/src/VBox/Devices/Network/slirp/udp.c

    r41817 r41855  
    295295
    296296    if (   sosendto(pData, so, m) == -1
    297         && (   errno != EAGAIN
    298             && errno != EWOULDBLOCK
    299             && errno != EINPROGRESS
     297        && (   soIgnorableErrorCode(errno)
    300298            && errno != ENOTCONN))
    301299    {
     
    306304              errno, strerror(errno), ip->ip_dst));
    307305#if 0
    308         /* ICMP_SOURCEQUENCH haven't got any effect, the idea here 
    309          * inform guest about the exosting NAT resources with assumption that 
    310          * that guest reduce traffic. But it doesn't work 
     306        /* ICMP_SOURCEQUENCH haven't got any effect, the idea here
     307         * inform guest about the exosting NAT resources with assumption that
     308         * that guest reduce traffic. But it doesn't work
    311309         */
    312310        if(    errno == EAGAIN
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