VirtualBox

Ignore:
Timestamp:
Apr 25, 2025 9:52:51 AM (9 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168621
Message:

lib/libslirp-4.9.0,Devices/Network: Switch to libslirp-4.9.0, bugref:10268

File:
1 edited

Legend:

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

    r108820 r109079  
    271271static int  drvNATTimersAdjustTimeoutDown(PDRVNAT pThis, int cMsTimeout);
    272272static void drvNATTimersRunExpired(PDRVNAT pThis);
    273 static DECLCALLBACK(int) drvNAT_AddPollCb(int iFd, int iEvents, void *opaque);
     273static DECLCALLBACK(int) drvNAT_AddPollCb(slirp_os_socket hFd, int iEvents, void *opaque);
    274274static DECLCALLBACK(int64_t) drvNAT_ClockGetNsCb(void *opaque);
    275275static DECLCALLBACK(int) drvNAT_GetREventsCb(int idx, void *opaque);
     
    771771        pThis->pNATState->nsock = 1;
    772772
    773         int cMsTimeout = DRVNAT_DEFAULT_TIMEOUT;
    774         slirp_pollfds_fill(pThis->pNATState->pSlirp, &cMsTimeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */);
     773        uint32_t cMsTimeout = DRVNAT_DEFAULT_TIMEOUT;
     774        slirp_pollfds_fill_socket(pThis->pNATState->pSlirp, &cMsTimeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */);
    775775        cMsTimeout = drvNATTimersAdjustTimeoutDown(pThis, cMsTimeout);
    776776
     
    13841384 * Registers poll. Unused function (other than logging).
    13851385 */
    1386 static DECLCALLBACK(void) drvNAT_RegisterPoll(int fd, void *opaque)
    1387 {
    1388     RT_NOREF(fd, opaque);
    1389     Log4(("Poll registered: fd=%d\n", fd));
     1386static DECLCALLBACK(void) drvNAT_RegisterPoll(slirp_os_socket socket, void *opaque)
     1387{
     1388    RT_NOREF(socket, opaque);
     1389#ifdef RT_OS_WINDOWS
     1390    Log4(("Poll registered: fd=%p\n", socket));
     1391#else
     1392    Log4(("Poll registered: fd=%d\n", socket));
     1393#endif
    13901394}
    13911395
     
    13931397 * Unregisters poll. Unused function (other than logging).
    13941398 */
    1395 static DECLCALLBACK(void) drvNAT_UnregisterPoll(int fd, void *opaque)
    1396 {
    1397     RT_NOREF(fd, opaque);
    1398     Log4(("Poll unregistered: fd=%d\n", fd));
     1399static DECLCALLBACK(void) drvNAT_UnregisterPoll(slirp_os_socket socket, void *opaque)
     1400{
     1401    RT_NOREF(socket, opaque);
     1402#ifdef RT_OS_WINDOWS
     1403    Log4(("Poll unregistered: fd=%p\n", socket));
     1404#else
     1405    Log4(("Poll unregistered: fd=%d\n", socket));
     1406#endif
    13991407}
    14001408
     
    14111419 * @thread  ?
    14121420 */
    1413 static DECLCALLBACK(int) drvNAT_AddPollCb(int iFd, int iEvents, void *opaque)
     1421static DECLCALLBACK(int) drvNAT_AddPollCb(slirp_os_socket hFd, int iEvents, void *opaque)
    14141422{
    14151423    PDRVNAT pThis = (PDRVNAT)opaque;
     
    14301438    unsigned int uIdx = pThis->pNATState->nsock;
    14311439    Assert(uIdx < INT_MAX);
    1432 #ifdef RT_OS_WINDOWS
    1433     pThis->pNATState->polls[uIdx].fd = libslirp_wrap_RTHandleTableLookup(iFd);
    1434 #else
    1435     pThis->pNATState->polls[uIdx].fd = iFd;
    1436 #endif
     1440    pThis->pNATState->polls[uIdx].fd = hFd;
    14371441    pThis->pNATState->polls[uIdx].events = drvNAT_PollEventSlirpToHost(iEvents);
    14381442    pThis->pNATState->polls[uIdx].revents = 0;
     
    16861690    static SlirpCb slirpCallbacks = { 0 };
    16871691
    1688     slirpCfg.version = 4;
     1692    slirpCfg.version = 6;
    16891693    slirpCfg.restricted = false;
    16901694    slirpCfg.in_enabled = true;
     
    17311735    slirpCallbacks.timer_free = drvNAT_TimerFreeCb;
    17321736    slirpCallbacks.timer_mod = drvNAT_TimerModCb;
    1733     slirpCallbacks.register_poll_fd = drvNAT_RegisterPoll;
    1734     slirpCallbacks.unregister_poll_fd = drvNAT_UnregisterPoll;
    17351737    slirpCallbacks.notify = drvNAT_NotifyCb;
    17361738    slirpCallbacks.init_completed = NULL;
    17371739    slirpCallbacks.timer_new_opaque = NULL;
     1740    slirpCallbacks.register_poll_socket = drvNAT_RegisterPoll;
     1741    slirpCallbacks.unregister_poll_socket = drvNAT_UnregisterPoll;
    17381742
    17391743    /*
     
    17881792    rc = RTWinSocketPair(AF_INET, SOCK_DGRAM, 0, pThis->ahWakeupSockPair);
    17891793    AssertRCReturn(rc, rc);
    1790 
    1791     uint32_t hReadFd = 0;
    1792     uint32_t hWriteFd = 0;
    1793 
    1794     rc = libslirp_wrap_RTHandleTableAlloc(pThis->ahWakeupSockPair[0], &hReadFd);
    1795     AssertRCReturn(rc, rc);
    1796 
    1797     rc = libslirp_wrap_RTHandleTableAlloc(pThis->ahWakeupSockPair[1], &hWriteFd);
    1798     AssertRCReturn(rc, rc);
    1799 
    1800     Log4Func(("Created wakeup socket pair.\nSocket details - read:%d, write%d\n \
    1801                Handle details - read:%d, write%d\n", pThis->ahWakeupSockPair[0],
    1802                pThis->ahWakeupSockPair[1], hReadFd, hWriteFd));
    1803 
    1804     /**
    1805      * @todo r=jack: should probably use the internal handles up in the io
    1806      * thread. Will fix (or just update libslirp and this translation stuff
    1807      * might go away).
    1808      */
    18091794#else
    18101795    /* Create the control pipe. */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette