| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /*
- * Copyright (c) 2014, Oculus VR, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
- /*
- #include "RakNetSocket.h"
- #include "RakMemoryOverride.h"
- using namespace RakNet;
- #if defined(__native_client__)
- using namespace pp;
- #endif
- RakNetSocket::RakNetSocket() {
- #if !defined(WINDOWS_STORE_RT)
- s = 0;
- #endif
- remotePortRakNetWasStartedOn_PS3_PSP2 = 0;
- userConnectionSocketIndex = (unsigned int) -1;
- socketFamily = 0;
- blockingSocket = 0;
- extraSocketOptions = 0;
- chromeInstance = 0;
- #if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS)
- recvEvent=INVALID_HANDLE_VALUE;
- #endif
- #ifdef __native_client__
- s = 0;
- sendInProgress = false;
- nextSendSize = 0;
- #endif
- }
- RakNetSocket::~RakNetSocket()
- {
- #ifdef __native_client__
- if(s != 0)
- ((PPB_UDPSocket_Private_0_4*) pp::Module::Get()->GetBrowserInterface(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4))->Close(s);
- #elif defined(WINDOWS_STORE_RT)
- WinRTClose(s);
- #else
- if ((__UDPSOCKET__)s != 0)
- closesocket__(s);
- #endif
-
- #if defined (_WIN32) && defined(USE_WAIT_FOR_MULTIPLE_EVENTS)
- if (recvEvent!=INVALID_HANDLE_VALUE)
- {
- CloseHandle( recvEvent );
- recvEvent = INVALID_HANDLE_VALUE;
- }
- #endif
- }
- //
- // void RakNetSocket::Accept(
- // struct sockaddr *addr,
- // int *addrlen)
- // {
- // accept__(s, addr, addrlen);
- // }
- //
- // void RakNetSocket::Close( void )
- // {
- // closesocket__(s);
- // }
- RakNetSocket* RakNetSocket::Create
- #ifdef __native_client__
- (_PP_Instance_ _chromeInstance)
- #else
- (int af,
- int type,
- int protocol)
- #endif
- {
- __UDPSOCKET__ sock;
- #ifndef __native_client__
- RakAssert(type==SOCK_DGRAM);
- #endif
- #ifdef __native_client__
- sock = ((PPB_UDPSocket_Private_0_4*) Module::Get()->GetBrowserInterface(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4))->Create(_chromeInstance);
- #elif defined(SN_TARGET_PSP2)
- sock = sceNetSocket( "RakNetSocket::Create", SCE_NET_AF_INET, SCE_NET_SOCK_DGRAM_P2P, 0 );
- #elif defined(WINDOWS_STORE_RT)
- sock = WinRTCreateDatagramSocket(af,type,protocol);
- #elif defined(_PS3) || defined(__PS3__) || defined(SN_TARGET_PS3) || defined(_PS4)
- sock = socket__( AF_INET, SOCK_DGRAM_P2P, 0 );
- #else
- sock = socket__(af, type, protocol);
- #endif
- #if !defined(WINDOWS_STORE_RT)
- if (sock<0)
- return 0;
- #endif
- RakNetSocket *rns = RakNet::OP_NEW<RakNetSocket>(_FILE_AND_LINE_);
- rns->s = sock;
- #ifdef __native_client__
- rns->chromeInstance = _chromeInstance;
- #endif
- return rns;
- }
- int RakNetSocket::Bind(
- const struct sockaddr *addr,
- int namelen)
- {
- return bind__(s,addr,namelen);
- }
- int RakNetSocket::IOCTLSocket(
- long cmd,
- unsigned long *argp)
- {
- #if defined(_WIN32)
- return ioctlsocket__(s,cmd,argp);
- #else
- return 0;
- #endif
- }
- int RakNetSocket::Listen (
- int backlog)
- {
- return listen__(s,backlog);
- }
- int RakNetSocket::SetSockOpt(
- int level,
- int optname,
- const char * optval,
- int optlen)
- {
- return setsockopt__(s,level,optname,optval,optlen);
- }
- int RakNetSocket::Shutdown(
- int how)
- {
- #ifndef SN_TARGET_PSP2
- return shutdown__(s,how);
- #else
- return 0;
- #endif
- }
- */
|