Changeset 107730 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jan 13, 2025 10:34:52 PM (4 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DrvNATlibslirp.cpp
r107702 r107730 65 65 #include <iprt/cidr.h> 66 66 #include <iprt/file.h> 67 #include <iprt/nocrt/limits.h> 67 68 #include <iprt/mem.h> 68 69 #include <iprt/net.h> … … 127 128 #define GET_STRING_ALLOC(rc, pdrvins, node, name, var) \ 128 129 GET_EXTRADATA(pdrvins, node, name, (rc), StringAlloc, string, (var)) 130 #define GET_U16_STRICT(rc, pdrvins, node, name, var) \ 131 GET_ED_STRICT(pdrvins, node, name, (rc), U16, int, (var)) 129 132 #define GET_S32(rc, pdrvins, node, name, var) \ 130 133 GET_EXTRADATA(pdrvins, node, name, (rc), S32, int, (var)) 131 #define GET_ S32_STRICT(rc, pdrvins, node, name, var) \132 GET_E D_STRICT(pdrvins, node, name, (rc), S32, int, (var))134 #define GET_U32(rc, pdrvins, node, name, var) \ 135 GET_EXTRADATA(pdrvins, node, name, (rc), U32, int, (var)) 133 136 134 137 #define DO_GET_IP(rc, node, instance, status, x) \ … … 260 263 *********************************************************************************************************************************/ 261 264 static void drvNATNotifyNATThread(PDRVNAT pThis, const char *pszWho); 262 static void drvNAT_UpdateTimeout(int * uTimeout, void *opaque);265 static void drvNAT_UpdateTimeout(int *i32Timeout, void *opaque); 263 266 static void drvNAT_CheckTimeout(void *opaque); 264 267 static DECLCALLBACK(int) drvNAT_AddPollCb(int iFd, int iEvents, void *opaque); … … 750 753 */ 751 754 752 int uTimeout = DRVNAT_DEFAULT_TIMEOUT;755 int i32Timeout = DRVNAT_DEFAULT_TIMEOUT; 753 756 pThis->pNATState->nsock = 1; 754 757 755 slirp_pollfds_fill(pThis->pNATState->pSlirp, & uTimeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */);756 drvNAT_UpdateTimeout(& uTimeout, pThis);758 slirp_pollfds_fill(pThis->pNATState->pSlirp, &i32Timeout, drvNAT_AddPollCb /* SlirpAddPollCb */, pThis /* opaque */); 759 drvNAT_UpdateTimeout(&i32Timeout, pThis); 757 760 758 761 #ifdef RT_OS_WINDOWS 759 int cChangedFDs = WSAPoll(pThis->pNATState->polls, pThis->pNATState->nsock, uTimeout /* timeout */);762 int cChangedFDs = WSAPoll(pThis->pNATState->polls, pThis->pNATState->nsock, i32Timeout /* timeout */); 760 763 /* Note: This must be called IMMEDIATELY after WSAPoll. */ 761 764 int error = WSAGetLastError(); 762 765 #else 763 int cChangedFDs = poll(pThis->pNATState->polls, pThis->pNATState->nsock, uTimeout /* timeout */);766 int cChangedFDs = poll(pThis->pNATState->polls, pThis->pNATState->nsock, i32Timeout /* timeout */); 764 767 #endif 765 768 if (cChangedFDs < 0) … … 926 929 iInstance); 927 930 /* host port */ 928 int32_t iHostPort;929 GET_ S32_STRICT(rc, pDrvIns, pNode, "HostPort", iHostPort);931 uint16_t iHostPort; 932 GET_U16_STRICT(rc, pDrvIns, pNode, "HostPort", iHostPort); 930 933 931 934 /* guest port */ 932 int32_t iGuestPort;933 GET_ S32_STRICT(rc, pDrvIns, pNode, "GuestPort", iGuestPort);935 uint16_t iGuestPort; 936 GET_U16_STRICT(rc, pDrvIns, pNode, "GuestPort", iGuestPort); 934 937 935 938 /** @todo r=jack: why are we using IP INADD_ANY for port forward when FE does not do so. */ … … 1085 1088 * Update the timeout field in given list of Slirp timers. 1086 1089 * 1087 * @param uTimeout Pointer to timeout value.1090 * @param i32Timeout Pointer to timeout value. 1088 1091 * @param opaque Pointer to NAT State context. 1089 1092 * 1090 1093 * @thread ? 1091 1094 */ 1092 static void drvNAT_UpdateTimeout(int * uTimeout, void *opaque)1095 static void drvNAT_UpdateTimeout(int *i32Timeout, void *opaque) 1093 1096 { 1094 1097 PDRVNAT pThis = (PDRVNAT)opaque; … … 1106 1109 diff = 0; 1107 1110 1108 if (diff < * uTimeout)1109 * uTimeout = diff;1111 if (diff < *i32Timeout) 1112 *i32Timeout = RT_MIN(diff, INT_MAX); 1110 1113 } 1111 1114 … … 1213 1216 * @thread ? 1214 1217 */ 1215 static DECLCALLBACK(ssize_t) drvNAT_SendPacketCb(const void *pBuf, s ize_t cb, void *opaque /* PDRVNAT */)1218 static DECLCALLBACK(ssize_t) drvNAT_SendPacketCb(const void *pBuf, ssize_t cb, void *opaque /* PDRVNAT */) 1216 1219 { 1217 1220 char *pNewBuf = (char *)RTMemAlloc(cb); … … 1593 1596 int fDNSProxy = 0; 1594 1597 GET_S32(rc, pDrvIns, pCfg, "DNSProxy", fDNSProxy); 1595 int MTU = 1500;1596 GET_ S32(rc, pDrvIns, pCfg, "SlirpMTU", MTU);1598 unsigned int MTU = 1500; 1599 GET_U32(rc, pDrvIns, pCfg, "SlirpMTU", MTU); 1597 1600 int iIcmpCacheLimit = 100; 1598 1601 GET_S32(rc, pDrvIns, pCfg, "ICMPCacheLimit", iIcmpCacheLimit);
Note:
See TracChangeset
for help on using the changeset viewer.