MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / Open

Method Open

plugins/dm.gameconnection/clsocket/ActiveSocket.cpp:252–310  ·  view source on GitHub ↗

------------------------------------------------------------------------------ Open() - Create a connection to a specified address on a specified port ------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

250//
251//------------------------------------------------------------------------------
252bool CActiveSocket::Open(const char *pAddr, uint16 nPort)
253{
254 bool bRetVal = false;
255
256 if (IsSocketValid() == false)
257 {
258 SetSocketError(CSimpleSocket::SocketInvalidSocket);
259 return bRetVal;
260 }
261
262 if (pAddr == NULL)
263 {
264 SetSocketError(CSimpleSocket::SocketInvalidAddress);
265 return bRetVal;
266 }
267
268 if (nPort == 0)
269 {
270 SetSocketError(CSimpleSocket::SocketInvalidPort);
271 return bRetVal;
272 }
273
274 switch (m_nSocketType)
275 {
276 case CSimpleSocket::SocketTypeTcp :
277 {
278 bRetVal = ConnectTCP(pAddr, nPort);
279 break;
280 }
281 case CSimpleSocket::SocketTypeUdp :
282 {
283 bRetVal = ConnectUDP(pAddr, nPort);
284 break;
285 }
286 case CSimpleSocket::SocketTypeRaw :
287 break;
288 default:
289 break;
290 }
291
292 //--------------------------------------------------------------------------
293 // If successful then create a local copy of the address and port
294 //--------------------------------------------------------------------------
295 if (bRetVal)
296 {
297 socklen_t nSockLen = sizeof(struct sockaddr);
298
299 memset(&m_stServerSockaddr, 0, nSockLen);
300 getpeername(m_socket, (struct sockaddr *)&m_stServerSockaddr, &nSockLen);
301
302 nSockLen = sizeof(struct sockaddr);
303 memset(&m_stClientSockaddr, 0, nSockLen);
304 getsockname(m_socket, (struct sockaddr *)&m_stClientSockaddr, &nSockLen);
305
306 SetSocketError(SocketSuccess);
307 }
308
309 return bRetVal;

Callers 4

_onCopyTexNameMethod · 0.80
getStringMethod · 0.80
setStringMethod · 0.80
connectMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected