Changeset 39286 in vbox
- Timestamp:
- Nov 14, 2011 6:45:27 AM (13 years ago)
- svn:sync-xref-src-repo-rev:
- 74836
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/slirp/debug.c
r39285 r39286 54 54 STRINGIFY(TCPS_FIN_WAIT_2), 55 55 STRINGIFY(TCPS_TIME_WAIT) 56 }; 57 58 typedef struct DEBUGSTRSOCKETSTATE 59 { 60 uint32_t u32SocketState; 61 const char *pcszSocketStateName; 62 } DEBUGSTRSOCKETSTATE; 63 64 #define DEBUGSTRSOCKETSTATE_HELPER(x) {(x), #x} 65 66 static DEBUGSTRSOCKETSTATE g_apszSocketStates[8] = 67 { 68 DEBUGSTRSOCKETSTATE_HELPER(SS_NOFDREF), 69 DEBUGSTRSOCKETSTATE_HELPER(SS_ISFCONNECTING), 70 DEBUGSTRSOCKETSTATE_HELPER(SS_ISFCONNECTED), 71 DEBUGSTRSOCKETSTATE_HELPER(SS_FCANTRCVMORE), 72 DEBUGSTRSOCKETSTATE_HELPER(SS_FCANTSENDMORE), 73 DEBUGSTRSOCKETSTATE_HELPER(SS_FWDRAIN), 74 DEBUGSTRSOCKETSTATE_HELPER(SS_FACCEPTCONN), 75 DEBUGSTRSOCKETSTATE_HELPER(SS_FACCEPTONCE), 56 76 }; 57 77 … … 248 268 249 269 static DECLCALLBACK(size_t) 250 print _socket(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput,270 printSocket(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, 251 271 const char *pszType, void const *pvValue, 252 272 int cchWidth, int cchPrecision, unsigned fFlags, … … 280 300 in_addr = (struct sockaddr_in *)&addr; 281 301 return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "socket %d:(proto:%u) " 282 "state=% 04x"302 "state=%R[natsockstate] " 283 303 "f_(addr:port)=%RTnaipv4:%d " 284 304 "l_(addr:port)=%RTnaipv4:%d " … … 291 311 in_addr->sin_addr.s_addr, 292 312 RT_N2H_U16(in_addr->sin_port)); 313 } 314 315 static DECLCALLBACK(size_t) 316 printNATSocketState(PFNRTSTROUTPUT pfnOutput, void *pvArgOutput, 317 const char *pszType, void const *pvValue, 318 int cchWidth, int cchPrecision, unsigned fFlags, 319 void *pvUser) 320 { 321 uint32_t u32SocketState = (uint32_t)(uintptr_t)pvValue; 322 int idxNATState = 0; 323 NOREF(cchWidth); 324 NOREF(cchPrecision); 325 NOREF(fFlags); 326 NOREF(pvUser); 327 AssertReturn(strcmp(pszType, "natsockstate") == 0, 0); 328 329 for (idxNATState = 0; idxNATState < RT_ELEMENTS(g_apszSocketStates); ++idxNATState) 330 { 331 if (u32SocketState == g_apszSocketStates[idxNATState].u32SocketState) 332 return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, g_apszSocketStates[idxNATState].pcszSocketStateName); 333 } 334 return RTStrFormat(pfnOutput, pvArgOutput, NULL, 0, "[unknown state %RX32]", u32SocketState); 293 335 } 294 336 … … 502 544 { 503 545 504 rc = RTStrFormatTypeRegister("natsock", print_socket, NULL); AssertRC(rc); 546 rc = RTStrFormatTypeRegister("natsock", printSocket, NULL); AssertRC(rc); 547 rc = RTStrFormatTypeRegister("natsockstate", printNATSocketState, NULL); AssertRC(rc); 505 548 rc = RTStrFormatTypeRegister("natwinnetevents", 506 549 print_networkevents, NULL); AssertRC(rc);
Note:
See TracChangeset
for help on using the changeset viewer.