VirtualBox

Changeset 107702 in vbox for trunk


Ignore:
Timestamp:
Jan 10, 2025 10:08:56 PM (4 weeks ago)
Author:
vboxsync
Message:

Devices/Network: Parfait fixes. Mostly signedness and precission fixes. Removed unused variables. bugref:3409

Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNATlibslirp.cpp

    r107549 r107702  
    260260*********************************************************************************************************************************/
    261261static void drvNATNotifyNATThread(PDRVNAT pThis, const char *pszWho);
    262 static void drvNAT_UpdateTimeout(uint32_t *uTimeout, void *opaque);
     262static void drvNAT_UpdateTimeout(int *uTimeout, void *opaque);
    263263static void drvNAT_CheckTimeout(void *opaque);
    264264static DECLCALLBACK(int) drvNAT_AddPollCb(int iFd, int iEvents, void *opaque);
     
    307307
    308308    STAM_COUNTER_INC(&pThis->StatNATRecvWakeups);
    309     return VINF_SUCCESS;
     309    return rc;
    310310}
    311311
     
    424424                    memcpy((uint8_t *)pvSeg + cbHdrs, pbFrame + offPayload, cbPayload);
    425425
     426                    Assert((size_t)cbPayload > 0 && (size_t)cbHdrs > 0);
    426427                    slirp_input(pThis->pNATState->pSlirp, (uint8_t const *)pvSeg, cbPayload + cbHdrs);
    427428                    RTMemFree(pvSeg);
     
    724725#else
    725726    unsigned int cPollNegRet = 0;
    726     drvNAT_AddPollCb(RTPipeToNative(pThis->hPipeRead), SLIRP_POLL_IN | SLIRP_POLL_HUP, pThis);
    727     pThis->pNATState->polls[0].fd = RTPipeToNative(pThis->hPipeRead);
     727    RTHCINTPTR i64NativeReadPipe = RTPipeToNative(pThis->hPipeRead);
     728    Assert(i64NativeReadPipe < INT_MAX);
     729    drvNAT_AddPollCb(i64NativeReadPipe, SLIRP_POLL_IN | SLIRP_POLL_HUP, pThis);
     730    pThis->pNATState->polls[0].fd = i64NativeReadPipe;
    728731    pThis->pNATState->polls[0].events = POLLRDNORM | POLLPRI | POLLRDBAND;
    729732    pThis->pNATState->polls[0].revents = 0;
     
    747750         */
    748751
    749         uint32_t uTimeout = DRVNAT_DEFAULT_TIMEOUT;
     752        int uTimeout = DRVNAT_DEFAULT_TIMEOUT;
    750753        pThis->pNATState->nsock = 1;
    751754
     
    10871090 * @thread  ?
    10881091 */
    1089 static void drvNAT_UpdateTimeout(uint32_t *uTimeout, void *opaque)
     1092static void drvNAT_UpdateTimeout(int *uTimeout, void *opaque)
    10901093{
    10911094    PDRVNAT pThis = (PDRVNAT)opaque;
     
    11501153 * @thread  ?
    11511154 */
    1152 static int drvNAT_PollEventSlirpToHost(int iEvents) {
    1153     int iRet = 0;
     1155static short drvNAT_PollEventSlirpToHost(int iEvents) {
     1156    short iRet = 0;
    11541157#ifndef RT_OS_WINDOWS
    11551158    if (iEvents & SLIRP_POLL_IN)  iRet |= POLLIN;
     
    13941397    if (pThis->pNATState->nsock + 1 >= pThis->pNATState->uPollCap)
    13951398    {
    1396         int cbNew = pThis->pNATState->uPollCap * 2 * sizeof(struct pollfd);
     1399        size_t cbNew = pThis->pNATState->uPollCap * 2 * sizeof(struct pollfd);
    13971400        struct pollfd *pvNew = (struct pollfd *)RTMemRealloc(pThis->pNATState->polls, cbNew);
    13981401        if (pvNew)
     
    14051408    }
    14061409
    1407     int idx = pThis->pNATState->nsock;
     1410    unsigned int uIdx = pThis->pNATState->nsock;
     1411    Assert(uIdx < INT_MAX);
    14081412#ifdef RT_OS_WINDOWS
    1409     pThis->pNATState->polls[idx].fd = libslirp_wrap_RTHandleTableLookup(iFd);
     1413    pThis->pNATState->polls[uIdx].fd = libslirp_wrap_RTHandleTableLookup(iFd);
    14101414#else
    1411     pThis->pNATState->polls[idx].fd = iFd;
     1415    pThis->pNATState->polls[uIdx].fd = iFd;
    14121416#endif
    1413     pThis->pNATState->polls[idx].events = drvNAT_PollEventSlirpToHost(iEvents);
    1414     pThis->pNATState->polls[idx].revents = 0;
     1417    pThis->pNATState->polls[uIdx].events = drvNAT_PollEventSlirpToHost(iEvents);
     1418    pThis->pNATState->polls[uIdx].revents = 0;
    14151419    pThis->pNATState->nsock += 1;
    1416     return idx;
     1420    return uIdx;
    14171421}
    14181422
     
    15911595    int MTU = 1500;
    15921596    GET_S32(rc, pDrvIns, pCfg, "SlirpMTU", MTU);
    1593     int i32AliasMode = 0;
    1594     int i32MainAliasMode = 0;
    1595     GET_S32(rc, pDrvIns, pCfg, "AliasMode", i32MainAliasMode);
    15961597    int iIcmpCacheLimit = 100;
    15971598    GET_S32(rc, pDrvIns, pCfg, "ICMPCacheLimit", iIcmpCacheLimit);
    15981599    bool fLocalhostReachable = false;
    15991600    GET_BOOL(rc, pDrvIns, pCfg, "LocalhostReachable", fLocalhostReachable);
    1600 
    1601     i32AliasMode |= (i32MainAliasMode & 0x1 ? 0x1 : 0);
    1602     i32AliasMode |= (i32MainAliasMode & 0x2 ? 0x40 : 0);
    1603     i32AliasMode |= (i32MainAliasMode & 0x4 ? 0x4 : 0);
    16041601    int i32SoMaxConn = 10;
    16051602    GET_S32(rc, pDrvIns, pCfg, "SoMaxConnection", i32SoMaxConn);
  • trunk/src/libs/libslirp-4.8.0/src/libslirp.h

    r107548 r107702  
    254254 * such to add_poll, and add_poll returns an index. */
    255255SLIRP_EXPORT
     256#ifdef VBOX
     257void slirp_pollfds_fill(Slirp *slirp, int *timeout,
     258                        SlirpAddPollCb add_poll, void *opaque);
     259#else
    256260void slirp_pollfds_fill(Slirp *slirp, uint32_t *timeout,
    257261                        SlirpAddPollCb add_poll, void *opaque);
     262#endif
    258263
    259264/* This is called by the application after sleeping, to report which file
  • trunk/src/libs/libslirp-4.8.0/src/slirp.c

    r107548 r107702  
    773773    (((so)->so_state & (SS_FCANTRCVMORE | SS_ISFCONNECTED)) == SS_ISFCONNECTED)
    774774
     775#ifdef VBOX
     776static void slirp_update_timeout(Slirp *slirp, int *timeout)
     777{
     778    int t;
     779#else
    775780static void slirp_update_timeout(Slirp *slirp, uint32_t *timeout)
    776781{
    777782    uint32_t t;
     783#endif
    778784
    779785    if (*timeout <= TIMEOUT_FAST) {
     
    796802}
    797803
     804#ifdef VBOX
     805void slirp_pollfds_fill(Slirp *slirp, int *timeout,
     806                        SlirpAddPollCb add_poll, void *opaque)
     807#else
    798808void slirp_pollfds_fill(Slirp *slirp, uint32_t *timeout,
    799809                        SlirpAddPollCb add_poll, void *opaque)
     810#endif
    800811{
    801812    struct socket *so, *so_next;
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