Changeset 28390 in vbox
- Timestamp:
- Apr 16, 2010 3:39:53 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 60151
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/slirp/socket.c
r28035 r28390 1236 1236 int nbytes = 0; 1237 1237 u_char code = ~0; 1238 int out_len; 1239 int size; 1238 1240 1239 1241 len = pData->pfIcmpParseReplies(pData->pvIcmpBuffer, pData->szIcmpBuffer); … … 1267 1269 m = m_get(pData); 1268 1270 # else 1269 m = m_gethdr(pData, M_NOWAIT, MT_HEADER); 1271 out_len = ETH_HLEN + sizeof(struct ip) + 8; 1272 size; 1273 size = MCLBYTES; 1274 if (out_len < MSIZE) 1275 size = MCLBYTES; 1276 else if (out_len < MCLBYTES) 1277 size = MCLBYTES; 1278 else if (out_len < MJUM9BYTES) 1279 size = MJUM9BYTES; 1280 else if (out_len < MJUM16BYTES) 1281 size = MJUM16BYTES; 1282 else 1283 AssertMsgFailed(("Unsupported size")); 1284 1285 m = m_getjcl(pData, M_NOWAIT, MT_HEADER, M_PKTHDR, size); 1270 1286 # endif 1287 m->m_len = 0; 1271 1288 m->m_data += if_maxlinkhdr; 1272 1289 ip = mtod(m, struct ip *); … … 1290 1307 memcpy(icp->icmp_data, icr[i].Data, nbytes); 1291 1308 # else 1292 AssertMsgFailed(("ICMP")); 1309 hlen = (ip->ip_hl << 2); 1310 m->m_pkthdr.header = mtod(m, void *); 1311 m->m_len = data_len; 1312 1313 m_copyback(pData, m, hlen + 8, icr[i].DataSize, icr[i].Data); 1293 1314 # endif 1294 1315 … … 1324 1345 memcpy(icp->icmp_data, ip_broken, nbytes); 1325 1346 #else 1326 AssertMsgFailed(("ICMP")); 1347 m->m_len = data_len; 1348 m->m_pkthdr.header = mtod(m, void *); 1349 m_copyback(pData, m, ip->ip_hl >> 2, icr[i].DataSize, icr[i].Data); 1327 1350 #endif 1328 1351 icmp_reflect(pData, m);
Note:
See TracChangeset
for help on using the changeset viewer.