- Timestamp:
- May 6, 2002, 11:38:52 AM (23 years ago)
- Location:
- trunk/src/ws2_32
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ws2_32/makefile
r8051 r8370 1 # $Id: makefile,v 1. 6 2002-03-08 11:36:11sandervl Exp $1 # $Id: makefile,v 1.7 2002-05-06 09:38:52 sandervl Exp $ 2 2 3 3 # … … 41 41 $(ODIN32_LIB)/wsock32.lib \ 42 42 $(ODIN32_LIB)/$(ODINCRT).lib \ 43 so32dll.lib \44 tcp32dll.lib \45 43 OS2386.LIB \ 46 44 $(RTLLIB_O) -
trunk/src/ws2_32/socket.cpp
r8051 r8370 1 /* $Id: socket.cpp,v 1.1 2 2002-03-08 11:36:11sandervl Exp $ */1 /* $Id: socket.cpp,v 1.13 2002-05-06 09:38:52 sandervl Exp $ */ 2 2 /* 3 3 * based on Windows Sockets 1.1 specs … … 105 105 return ( socket (af, type, protocol) ); 106 106 } 107 /*********************************************************************** 108 * WSAAccept (WS2_32.26) 109 */ 110 SOCKET WINAPI WSAAccept( SOCKET s, struct WS_sockaddr *addr, LPINT addrlen, 111 LPCONDITIONPROC lpfnCondition, DWORD dwCallbackData) 112 { 113 114 int ret = 0, size = 0; 115 WSABUF CallerId, CallerData, CalleeId, CalleeData; 116 /* QOS SQOS, GQOS; */ 117 GROUP g; 118 SOCKET cs; 119 SOCKADDR src_addr, dst_addr; 120 121 TRACE("Socket %u, sockaddr %p, addrlen %p, fnCondition %p, dwCallbackData %ld\n", 122 s, addr, addrlen, lpfnCondition, dwCallbackData); 123 124 125 size = sizeof(src_addr); 126 cs = accept(s, &src_addr, &size); 127 128 if (cs == SOCKET_ERROR) return SOCKET_ERROR; 129 130 CallerId.buf = (char *)&src_addr; 131 CallerId.len = sizeof(src_addr); 132 133 CallerData.buf = NULL; 134 CallerData.len = (ULONG)NULL; 135 136 getsockname(cs, &dst_addr, &size); 137 138 CalleeId.buf = (char *)&dst_addr; 139 CalleeId.len = sizeof(dst_addr); 140 141 ret = (*lpfnCondition)(&CallerId, &CallerData, NULL, NULL, 142 &CalleeId, &CalleeData, &g, dwCallbackData); 143 144 switch (ret) 145 { 146 case CF_ACCEPT: 147 if (addr && addrlen) 148 addr = (struct WS_sockaddr *)memcpy(addr, &src_addr, (*addrlen > size) ? size : *addrlen ); 149 return cs; 150 case CF_DEFER: 151 SetLastError(WSATRY_AGAIN); 152 return SOCKET_ERROR; 153 case CF_REJECT: 154 closesocket(cs); 155 SetLastError(WSAECONNREFUSED); 156 return SOCKET_ERROR; 157 default: 158 FIXME("Unknown return type from Condition function\n"); 159 SetLastError(WSAENOTSOCK); 160 return SOCKET_ERROR; 161 } 162 163 SetLastError(WSAENOTSOCK); 164 return SOCKET_ERROR; 165 } 107 166 //****************************************************************************** 108 167 //****************************************************************************** -
trunk/src/ws2_32/ws2_32.def
r7088 r8370 1 ; $Id: ws2_32.def,v 1.1 1 2001-10-17 10:22:37sandervl Exp $1 ; $Id: ws2_32.def,v 1.12 2002-05-06 09:38:52 sandervl Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 74 74 ; WSApSetPostRoutine @24 75 75 ; WPUCompleteOverlappedRequest @25 76 ; WSAAccept@2676 WSAAccept = _WSAAccept@20 @26 77 77 ; WSAAddressToStringA @27 78 78 ; WSAAddressToStringW @28
Note:
See TracChangeset
for help on using the changeset viewer.