diff --git a/libretro-common/include/net/net_compat.h b/libretro-common/include/net/net_compat.h index 1abcbc5e86..89bff49b53 100644 --- a/libretro-common/include/net/net_compat.h +++ b/libretro-common/include/net/net_compat.h @@ -238,4 +238,8 @@ bool network_init(void); **/ void network_deinit(void); +#ifdef _WIN32 +const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt); +#endif + #endif diff --git a/libretro-common/net/net_compat.c b/libretro-common/net/net_compat.c index de603b5083..24db9532ad 100644 --- a/libretro-common/net/net_compat.c +++ b/libretro-common/net/net_compat.c @@ -354,3 +354,30 @@ int inet_ptrton(int af, const char *src, void *dst) return inet_pton(af, src, dst); #endif } + +#ifdef _WIN32 +const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) +{ + if (af == AF_INET) + { + struct sockaddr_in in; + memset(&in, 0, sizeof(in)); + in.sin_family = AF_INET; + memcpy(&in.sin_addr, src, sizeof(struct in_addr)); + getnameinfo((struct sockaddr *)&in, sizeof(struct + sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST); + return dst; + } + else if (af == AF_INET6) + { + struct sockaddr_in6 in; + memset(&in, 0, sizeof(in)); + in.sin6_family = AF_INET6; + memcpy(&in.sin6_addr, src, sizeof(struct in_addr6)); + getnameinfo((struct sockaddr *)&in, sizeof(struct + sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST); + return dst; + } + return NULL; +} +#endif diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 02059d0819..e6da0d6bdc 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -3434,7 +3434,6 @@ void netplay_refresh_rooms_menu(file_list_t *list) } } - static void netplay_refresh_rooms_cb(void *task_data, void *user_data, const char *err) { char buf[PATH_MAX_LENGTH];