mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-28 23:13:02 +00:00
move domain resolution to socket.c (#23)
This commit is contained in:
parent
3826d379e9
commit
0174cfa0fa
7 changed files with 18 additions and 42 deletions
|
@ -8,7 +8,6 @@
|
||||||
#include "pc/network/network.h"
|
#include "pc/network/network.h"
|
||||||
#include "pc/network/socket/socket.h"
|
#include "pc/network/socket/socket.h"
|
||||||
#include "pc/network/coopnet/coopnet.h"
|
#include "pc/network/coopnet/coopnet.h"
|
||||||
#include "pc/network/socket/domain_res.h"
|
|
||||||
#include "pc/utils/misc.h"
|
#include "pc/utils/misc.h"
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/debuglog.h"
|
#include "pc/debuglog.h"
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include "socket.h"
|
|
||||||
#include "pc/configfile.h"
|
|
||||||
#include "pc/debuglog.h"
|
|
||||||
#include "pc/djui/djui.h"
|
|
||||||
#ifdef WINSOCK
|
|
||||||
#include <winsock2.h>
|
|
||||||
#include <ws2tcpip.h>
|
|
||||||
#else
|
|
||||||
#include <netdb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char gGetHostName[MAX_CONFIG_STRING] = "";
|
|
||||||
|
|
||||||
void domain_resolution(void) {
|
|
||||||
struct in_addr addr;
|
|
||||||
char *host_name = configJoinIp;
|
|
||||||
struct hostent *remoteHost;
|
|
||||||
char *domainname = "";
|
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
remoteHost = gethostbyname(host_name);
|
|
||||||
if (remoteHost == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (remoteHost->h_addrtype == AF_INET) {
|
|
||||||
while (remoteHost->h_addr_list[i] != 0) {
|
|
||||||
addr.s_addr = *(u_long *) remoteHost->h_addr_list[i++];
|
|
||||||
domainname = inet_ntoa(addr);
|
|
||||||
snprintf(configJoinIp, MAX_CONFIG_STRING, "%s", domainname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
extern char gGetHostName[MAX_CONFIG_STRING];
|
|
||||||
|
|
||||||
void domain_resolution(void);
|
|
||||||
void save_domain(void);
|
|
|
@ -1,5 +1,4 @@
|
||||||
#include "socket.h"
|
#include "socket.h"
|
||||||
#include "domain_res.h"
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "pc/debuglog.h"
|
#include "pc/debuglog.h"
|
||||||
|
@ -8,6 +7,19 @@
|
||||||
static SOCKET sCurSocket = INVALID_SOCKET;
|
static SOCKET sCurSocket = INVALID_SOCKET;
|
||||||
static struct sockaddr_in sAddr[MAX_PLAYERS] = { 0 };
|
static struct sockaddr_in sAddr[MAX_PLAYERS] = { 0 };
|
||||||
|
|
||||||
|
char gGetHostName[MAX_CONFIG_STRING] = "";
|
||||||
|
|
||||||
|
void resolve_domain(void) {
|
||||||
|
struct hostent *remoteHost = gethostbyname(configJoinIp);
|
||||||
|
if (remoteHost && remoteHost->h_addrtype == AF_INET) {
|
||||||
|
struct in_addr addr;
|
||||||
|
for (int i = 0; remoteHost->h_addr_list[i] != 0; i++) {
|
||||||
|
memcpy(&addr, remoteHost->h_addr_list[i], sizeof(struct in_addr));
|
||||||
|
snprintf(configJoinIp, MAX_CONFIG_STRING, "%s", inet_ntoa(addr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int socket_bind(SOCKET socket, unsigned int port) {
|
static int socket_bind(SOCKET socket, unsigned int port) {
|
||||||
struct sockaddr_in rxAddr;
|
struct sockaddr_in rxAddr;
|
||||||
rxAddr.sin_family = AF_INET;
|
rxAddr.sin_family = AF_INET;
|
||||||
|
@ -90,7 +102,7 @@ static bool ns_socket_initialize(enum NetworkType networkType, UNUSED bool recon
|
||||||
// save the port to send to
|
// save the port to send to
|
||||||
sAddr[0].sin_family = AF_INET;
|
sAddr[0].sin_family = AF_INET;
|
||||||
sAddr[0].sin_port = htons(port);
|
sAddr[0].sin_port = htons(port);
|
||||||
domain_resolution();
|
resolve_domain();
|
||||||
sAddr[0].sin_addr.s_addr = inet_addr(configJoinIp);
|
sAddr[0].sin_addr.s_addr = inet_addr(configJoinIp);
|
||||||
LOG_INFO("connecting to %s %u", configJoinIp, port);
|
LOG_INFO("connecting to %s %u", configJoinIp, port);
|
||||||
snprintf(configJoinIp, MAX_CONFIG_STRING, "%s", gGetHostName);
|
snprintf(configJoinIp, MAX_CONFIG_STRING, "%s", gGetHostName);
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
extern struct NetworkSystem gNetworkSystemSocket;
|
extern struct NetworkSystem gNetworkSystemSocket;
|
||||||
|
|
||||||
|
extern char gGetHostName[];
|
||||||
|
|
||||||
SOCKET socket_initialize(void);
|
SOCKET socket_initialize(void);
|
||||||
void socket_shutdown(SOCKET socket);
|
void socket_shutdown(SOCKET socket);
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
|
||||||
#define SOCKET unsigned int
|
#define SOCKET unsigned int
|
||||||
#define INVALID_SOCKET (unsigned int)(-1)
|
#define INVALID_SOCKET (unsigned int)(-1)
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#include "pc/lua/utils/smlua_audio_utils.h"
|
#include "pc/lua/utils/smlua_audio_utils.h"
|
||||||
|
|
||||||
#include "pc/network/version.h"
|
#include "pc/network/version.h"
|
||||||
#include "pc/network/socket/domain_res.h"
|
#include "pc/network/socket/socket.h"
|
||||||
#include "pc/network/network_player.h"
|
#include "pc/network/network_player.h"
|
||||||
#include "pc/update_checker.h"
|
#include "pc/update_checker.h"
|
||||||
#include "pc/djui/djui.h"
|
#include "pc/djui/djui.h"
|
||||||
|
|
Loading…
Reference in a new issue