Changeset 53298 in vbox for trunk/src/VBox/Devices/Network
- Timestamp:
- Nov 11, 2014 4:51:45 AM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 96877
- Location:
- trunk/src/VBox/Devices/Network/slirp
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/slirp/ip_icmp.c
r53292 r53298 119 119 120 120 #else /* RT_OS_WINDOWS */ 121 /* Resolve symbols we need. */ 122 { 123 RTLDRMOD hLdrMod; 124 int rc = RTLdrLoadSystem("Iphlpapi.dll", true /*fNoUnload*/, &hLdrMod); 125 if (RT_SUCCESS(rc)) 126 { 127 pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies"); 128 pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle"); 129 RTLdrClose(hLdrMod); 130 } 131 132 if (pData->pfIcmpParseReplies == NULL) 133 { 134 int rc = RTLdrLoadSystem("Icmp.dll", true /*fNoUnload*/, &hLdrMod); 135 if (RT_FAILURE(rc)) 136 { 137 LogRel(("NAT: Icmp.dll could not be loaded: %Rrc\n", rc)); 138 return 1; 139 } 140 pData->pfIcmpParseReplies = (long (WINAPI *)(void *, long))RTLdrGetFunction(hLdrMod, "IcmpParseReplies"); 141 pData->pfIcmpCloseHandle = (BOOL (WINAPI *)(HANDLE))RTLdrGetFunction(hLdrMod, "IcmpCloseHandle"); 142 RTLdrClose(hLdrMod); 143 } 144 } 145 if (pData->pfIcmpParseReplies == NULL) 146 { 147 LogRel(("NAT: Can't find IcmpParseReplies symbol\n")); 121 if (icmpwin_init(pData) != 0) 148 122 return 1; 149 }150 if (pData->pfIcmpCloseHandle == NULL)151 {152 LogRel(("NAT: Can't find IcmpCloseHandle symbol\n"));153 return 1;154 }155 156 pData->icmp_socket.sh = IcmpCreateFile();157 pData->phEvents[VBOX_ICMP_EVENT_INDEX] = CreateEvent(NULL, FALSE, FALSE, NULL);158 pData->cbIcmpBuffer = sizeof(ICMP_ECHO_REPLY) * 10;159 pData->pvIcmpBuffer = RTMemAlloc(pData->cbIcmpBuffer);160 123 #endif /* RT_OS_WINDOWS */ 161 124 … … 172 135 icmp_cache_clean(pData, -1); 173 136 #ifdef RT_OS_WINDOWS 174 pData->pfIcmpCloseHandle(pData->icmp_socket.sh); 175 RTMemFree(pData->pvIcmpBuffer); 137 icmpwin_finit(pData); 176 138 #else 177 139 closesocket(pData->icmp_socket.s); -
trunk/src/VBox/Devices/Network/slirp/ip_icmp.h
r44528 r53298 203 203 struct icmp_msg * icmp_find_original_mbuf (PNATState , struct ip *); 204 204 205 #ifdef RT_OS_WINDOWS 206 /* Windows ICMP API code in ip_icmpwin.c */ 207 int icmpwin_init (PNATState); 208 void icmpwin_finit (PNATState); 205 209 #endif 210 211 #endif
Note:
See TracChangeset
for help on using the changeset viewer.