EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
NetUtils.cpp
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur
24 */
25 
26 #include "eve-core.h"
27 
28 #include "network/NetUtils.h"
29 
30 uint32 ResolveIP(const char* hostname, char* errbuf) {
31 #ifdef HAVE_WINSOCK2_H
32  static InitWinsock ws;
33 #endif /* !HAVE_WINSOCK2_H */
34  if( errbuf )
35  errbuf[0] = 0;
36 
37  if( hostname == NULL )
38  {
39  if( errbuf )
40  snprintf(errbuf, ERRBUF_SIZE, "ResolveIP(): hostname == NULL");
41  return 0;
42  }
43 
44  hostent* phostent = gethostbyname( hostname );
45  if( phostent == NULL)
46  {
47  if( errbuf )
48 #ifdef HAVE_WINSOCK2_H
49  snprintf( errbuf, ERRBUF_SIZE, "Unable to get the host name. Error: %i", WSAGetLastError() );
50 #else /* !HAVE_WINSOCK2_H */
51  snprintf( errbuf, ERRBUF_SIZE, "Unable to get the host name. Error: %s", strerror( errno ) );
52 #endif /* !HAVE_WINSOCK2_H */
53  return 0;
54  }
55 
56  in_addr addr;
57  memcpy( &addr, phostent->h_addr, phostent->h_length );
58 
59  return addr.s_addr;
60 }
61 
62 /*bool ParseAddress(const char* iAddress, int32* oIP, int16* oPort, char* errbuf) {
63  Seperator sep(iAddress, ':', 2, 250, false, 0, 0);
64  if (sep.argnum == 1 && sep.IsNumber(1)) {
65  *oIP = ResolveIP(sep.arg[0], errbuf);
66  if (*oIP == 0)
67  return false;
68  if (oPort)
69  *oPort = atoi(sep.arg[1]);
70  return true;
71  }
72  return false;
73 }*/
74 
#define ERRBUF_SIZE
Definition: NetUtils.h:30
#define snprintf
Definition: eve-compat.h:184
unsigned __int32 uint32
Definition: eve-compat.h:50
uint32 ResolveIP(const char *hostname, char *errbuf)
Definition: NetUtils.cpp:30