- Timestamp:
- Oct 21, 2001, 3:43:51 PM (24 years ago)
- Location:
- trunk/src/wsock32
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wsock32/asyncapi.cpp
r7140 r7146 1 /* $Id: asyncapi.cpp,v 1.1 7 2001-10-19 18:34:47 achimhaExp $ */1 /* $Id: asyncapi.cpp,v 1.18 2001-10-21 13:43:51 sandervl Exp $ */ 2 2 3 3 /* … … 407 407 ULONG eventReply = WSAMAKESELECTREPLY(event, socket_error); 408 408 409 #ifdef DEBUG 410 char *pszEvent = NULL; 411 412 switch(event) { 413 case FD_READ: 414 pszEvent = "FD_READ"; 415 break; 416 case FD_WRITE: 417 pszEvent = "FD_WRITE"; 418 break; 419 case FD_OOB: 420 pszEvent = "FD_OOB"; 421 break; 422 case FD_ACCEPT: 423 pszEvent = "FD_ACCEPT"; 424 break; 425 case FD_CONNECT: 426 pszEvent = "FD_CONNECT"; 427 break; 428 case FD_CLOSE: 429 pszEvent = "FD_CLOSE"; 430 break; 431 case FD_QOS: 432 pszEvent = "FD_QOS"; 433 break; 434 case FD_GROUP_QOS: 435 pszEvent = "FD_GROUP_QOS"; 436 break; 437 case FD_ROUTING_INTERFACE_CHANGE: 438 pszEvent = "FD_ROUTING_INTERFACE_CHANGE"; 439 break; 440 case FD_ADDRESS_LIST_CHANGE: 441 pszEvent = "FD_ADDRESS_LIST_CHANGE"; 442 break; 443 } 444 #endif 445 409 446 if (pThreadParm->u.asyncselect.mode == WSA_SELECT_HWND) 410 447 { 411 dprintf(("AsyncSelectNotifyEvent: notifying window, socket: 0x%x, window handle: 0x%x, window message: 0x%x, event: 0x%x", pThreadParm->u.asyncselect.s, pThreadParm->notifyHandle, pThreadParm->notifyData, eventReply));448 dprintf(("AsyncSelectNotifyEvent: WINDOW, socket: 0x%x, window handle: 0x%x, window message: 0x%x, event: %s (0x%x)", pThreadParm->u.asyncselect.s, pThreadParm->notifyHandle, pThreadParm->notifyData, pszEvent, eventReply)); 412 449 PostMessageA((HWND)pThreadParm->notifyHandle, (DWORD)pThreadParm->notifyData, (WPARAM)pThreadParm->u.asyncselect.s, 413 450 (LPARAM)eventReply); … … 416 453 if (pThreadParm->u.asyncselect.mode == WSA_SELECT_HEVENT) 417 454 { 418 dprintf(("AsyncSelectNotifyEvent: notifying event semaphore, socket: 0x%x, HEVENT: 0x%x, event: 0x%x", pThreadParm->u.asyncselect.s, pThreadParm->notifyHandle, event));455 dprintf(("AsyncSelectNotifyEvent: SEM, socket: 0x%x, HEVENT: 0x%x, event: %s (0x%x)", pThreadParm->u.asyncselect.s, pThreadParm->notifyHandle, pszEvent, event)); 419 456 // set the event bit in the mask 420 457 pThreadParm->u.asyncselect.lLastEvent |= event; … … 496 533 if(ret == SOCKET_ERROR) { 497 534 int selecterr = sock_errno(); 498 dprintf 2(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr));535 dprintf(("WSAsyncSelectThreadProc %x rds=%d, wrs=%d, oos =%d, pending = %x select returned %x", pThreadParm->u.asyncselect.s, noread, nowrite, noexcept, lEventsPending, selecterr)); 499 536 if(selecterr && selecterr < SOCBASEERR) { 500 537 selecterr += SOCBASEERR; … … 591 628 } 592 629 } 593 if((lEventsPending & FD_READ) && bytesread > =0) {630 if((lEventsPending & FD_READ) && bytesread > 0) { 594 631 AsyncSelectNotifyEvent(pThreadParm, FD_READ, NO_ERROR); 595 632 } 596 #if 0597 //SvL: This generates FD_CLOSE messages when the connection is just fine598 // (recv executed in another thread when select returns)599 633 else 600 if((lEventsPending & FD_CLOSE) && (state == 0 && bytesread == 0)) { 601 dprintf(("FD_CLOSE; state == 0 && bytesread == 0")); 602 AsyncSelectNotifyEvent(pThreadParm, FD_CLOSE, NO_ERROR); 603 } 604 #endif 634 if((lEventsPending & FD_CLOSE) && (state == 0 && bytesread == 0)) 635 { 636 state = ioctl(s, FIOBSTATUS, (char *)&tmp, sizeof(tmp)); 637 638 //Have to make sure this doesn't generates FD_CLOSE 639 //messages when the connection is just fine (recv 640 //executed in another thread when select returns) 641 if(state & (SS_CANTRCVMORE|SS_CANTSENDMORE|SS_ISDISCONNECTING|SS_ISDISCONNECTED)) { 642 dprintf(("FD_CLOSE; state == 0 && bytesread == 0, state = %x", state)); 643 AsyncSelectNotifyEvent(pThreadParm, FD_CLOSE, NO_ERROR); 644 } 645 } 605 646 } 606 647 if(ready(noexcept)) … … 720 761 pThreadParm->u.asyncselect.lLastEvent = 0; 721 762 // reset all error bits 722 memset( &pThreadParm->u.asyncselect.iErrorCode, 0, sizeof(int) * FD_MAX_EVENTS);763 memset(pThreadParm->u.asyncselect.iErrorCode, 0, sizeof(pThreadParm->u.asyncselect.iErrorCode)); 723 764 pThreadParm->u.asyncselect.asyncSem = new VSemaphore; 724 765 if(pThreadParm->u.asyncselect.asyncSem == NULL) { -
trunk/src/wsock32/asyncthread.cpp
r7041 r7146 1 /* $Id: asyncthread.cpp,v 1.1 2 2001-10-13 18:51:07sandervl Exp $ */1 /* $Id: asyncthread.cpp,v 1.13 2001-10-21 13:43:51 sandervl Exp $ */ 2 2 3 3 /* … … 40 40 //// WSASetBlocking(FALSE, pThreadParm->hThread); 41 41 42 dprintf(("AsyncThread %x exit", pThreadParm->hAsyncTaskHandle));42 dprintf(("AsyncThread %x socket %x exit", pThreadParm->hAsyncTaskHandle, pThreadParm->u.asyncselect.s)); 43 43 free((PVOID)pThreadParm); 44 44 } … … 48 48 { 49 49 TID tid; 50 51 dprintf(("QueueAsyncJob for socket %x", pThreadParm->u.asyncselect.s)); 50 52 51 53 pThreadParm->asyncProc = asyncproc; -
trunk/src/wsock32/wsock2.cpp
r7041 r7146 1 /* $Id: wsock2.cpp,v 1. 3 2001-10-13 18:51:08sandervl Exp $ */1 /* $Id: wsock2.cpp,v 1.4 2001-10-21 13:43:51 sandervl Exp $ */ 2 2 3 3 /* … … 24 24 int WINAPI WSAEventSelect(SOCKET s, WSAEVENT hEvent, LONG lEvent) 25 25 { 26 TRACE("WS2_32: WSAEventSelect socket 0x%x, hEvent 0x%x, event 0x%x", s, hEvent, (unsigned)lEvent);26 dprintf(("WS2_32: WSAEventSelect socket 0x%x, hEvent 0x%x, event 0x%x", s, hEvent, lEvent)); 27 27 28 28 // forward call to worker function in HEVENT notification mode
Note:
See TracChangeset
for help on using the changeset viewer.