Changeset 3171 for trunk/src/wsock32


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

relay bugfixes

Location:
trunk/src/wsock32
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wsock32/makefile

    r3139 r3171  
    1 # $Id: makefile,v 1.21 2000-03-17 16:06:42 sandervl Exp $
     1# $Id: makefile,v 1.22 2000-03-20 20:31:29 sandervl Exp $
    22
    33#
     
    3636# Target name - name of the dll without extention and path.
    3737TARGET = wsock32
     38
     39CXXFLAGS = $(CXXFLAGS)
    3840
    3941
  • 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      }
  • trunk/src/wsock32/relaywin.h

    r2013 r3171  
    1 /* $Id: relaywin.h,v 1.1 1999-12-07 20:25:48 achimha Exp $ */
     1/* $Id: relaywin.h,v 1.2 2000-03-20 20:31:30 sandervl Exp $ */
    22
    33/*
     
    4747
    4848
     49#define  NO_SOCKET                      -1
     50
    4951typedef struct tagHwndMsgPair
    5052{
     
    5254  ULONG ulMsg; /* the message code to send */
    5355  ULONG ulRequestType; /* the type of request that this belongs to */
     56  ULONG socket;
    5457  PVOID pvUserData1; /* request specific data field */
    5558  PVOID pvUserData2; /* request specific data field */
     
    6568                                 ULONG ulMsg,
    6669                                 ULONG ulRequestType,
     70                                 ULONG socket,
    6771                                 BOOL  fSingleRequestPerWindow,
    6872                                 PVOID pvUserData1 = 0,
     
    7276ULONG            RelayFree      (ULONG ulID);
    7377
    74 ULONG            RelayFreeByHwnd(HWND  hwnd);
     78ULONG            RelayFreeByHwnd(ULONG socket, HWND  hwnd);
    7579
    7680PHWNDMSGPAIR     RelayQuery     (ULONG ulID);
  • trunk/src/wsock32/wsock32.cpp

    r3139 r3171  
    1 /* $Id: wsock32.cpp,v 1.20 2000-03-17 16:06:42 sandervl Exp $ */
     1/* $Id: wsock32.cpp,v 1.21 2000-03-20 20:31:30 sandervl Exp $ */
    22
    33/*
     
    12021202                       wMsg,
    12031203                       ASYNCREQUEST_GETSERVBYNAME,
     1204                       NO_SOCKET,
    12041205                       FALSE,
    12051206                       buf);
     
    12521253                       wMsg,
    12531254                       ASYNCREQUEST_GETSERVBYPORT,
     1255                       NO_SOCKET,
    12541256                       FALSE,
    12551257                       buf);
     
    13011303                       wMsg,
    13021304                       ASYNCREQUEST_GETPROTOBYNAME,
     1305                       NO_SOCKET,
    13031306                       FALSE,
    13041307                       buf);
     
    13491352                       wMsg,
    13501353                       ASYNCREQUEST_GETPROTOBYNUMBER,
     1354                       NO_SOCKET,
    13511355                       FALSE,
    13521356                       buf);
     
    13991403                       wMsg,
    14001404                       ASYNCREQUEST_GETHOSTBYNAME,
     1405                       NO_SOCKET,
    14011406                       FALSE,
    14021407                       (PVOID)buf, (PVOID)buflen);
     
    14491454                       wMsg,
    14501455                       ASYNCREQUEST_GETHOSTBYADDR,
     1456                       NO_SOCKET,
    14511457                       FALSE,
    14521458                       buf);
     
    15361542  {
    15371543    // remove entry from list
    1538     RelayFreeByHwnd(hWnd);
     1544    RelayFreeByHwnd(s, hWnd);
    15391545  }
    15401546  else
     
    15431549                         wMsg,
    15441550                         ASYNCREQUEST_SELECT,
     1551                         s,
    15451552                         FALSE); //SvL: allow multiple selects -> pmwsock should fail if it not allowed
    1546 //                         TRUE);
    15471553
    15481554  rc = WSAAsyncSelect(s,
Note: See TracChangeset for help on using the changeset viewer.