Ignore:
Timestamp:
Mar 20, 2000, 9:31:30 PM (25 years ago)
Author:
sandervl
Message:

relay bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wsock32/relaywin.cpp

    r3139 r3171  
    7878                 ULONG ulMsg,
    7979                 ULONG ulRequestType,
     80                 ULONG socket,
    8081                 BOOL  fSingleRequestPerWindow,
    8182                 PVOID pvUserData1,
     
    9697                arrHwndMsgPair[ulCounter].ulMsg         = ulMsg;
    9798                arrHwndMsgPair[ulCounter].ulRequestType = ulRequestType;
     99                arrHwndMsgPair[ulCounter].socket        = socket;
    98100                arrHwndMsgPair[ulCounter].pvUserData1   = pvUserData1;
    99101                arrHwndMsgPair[ulCounter].pvUserData2   = pvUserData2;
     
    130132  arrHwndMsgPair[ulID-1].ulMsg = 0;
    131133  arrHwndMsgPair[ulID-1].ulRequestType = 0;
     134  arrHwndMsgPair[ulID-1].socket = 0;
    132135  arrHwndMsgPair[ulID-1].pvUserData1 = 0;
    133136  arrHwndMsgPair[ulID-1].pvUserData2 = 0;
     
    151154 *****************************************************************************/
    152155
    153 ULONG RelayFreeByHwnd(HWND hwnd)
     156ULONG RelayFreeByHwnd(ULONG socket, HWND hwnd)
    154157{
    155158  ULONG ulCounter;
     
    158161  for(ulCounter = 0; ulCounter < MAX_ASYNC_SOCKETS; ulCounter++)
    159162  {
    160         if ( arrHwndMsgPair[ulCounter].hwnd == hwnd )  // same window?
     163        if (arrHwndMsgPair[ulCounter].hwnd == hwnd &&
     164            arrHwndMsgPair[ulCounter].socket == socket)  // same window && socket?
    161165        {
    162166                arrHwndMsgPair[ulCounter].hwnd  = 0; // free slot
    163167                arrHwndMsgPair[ulCounter].ulMsg = 0;
    164168                arrHwndMsgPair[ulCounter].ulRequestType = 0;
     169                arrHwndMsgPair[ulCounter].socket = 0;
    165170                arrHwndMsgPair[ulCounter].pvUserData1 = 0;
    166171                arrHwndMsgPair[ulCounter].pvUserData2 = 0;
     
    244249      case ASYNCREQUEST_SELECT:
    245250      {
    246         dprintf(("WSOCK32:RelayWindowProc, AsyncSelect notification %x %x (%d,%d) time %x\n", pHM->hwnd, pHM->ulMsg, mp1, mp2, WinQueryMsgTime(hab)));
     251        dprintf(("WSOCK32:RelayWindowProc, AsyncSelect notification %x %x (%x,%x) time %x\n", pHM->hwnd, pHM->ulMsg, mp1, mp2, WinQueryMsgTime(hab)));
     252        if(SHORT2FROMMP(mp2) == WSAECONNREFUSED) {
     253                mp2 = (MPARAM)((WSAENOTCONN << 16) | 0x10);
     254        }
    247255        break;
    248256      }
Note: See TracChangeset for help on using the changeset viewer.