mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 15:40:44 +00:00
Expand net_socket.c
This commit is contained in:
parent
897a058d29
commit
2f6baffe45
@ -50,6 +50,14 @@ enum socket_protocol
|
||||
SOCKET_PROTOCOL_UDP
|
||||
};
|
||||
|
||||
typedef struct socket_target
|
||||
{
|
||||
unsigned port;
|
||||
const char *server;
|
||||
enum socket_domain domain;
|
||||
enum socket_protocol prot;
|
||||
} socket_target_t;
|
||||
|
||||
int socket_init(void **address, uint16_t port, const char *server, enum socket_type type);
|
||||
|
||||
int socket_close(int fd);
|
||||
|
@ -208,6 +208,23 @@ int socket_connect(int fd, void *data, bool timeout_enable)
|
||||
return connect(fd, addr->ai_addr, addr->ai_addrlen);
|
||||
}
|
||||
|
||||
static int domain_get(enum socket_domain type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SOCKET_DOMAIN_INET:
|
||||
#ifdef VITA
|
||||
return PSP2_NET_AF_INET;
|
||||
#else
|
||||
return AF_INET;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int socket_create(
|
||||
const char *name,
|
||||
enum socket_domain domain_type,
|
||||
@ -215,15 +232,9 @@ int socket_create(
|
||||
enum socket_protocol protocol_type)
|
||||
{
|
||||
int type = 0;
|
||||
int domain = 0;
|
||||
int protocol = 0;
|
||||
int domain = domain_get(domain_type);
|
||||
#ifdef VITA
|
||||
switch (domain_type)
|
||||
{
|
||||
case SOCKET_DOMAIN_INET:
|
||||
domain = PSP2_NET_AF_INET;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (socket_type)
|
||||
{
|
||||
@ -253,13 +264,6 @@ int socket_create(
|
||||
|
||||
return sceNetSocket(name, domain, type, protocol);
|
||||
#else
|
||||
switch (domain_type)
|
||||
{
|
||||
case SOCKET_DOMAIN_INET:
|
||||
domain = AF_INET;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (socket_type)
|
||||
{
|
||||
case SOCKET_TYPE_DATAGRAM:
|
||||
@ -289,3 +293,21 @@ int socket_create(
|
||||
return socket(domain, type, protocol);
|
||||
#endif
|
||||
}
|
||||
|
||||
void socket_set_target(void *data, socket_target_t *in_addr)
|
||||
{
|
||||
struct sockaddr_in *out_target = (struct sockaddr_in*)data;
|
||||
|
||||
out_target->sin_port = inet_htons(in_addr->port);
|
||||
out_target->sin_family = domain_get(in_addr->domain);
|
||||
#ifdef VITA
|
||||
out_target->sin_addr = inet_aton(in_addr->server);
|
||||
#else
|
||||
#ifdef GEKKO
|
||||
out_target->sin_len = 8;
|
||||
#endif
|
||||
|
||||
inet_pton(AF_INET, in_addr->server, &out_target->sin_addr);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
16
netlogger.c
16
netlogger.c
@ -42,6 +42,7 @@ static struct sockaddr_in target;
|
||||
|
||||
void logger_init (void)
|
||||
{
|
||||
socket_target_t in_target;
|
||||
const char *server = PC_DEVELOPMENT_IP_ADDRESS;
|
||||
unsigned port = PC_DEVELOPMENT_UDP_PORT;
|
||||
|
||||
@ -57,18 +58,11 @@ void logger_init (void)
|
||||
SOCKET_TYPE_DATAGRAM,
|
||||
SOCKET_PROTOCOL_NONE);
|
||||
|
||||
target.sin_port = inet_htons(port);
|
||||
#ifdef VITA
|
||||
target.sin_family = PSP2_NET_AF_INET;
|
||||
target.sin_addr = inet_aton(server);
|
||||
#else
|
||||
target.sin_family = AF_INET;
|
||||
#ifdef GEKKO
|
||||
target.sin_len = 8;
|
||||
#endif
|
||||
in_target.port = port;
|
||||
in_target.server = server;
|
||||
in_target.domain = SOCKET_DOMAIN_INET;
|
||||
|
||||
inet_pton(AF_INET, server, &target.sin_addr);
|
||||
#endif
|
||||
socket_set_target(&target, &in_target);
|
||||
}
|
||||
|
||||
void logger_shutdown (void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user