VirtualBox

Changeset 25747 in vbox


Ignore:
Timestamp:
Jan 12, 2010 10:26:46 AM (15 years ago)
Author:
vboxsync
Message:

NAT: some cleanup, no semantics change

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

Legend:

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

    r25402 r25747  
    1818#include <alias.h>
    1919
    20 #if !defined(RT_OS_WINDOWS)
    21 
    22 #  define DO_ENGAGE_EVENT1(so, fdset, label)                        \
    23     do {                                                            \
    24         if (    so->so_poll_index != -1                             \
    25             && so->s == polls[so->so_poll_index].fd) {              \
    26             polls[so->so_poll_index].events |= N_(fdset ## _poll);  \
    27             break; /* out of this loop */                           \
    28         }                                                           \
    29         AssertRelease(poll_index < (nfds));                         \
    30         AssertRelease(poll_index >= 0 && poll_index < (nfds));      \
    31         polls[poll_index].fd = (so)->s;                             \
    32         (so)->so_poll_index = poll_index;                           \
    33         polls[poll_index].events = N_(fdset ## _poll);              \
    34         polls[poll_index].revents = 0;                              \
    35         poll_index++;                                               \
    36     } while (0)
    37 
    38 
    39 #  define DO_ENGAGE_EVENT2(so, fdset1, fdset2, label)               \
    40     do {                                                            \
    41         if (    so->so_poll_index != -1                             \
    42             && so->s == polls[so->so_poll_index].fd) {              \
    43             polls[so->so_poll_index].events |=                      \
    44                 N_(fdset1 ## _poll) | N_(fdset1 ## _poll);          \
    45             break; /* out of this loop */                           \
    46         }                                                           \
    47         AssertRelease(poll_index < (nfds));                         \
    48         polls[poll_index].fd = (so)->s;                             \
    49         (so)->so_poll_index = poll_index;                           \
    50         polls[poll_index].events =                                  \
    51             N_(fdset1 ## _poll) | N_(fdset1 ## _poll);              \
    52         poll_index++;                                               \
    53     } while (0)
    54 
    55 #  define DO_POLL_EVENTS(rc, error, so, events, label) do {} while (0)
    56 
    57 #  define DO_CHECK_FD_SET(so, events, fdset)                        \
    58       (   ((so)->so_poll_index != -1)                               \
    59        && ((so)->so_poll_index <= ndfs)                             \
    60        && ((so)->s == polls[so->so_poll_index].fd)                  \
    61        && (polls[(so)->so_poll_index].revents & N_(fdset ## _poll)))
    62 
    63    /* specific for Unix API */
    64 #  define DO_UNIX_CHECK_FD_SET(so, events, fdset ) DO_CHECK_FD_SET((so), (events), fdset)
    65    /* specific for Windows Winsock API */
    66 #  define DO_WIN_CHECK_FD_SET(so, events, fdset ) 0
    67 
    68 # ifndef RT_OS_WINDOWS
    69 
    70 #  ifndef RT_OS_LINUX
    71 #   define readfds_poll (POLLRDNORM)
    72 #   define writefds_poll (POLLWRNORM)
    73 #   define xfds_poll (POLLRDBAND|POLLWRBAND|POLLPRI)
    74 #  else
    75 #   define readfds_poll (POLLIN)
    76 #   define writefds_poll (POLLOUT)
    77 #   define xfds_poll (POLLPRI)
    78 #  endif
    79 #  define rderr_poll (POLLERR)
    80 #  define rdhup_poll (POLLHUP)
    81 #  define nval_poll (POLLNVAL)
    82 
    83 #  define ICMP_ENGAGE_EVENT(so, fdset)              \
    84     do {                                            \
    85         if (pData->icmp_socket.s != -1)             \
    86             DO_ENGAGE_EVENT1((so), fdset, ICMP);    \
    87     } while (0)
    88 # else /* !RT_OS_WINDOWS */
    89 #  define DO_WIN_CHECK_FD_SET(so, events, fdset ) DO_CHECK_FD_SET((so), (events), fdset)
    90 #  define ICMP_ENGAGE_EVENT(so, fdset) do {} while (0)
    91 #endif /* RT_OS_WINDOWS */
    92 
    93 #else /* defined(RT_OS_WINDOWS) */
     20#ifndef RT_OS_WINDOWS
     21
     22# define DO_ENGAGE_EVENT1(so, fdset, label)                        \
     23   do {                                                            \
     24       if (   so->so_poll_index != -1                              \
     25           && so->s == polls[so->so_poll_index].fd)                \
     26       {                                                           \
     27           polls[so->so_poll_index].events |= N_(fdset ## _poll);  \
     28           break;                                                  \
     29       }                                                           \
     30       AssertRelease(poll_index < (nfds));                         \
     31       AssertRelease(poll_index >= 0 && poll_index < (nfds));      \
     32       polls[poll_index].fd = (so)->s;                             \
     33       (so)->so_poll_index = poll_index;                           \
     34       polls[poll_index].events = N_(fdset ## _poll);              \
     35       polls[poll_index].revents = 0;                              \
     36       poll_index++;                                               \
     37   } while (0)
     38
     39# define DO_ENGAGE_EVENT2(so, fdset1, fdset2, label)               \
     40   do {                                                            \
     41       if (   so->so_poll_index != -1                              \
     42           && so->s == polls[so->so_poll_index].fd)                \
     43       {                                                           \
     44           polls[so->so_poll_index].events |=                      \
     45               N_(fdset1 ## _poll) | N_(fdset1 ## _poll);          \
     46           break;                                                  \
     47       }                                                           \
     48       AssertRelease(poll_index < (nfds));                         \
     49       polls[poll_index].fd = (so)->s;                             \
     50       (so)->so_poll_index = poll_index;                           \
     51       polls[poll_index].events =                                  \
     52           N_(fdset1 ## _poll) | N_(fdset1 ## _poll);              \
     53       poll_index++;                                               \
     54   } while (0)
     55
     56# define DO_POLL_EVENTS(rc, error, so, events, label) do {} while (0)
     57
     58# define DO_CHECK_FD_SET(so, events, fdset)                        \
     59     (   ((so)->so_poll_index != -1)                               \
     60      && ((so)->so_poll_index <= ndfs)                             \
     61      && ((so)->s == polls[so->so_poll_index].fd)                  \
     62      && (polls[(so)->so_poll_index].revents & N_(fdset ## _poll)))
     63
     64  /* specific for Unix API */
     65# define DO_UNIX_CHECK_FD_SET(so, events, fdset ) DO_CHECK_FD_SET((so), (events), fdset)
     66  /* specific for Windows Winsock API */
     67# define DO_WIN_CHECK_FD_SET(so, events, fdset ) 0
     68
     69# ifndef RT_OS_LINUX
     70#  define readfds_poll   (POLLRDNORM)
     71#  define writefds_poll  (POLLWRNORM)
     72#  define xfds_poll      (POLLRDBAND|POLLWRBAND|POLLPRI)
     73# else
     74#  define readfds_poll   (POLLIN)
     75#  define writefds_poll  (POLLOUT)
     76#  define xfds_poll      (POLLPRI)
     77# endif
     78# define rderr_poll      (POLLERR)
     79# define rdhup_poll      (POLLHUP)
     80# define nval_poll       (POLLNVAL)
     81
     82# define ICMP_ENGAGE_EVENT(so, fdset)              \
     83   do {                                            \
     84       if (pData->icmp_socket.s != -1)             \
     85           DO_ENGAGE_EVENT1((so), fdset, ICMP);    \
     86   } while (0)
     87
     88#else /* RT_OS_WINDOWS */
    9489
    9590/*
     
    109104                        error, (so), (so)->s, VBOX_SOCKET_EVENT));                              \
    110105        }                                                                                       \
    111     } while (0);                                                                                 \
     106    } while (0);                                                                                \
    112107    CONTINUE(label)
    113108
     
    124119    }
    125120
    126 # define acceptds_win FD_ACCEPT
    127 # define acceptds_win_bit FD_ACCEPT_BIT
    128 
    129 # define readfds_win FD_READ
    130 # define readfds_win_bit FD_READ_BIT
    131 
    132 # define writefds_win FD_WRITE
    133 # define writefds_win_bit FD_WRITE_BIT
    134 
    135 # define xfds_win FD_OOB
    136 # define xfds_win_bit FD_OOB_BIT
     121# define acceptds_win     FD_ACCEPT
     122# define readfds_win      FD_READ
     123# define writefds_win     FD_WRITE
     124# define xfds_win         FD_OOB
    137125
    138126# define DO_CHECK_FD_SET(so, events, fdset)  \
    139     (((events).lNetworkEvents & fdset ## _win) && ((events).iErrorCode[fdset ## _win_bit] == 0))
     127    (((events).lNetworkEvents & fdset ## _win) && ((events).iErrorCode[fdset ## _win ## _BIT] == 0))
    140128
    141129# define DO_WIN_CHECK_FD_SET(so, events, fdset ) DO_CHECK_FD_SET((so), (events), fdset)
    142130# define DO_UNIX_CHECK_FD_SET(so, events, fdset ) 1 /*specific for Unix API */
    143131
    144 #endif /* defined(RT_OS_WINDOWS) */
     132#endif /* RT_OS_WINDOWS */
    145133
    146134#define TCP_ENGAGE_EVENT1(so, fdset) \
     
    159147    DO_POLL_EVENTS((rc), (error), (so), (events), udp)
    160148
    161 #define CHECK_FD_SET(so, events, set)           \
     149#define CHECK_FD_SET(so, events, set) \
    162150    (DO_CHECK_FD_SET((so), (events), set))
    163151
    164 #define WIN_CHECK_FD_SET(so, events, set)           \
     152#define WIN_CHECK_FD_SET(so, events, set) \
    165153    (DO_WIN_CHECK_FD_SET((so), (events), set))
     154
    166155#define UNIX_CHECK_FD_SET(so, events, set) \
    167156    (DO_UNIX_CHECK_FD_SET(so, events, set))
     
    176165       LogRel(("  " #proto " %R[natsock] %R[natwinnetevents]\n", (so), (winevent)));   \
    177166   } while (0)
    178 # else /* RT_OS_WINDOWS */
     167# else /* !RT_OS_WINDOWS */
    179168#  define  DO_LOG_NAT_SOCK(so, proto, winevent, r_fdset, w_fdset, x_fdset)         \
    180169   do {                                                                            \
     
    188177   } while (0)
    189178# endif /* !RT_OS_WINDOWS */
    190 #else /* VBOX_WITH_DEBUG_NAT_SOCKETS */
     179#else /* !VBOX_WITH_DEBUG_NAT_SOCKETS */
    191180# define DO_LOG_NAT_SOCK(so, proto, winevent, r_fdset, w_fdset, x_fdset) do {} while (0)
    192181#endif /* !VBOX_WITH_DEBUG_NAT_SOCKETS */
    193182
    194 #define LOG_NAT_SOCK(so, proto, winevent, r_fdset, w_fdset, x_fdset) DO_LOG_NAT_SOCK((so), proto, (winevent), r_fdset, w_fdset, x_fdset)
     183#define LOG_NAT_SOCK(so, proto, winevent, r_fdset, w_fdset, x_fdset) \
     184    DO_LOG_NAT_SOCK((so), proto, (winevent), r_fdset, w_fdset, x_fdset)
    195185
    196186static void activate_port_forwarding(PNATState, const uint8_t *pEther);
     
    372362    size_t bytes;
    373363
    374 #ifdef RT_OS_OS2
     364# ifdef RT_OS_OS2
    375365    /* Try various locations. */
    376366    char *etc = getenv("ETC");
     
    390380        rc = RTFileOpen(&f, buff, RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_NONE);
    391381    }
    392 #else
    393 # ifndef DEBUG_vvl
     382# else /* !RT_OS_OS2 */
     383#  ifndef DEBUG_vvl
    394384    rc = RTFileOpen(&f, "/etc/resolv.conf", RTFILE_O_READ | RTFILE_O_OPEN | RTFILE_O_DENY_NONE);
    395 # else
     385#  else
    396386    char *home = getenv("HOME");
    397387    RTStrPrintf(buff, sizeof(buff), "%s/resolv.conf", home);
     
    406396        Log(("NAT: DNS we're using %s\n", buff));
    407397    }
    408 # endif
    409 #endif
     398#  endif
     399# endif /* !RT_OS_OS2 */
    410400    if (RT_FAILURE(rc))
    411401        return -1;
     
    477467}
    478468
    479 #endif
     469#endif /* !RT_OS_WINDOWS */
    480470
    481471static int slirp_init_dns_list(PNATState pData)
  • trunk/src/VBox/Devices/Network/slirp/udp.c

    r25265 r25747  
    529529    SOCKET_LOCK_CREATE(so);
    530530    QSOCKET_LOCK(udb);
    531     insque(pData, so,&udb);
     531    insque(pData, so, &udb);
    532532    NSOCK_INC();
    533533    QSOCKET_UNLOCK(udb);
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