Changeset 38971 in vbox
- Timestamp:
- Oct 10, 2011 8:28:30 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 74342
- Location:
- trunk/src/VBox/Devices/Network
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DrvNAT.cpp
r38549 r38971 1158 1158 "SlirpMTU\0AliasMode\0" 1159 1159 "SockRcv\0SockSnd\0TcpRcv\0TcpSnd\0" 1160 "ICMPCacheLimit\0" 1160 1161 "SoMaxConnection\0")) 1161 1162 return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES, … … 1211 1212 int i32MainAliasMode = 0; 1212 1213 GET_S32(rc, pThis, pCfg, "AliasMode", i32MainAliasMode); 1214 int iIcmpCacheLimit = 100; 1215 GET_S32(rc, pThis, pCfg, "ICMPCacheLimit", iIcmpCacheLimit); 1213 1216 1214 1217 i32AliasMode |= (i32MainAliasMode & 0x1 ? 0x1 : 0); … … 1251 1254 */ 1252 1255 rc = slirp_init(&pThis->pNATState, RT_H2N_U32(Network), Netmask, 1253 fPassDomain, !!fUseHostResolver, i32AliasMode, pThis); 1256 fPassDomain, !!fUseHostResolver, i32AliasMode, 1257 iIcmpCacheLimit, pThis); 1254 1258 if (RT_SUCCESS(rc)) 1255 1259 { -
trunk/src/VBox/Devices/Network/slirp/ip_icmp.c
r38968 r38971 89 89 }; 90 90 91 static int icmp_cache_count(PNATState pData);92 91 static void icmp_cache_clean(PNATState pData, int iEntries); 93 92 94 93 int 95 icmp_init(PNATState pData )94 icmp_init(PNATState pData, int iIcmpCacheLimit) 96 95 { 97 96 pData->icmp_socket.so_type = IPPROTO_ICMP; 98 97 pData->icmp_socket.so_state = SS_ISFCONNECTED; 99 pData->iIcmpCacheLimit = 100; 98 if (iIcmpCacheLimit < 0) 99 { 100 LogRel(("NAT: iIcmpCacheLimit is invalid %d, will be alter to default value 100\n", iIcmpCacheLimit)); 101 iIcmpCacheLimit = 100; 102 } 103 pData->iIcmpCacheLimit = iIcmpCacheLimit; 100 104 #ifndef RT_OS_WINDOWS 101 105 # ifndef RT_OS_DARWIN … … 162 166 LIST_INIT(&pData->icmp_msg_head); 163 167 return 0; 168 } 169 170 /** 171 * Cleans ICMP cache. 172 */ 173 int 174 icmp_finit(PNATState pData) 175 { 176 icmp_cache_clean(pData, -1); 177 #ifdef RT_OS_WINDOWS 178 pData->pfIcmpCloseHandle(pData->icmp_socket.sh); 179 FreeLibrary(pData->hmIcmpLibrary); 180 RTMemFree(pData->pvIcmpBuffer); 181 #else 182 closesocket(pData->icmp_socket.s); 183 #endif 164 184 } 165 185 -
trunk/src/VBox/Devices/Network/slirp/ip_icmp.h
r28800 r38971 199 199 LIST_HEAD(icmp_storage, icmp_msg); 200 200 201 int icmp_init (PNATState ); 201 int icmp_init (PNATState , int); 202 int icmp_finit (PNATState ); 202 203 struct icmp_msg * icmp_find_original_mbuf (PNATState , struct ip *); 203 204 -
trunk/src/VBox/Devices/Network/slirp/libslirp.h
r38111 r38971 47 47 #endif 48 48 49 int slirp_init(PNATState *, uint32_t, uint32_t, bool, bool, int, void *);49 int slirp_init(PNATState *, uint32_t, uint32_t, bool, bool, int, int, void *); 50 50 void slirp_register_statistics(PNATState pData, PPDMDRVINS pDrvIns); 51 51 void slirp_deregister_statistics(PNATState pData, PPDMDRVINS pDrvIns); -
trunk/src/VBox/Devices/Network/slirp/slirp.c
r38170 r38971 584 584 585 585 int slirp_init(PNATState *ppData, uint32_t u32NetAddr, uint32_t u32Netmask, 586 bool fPassDomain, bool fUseHostResolver, int i32AliasMode, void *pvUser) 586 bool fPassDomain, bool fUseHostResolver, int i32AliasMode, 587 int iIcmpCacheLimit, void *pvUser) 587 588 { 588 589 int fNATfailed = 0; … … 635 636 if_init(pData); 636 637 ip_init(pData); 637 icmp_init(pData );638 icmp_init(pData, iIcmpCacheLimit); 638 639 639 640 /* Initialise mbufs *after* setting the MTU */ … … 772 773 if (pData == NULL) 773 774 return; 774 #ifdef RT_OS_WINDOWS 775 pData->pfIcmpCloseHandle(pData->icmp_socket.sh); 776 FreeLibrary(pData->hmIcmpLibrary); 777 RTMemFree(pData->pvIcmpBuffer); 778 #else 779 closesocket(pData->icmp_socket.s); 780 #endif 775 icmp_finit(pData); 781 776 782 777 slirp_link_down(pData);
Note:
See TracChangeset
for help on using the changeset viewer.