barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5818dc71da2b058e6f38f218785b08660e8b92e6
commit 5818dc71da2b058e6f38f218785b08660e8b92e6 Author: Gustavo Sverzut Barbieri <barbi...@profusion.mobi> Date: Fri Nov 18 12:17:08 2016 -0200 efl_net: use SOCKET_FMT to format SOCKET so it works on UNIX and Windows. On Windows SOCKET is unsigned, thus will cause sign errors when formatting with "%d" or comparing with signed values. On UNIX it was quiet and easy to miss, thus a new #define can be used to check for those. It will use 'unsigned long' as SOCKET, thus will complain out loud and not even work correctly when using pointers on 64bits UNIX on mistakes -- which should improve the situation. This helped to fix lots of missing conversions, all fixed. This partially addresses D4357. --- src/lib/ecore_con/ecore_con.c | 104 ++++++++++++++++---------------- src/lib/ecore_con/ecore_con_private.h | 24 +++++++- src/lib/ecore_con/efl_net_dialer_http.c | 24 ++++---- src/lib/ecore_con/efl_net_dialer_tcp.c | 2 +- src/lib/ecore_con/efl_net_dialer_udp.c | 10 +-- src/lib/ecore_con/efl_net_dialer_unix.c | 4 +- src/lib/ecore_con/efl_net_server_fd.c | 50 ++++++++------- src/lib/ecore_con/efl_net_server_tcp.c | 30 ++++----- src/lib/ecore_con/efl_net_server_udp.c | 28 ++++----- src/lib/ecore_con/efl_net_server_unix.c | 26 ++++---- src/lib/ecore_con/efl_net_socket_fd.c | 18 +++--- src/lib/ecore_con/efl_net_socket_tcp.c | 28 +++++---- src/lib/ecore_con/efl_net_socket_udp.c | 41 +++++++------ src/lib/ecore_con/efl_net_socket_unix.c | 10 +-- 14 files changed, 222 insertions(+), 177 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 48b1d1c..0812a7c 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -3045,7 +3045,7 @@ efl_net_unix_fmt(char *buf, size_t buflen, SOCKET fd, const struct sockaddr_un * if (addrlen == offsetof(struct sockaddr_un, sun_path)) { - int r = snprintf(buf, buflen, "unnamed:%d", fd); + int r = snprintf(buf, buflen, "unnamed:" SOCKET_FMT, fd); if (r < 0) { ERR("snprintf(): %s", strerror(errno)); @@ -3219,7 +3219,7 @@ efl_net_ip_socket_activate_check(const char *address, int family, int type, Eina r = sd_is_socket_unix(fd, type, 0, sun_path, len); if (r < 0) { - ERR("socket %d is not of family=%d, type=%d", fd, family, type); + ERR("socket " SOCKET_FMT " is not of family=%d, type=%d", fd, family, type); return EINVAL; } if (listening) *listening = (r == 1); @@ -3238,7 +3238,7 @@ efl_net_ip_socket_activate_check(const char *address, int family, int type, Eina r = sd_is_socket(fd, family, type, (type == SOCK_DGRAM) ? -1 : 0); if (r < 0) { - ERR("socket %d is not of family=%d, type=%d", fd, family, type); + ERR("socket " SOCKET_FMT " is not of family=%d, type=%d", fd, family, type); return EINVAL; } if ((type == SOCK_DGRAM) && (listening)) *listening = EINA_FALSE; @@ -3248,7 +3248,7 @@ efl_net_ip_socket_activate_check(const char *address, int family, int type, Eina if (getsockname(fd, (struct sockaddr *)&sock_addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("could not query socket=%d name: %s", fd, eina_error_msg_get(err)); + ERR("could not query socket=" SOCKET_FMT " name: %s", fd, eina_error_msg_get(err)); return err; } @@ -3285,7 +3285,7 @@ efl_net_ip_socket_activate_check(const char *address, int family, int type, Eina want_addr.ss_family = family; if (want_addr.ss_family != sock_addr.ss_family) { - ERR("socket %d family=%d differs from wanted %d", fd, sock_addr.ss_family, want_addr.ss_family); + ERR("socket " SOCKET_FMT " family=%d differs from wanted %d", fd, sock_addr.ss_family, want_addr.ss_family); free(str); return EINVAL; } @@ -3324,7 +3324,7 @@ efl_net_ip_socket_activate_check(const char *address, int family, int type, Eina char buf[INET6_ADDRSTRLEN + sizeof("[]:65536")] = ""; efl_net_ip_port_fmt(buf, sizeof(buf), (struct sockaddr *)&sock_addr); - ERR("socket %d address %s differs from wanted %s", fd, buf, address); + ERR("socket " SOCKET_FMT " address %s differs from wanted %s", fd, buf, address); free(str); return EINVAL; } @@ -3601,7 +3601,7 @@ _efl_net_connect_async_run(void *data, Ecore_Thread *thread EINA_UNUSED) efl_net_ip_port_fmt(buf, sizeof(buf), d->addr); } - DBG("connecting fd=%d to %s", d->sockfd, buf); + DBG("connecting fd=" SOCKET_FMT " to %s", d->sockfd, buf); r = connect(d->sockfd, d->addr, d->addrlen); if (r != 0) @@ -3614,11 +3614,11 @@ _efl_net_connect_async_run(void *data, Ecore_Thread *thread EINA_UNUSED) * won't close it again. */ closesocket(fd); - DBG("connect(%d, %s) failed: %s", fd, buf, eina_error_msg_get(d->error)); + DBG("connect(" SOCKET_FMT ", %s) failed: %s", fd, buf, eina_error_msg_get(d->error)); return; } - DBG("connected fd=%d to %s", d->sockfd, buf); + DBG("connected fd=" SOCKET_FMT " to %s", d->sockfd, buf); } static void @@ -3640,7 +3640,7 @@ _efl_net_connect_async_end(void *data, Ecore_Thread *thread EINA_UNUSED) if (flags < 0) { d->error = errno; - ERR("fcntl(%d, F_GETFD): %s", d->sockfd, eina_error_msg_get(d->error)); + ERR("fcntl(" SOCKET_FMT ", F_GETFD): %s", d->sockfd, eina_error_msg_get(d->error)); closesocket(d->sockfd); d->sockfd = INVALID_SOCKET; } @@ -3650,7 +3650,7 @@ _efl_net_connect_async_end(void *data, Ecore_Thread *thread EINA_UNUSED) if (fcntl(d->sockfd, F_SETFD, flags) < 0) { d->error = errno; - ERR("fcntl(%d, F_SETFD, %#x): %s", d->sockfd, flags, eina_error_msg_get(d->error)); + ERR("fcntl(" SOCKET_FMT ", F_SETFD, %#x): %s", d->sockfd, flags, eina_error_msg_get(d->error)); closesocket(d->sockfd); d->sockfd = INVALID_SOCKET; } @@ -3759,7 +3759,7 @@ typedef struct _Efl_Net_Ip_Connect_Async_Data } Efl_Net_Ip_Connect_Async_Data; static Eina_Error -_efl_net_ip_connect(const struct addrinfo *addr, int *sockfd) +_efl_net_ip_connect(const struct addrinfo *addr, SOCKET *sockfd) { SOCKET fd = INVALID_SOCKET; Eina_Error ret = 0; @@ -3778,19 +3778,19 @@ _efl_net_ip_connect(const struct addrinfo *addr, int *sockfd) if (eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG)) { if (efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr)) - DBG("connect fd=%d to %s", fd, buf); + DBG("connect fd=" SOCKET_FMT " to %s", fd, buf); } r = connect(fd, addr->ai_addr, addr->ai_addrlen); if (r == 0) { - DBG("connected fd=%d to %s", fd, buf); + DBG("connected fd=" SOCKET_FMT " to %s", fd, buf); *sockfd = fd; } else { ret = efl_net_socket_error_get(); - DBG("couldn't connect fd=%d to %s: %s", fd, buf, eina_error_msg_get(ret)); + DBG("couldn't connect fd=" SOCKET_FMT " to %s: %s", fd, buf, eina_error_msg_get(ret)); closesocket(fd); } EINA_THREAD_CLEANUP_POP(EINA_FALSE); /* we need sockfd on success */ @@ -3799,7 +3799,7 @@ _efl_net_ip_connect(const struct addrinfo *addr, int *sockfd) } static Eina_Error -_efl_net_ip_resolve_and_connect(const char *host, const char *port, int type, int protocol, int *sockfd, struct sockaddr *addr, socklen_t *p_addrlen) +_efl_net_ip_resolve_and_connect(const char *host, const char *port, int type, int protocol, SOCKET *sockfd, struct sockaddr *addr, socklen_t *p_addrlen) { struct addrinfo *results = NULL; struct addrinfo hints = { @@ -3939,7 +3939,7 @@ _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, const if (eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG)) { if (efl_net_ip_port_fmt(buf, sizeof(buf), addrinfo->ai_addr)) - DBG("resolved address='%s' to %s. Connect using fd=%d socks4://%s:%s", d->address, buf, fd, proxy_host, proxy_port); + DBG("resolved address='%s' to %s. Connect using fd=" SOCKET_FMT " socks4://%s:%s", d->address, buf, fd, proxy_host, proxy_port); } request->port = a->sin_port; @@ -3949,7 +3949,7 @@ _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != (ssize_t)request_len) { if (s == SOCKET_ERROR) - DBG("couldn't request connection to host=%s fd=%d socks4://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't request connection to host=%s fd=" SOCKET_FMT " socks4://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send proxy request: need %zu, did %zd", request_len, s); } @@ -3960,14 +3960,14 @@ _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != sizeof(reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv reply of connection to host=%s fd=%d socks4://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv reply of connection to host=%s fd=" SOCKET_FMT " socks4://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(reply), s); } else { if (reply.status != EFL_NET_SOCKS4_REPLY_STATUS_GRANTED) - DBG("rejected connection to host=%s fd=%d socks4://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.status); + DBG("rejected connection to host=%s fd=" SOCKET_FMT " socks4://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.status); else { memcpy(&d->addr, addrinfo->ai_addr, addrinfo->ai_addrlen); @@ -3975,7 +3975,7 @@ _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, const d->sockfd = fd; d->error = 0; ret = EINA_TRUE; - DBG("connected to host=%s fd=%d socks4://%s:%s", buf, fd, proxy_host, proxy_port); + DBG("connected to host=%s fd=" SOCKET_FMT " socks4://%s:%s", buf, fd, proxy_host, proxy_port); } } } @@ -4121,7 +4121,7 @@ _efl_net_ip_connect_async_run_socks4a(Efl_Net_Ip_Connect_Async_Data *d, const ch goto end; } - DBG("connected fd=%d to socks4a://%s", fd, proxy); + DBG("connected fd=" SOCKET_FMT " to socks4a://%s", fd, proxy); EINA_THREAD_CLEANUP_PUSH(_cleanup_close, &fd); /* we just resolve the port number here */ @@ -4206,7 +4206,7 @@ _efl_net_ip_connect_async_run_socks4a(Efl_Net_Ip_Connect_Async_Data *d, const ch } EINA_THREAD_CLEANUP_POP(EINA_TRUE); /* freeaddrinfo(results) */ } - EINA_THREAD_CLEANUP_POP(d->sockfd == -1); /* we need fd only on success */ + EINA_THREAD_CLEANUP_POP(d->sockfd == INVALID_SOCKET); /* we need fd only on success */ end: EINA_THREAD_CLEANUP_POP(EINA_TRUE); /* free(str) */ } @@ -4400,7 +4400,7 @@ _efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char *user, if (s != (ssize_t)len) { if (s == SOCKET_ERROR) - DBG("couldn't send user-password authentication to fd=%d %s://%s:%s: %s", fd, proxy_protocol, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't send user-password authentication to fd=" SOCKET_FMT " %s://%s:%s: %s", fd, proxy_protocol, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send user-password authentication: need %zu, did %zd", len, s); } @@ -4412,7 +4412,7 @@ _efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char *user, if (s != (ssize_t)sizeof(reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv user-password authentication reply from fd=%d %s://%s:%s: %s", fd, proxy_protocol, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv user-password authentication reply from fd=" SOCKET_FMT " %s://%s:%s: %s", fd, proxy_protocol, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv user-password authentication reply: need %zu, did %zd", len, s); } @@ -4422,7 +4422,7 @@ _efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char *user, DBG("proxy authentication failed user='%s' pass=%hhu (bytes) to proxy %s://%s:%s: reason=%#x", user, pass_len, proxy_protocol, proxy_host, proxy_port, reply[1]); else { - DBG("successfully authenticated user=%s with proxy fd=%d %s://%s:%s", user, fd, proxy_protocol, proxy_host, proxy_port); + DBG("successfully authenticated user=%s with proxy fd=" SOCKET_FMT " %s://%s:%s", user, fd, proxy_protocol, proxy_host, proxy_port); ret = EINA_TRUE; } } @@ -4461,14 +4461,14 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const if (eina_log_domain_level_check(_ecore_con_log_dom, EINA_LOG_LEVEL_DBG)) { if (efl_net_ip_port_fmt(buf, sizeof(buf), addrinfo->ai_addr)) - DBG("resolved address='%s' to %s. Connect using fd=%d socks5://%s:%s", d->address, buf, fd, proxy_host, proxy_port); + DBG("resolved address='%s' to %s. Connect using fd=" SOCKET_FMT " socks5://%s:%s", d->address, buf, fd, proxy_host, proxy_port); } s = send(fd, &greeting, sizeof(greeting), MSG_NOSIGNAL); if (s != (ssize_t)sizeof(greeting)) { if (s == SOCKET_ERROR) - DBG("couldn't request connection to host=%s fd=%d socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't request connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send proxy request: need %zu, did %zd", sizeof(greeting), s); } @@ -4479,14 +4479,14 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != sizeof(greeting_reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv greeting reply of connection to host=%s fd=%d socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv greeting reply of connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(greeting_reply), s); } else { if (greeting_reply.auth != greeting.auths[0]) - DBG("proxy server rejected authentication %#x trying connection to host=%s fd=%d socks5://%s:%s", greeting.auths[0], buf, fd, proxy_host, proxy_port); + DBG("proxy server rejected authentication %#x trying connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s", greeting.auths[0], buf, fd, proxy_host, proxy_port); else { if ((greeting_reply.auth == EFL_NET_SOCKS5_AUTH_USER_PASS) && @@ -4508,7 +4508,7 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != (ssize_t)request_len) { if (s == SOCKET_ERROR) - DBG("couldn't request connection to host=%s fd=%d socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't request connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send proxy request: need %zu, did %zd", request_len, s); } @@ -4519,14 +4519,14 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != sizeof(reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv reply of connection to host=%s fd=%d socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv reply of connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(reply), s); } else { if (reply.base.status != EFL_NET_SOCKS5_REPLY_STATUS_GRANTED) - DBG("rejected IPv4 connection to host=%s fd=%d socks5://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.base.status); + DBG("rejected IPv4 connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.base.status); else { memcpy(&d->addr, addrinfo->ai_addr, addrinfo->ai_addrlen); @@ -4534,7 +4534,7 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const d->sockfd = fd; d->error = 0; ret = EINA_TRUE; - DBG("connected IPv4 to host=%s fd=%d socks5://%s:%s", buf, fd, proxy_host, proxy_port); + DBG("connected IPv4 to host=%s fd=" SOCKET_FMT " socks5://%s:%s", buf, fd, proxy_host, proxy_port); } } } @@ -4545,14 +4545,14 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const if (s != sizeof(reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv reply of connection to host=%s fd=%d socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv reply of connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: %s", buf, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(reply), s); } else { if (reply.base.status != EFL_NET_SOCKS5_REPLY_STATUS_GRANTED) - DBG("rejected IPv6 connection to host=%s fd=%d socks5://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.base.status); + DBG("rejected IPv6 connection to host=%s fd=" SOCKET_FMT " socks5://%s:%s: reason=%#x", buf, fd, proxy_host, proxy_port, reply.base.status); else { memcpy(&d->addr, addrinfo->ai_addr, addrinfo->ai_addrlen); @@ -4560,7 +4560,7 @@ _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const d->sockfd = fd; d->error = 0; ret = EINA_TRUE; - DBG("connected IPv6 to host=%s fd=%d socks5://%s:%s", buf, fd, proxy_host, proxy_port); + DBG("connected IPv6 to host=%s fd=" SOCKET_FMT " socks5://%s:%s", buf, fd, proxy_host, proxy_port); } } } @@ -4690,14 +4690,14 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch goto end; } - DBG("connected fd=%d to socks5h://%s", fd, proxy); + DBG("connected fd=" SOCKET_FMT " to socks5h://%s", fd, proxy); EINA_THREAD_CLEANUP_PUSH(_cleanup_close, &fd); s = send(fd, &greeting, sizeof(greeting), MSG_NOSIGNAL); if (s != (ssize_t)sizeof(greeting)) { if (s == SOCKET_ERROR) - DBG("couldn't request connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't request connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send proxy request: need %zu, did %zd", sizeof(greeting), s); } @@ -4708,14 +4708,14 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch if (s != sizeof(greeting_reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv greeting reply of connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv greeting reply of connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(greeting_reply), s); } else { if (greeting_reply.auth != greeting.auths[0]) - DBG("proxy server rejected authentication %#x trying connection to host=%s:%s fd=%d socks5h://%s:%s", greeting.auths[0], host, port, fd, proxy_host, proxy_port); + DBG("proxy server rejected authentication %#x trying connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s", greeting.auths[0], host, port, fd, proxy_host, proxy_port); else { if ((greeting_reply.auth == EFL_NET_SOCKS5_AUTH_USER_PASS) && @@ -4773,7 +4773,7 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch if (s != (ssize_t)request_len) { if (s == SOCKET_ERROR) - DBG("couldn't request connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't request connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't send proxy request: need %zu, did %zd", request_len, s); } @@ -4785,14 +4785,14 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch if (s != sizeof(reply)) { if (s == SOCKET_ERROR) - DBG("couldn't recv reply of connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv reply of connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy reply: need %zu, did %zd", sizeof(reply), s); } else { if (reply.status != EFL_NET_SOCKS5_REPLY_STATUS_GRANTED) - DBG("rejected connection to host=%s:%s fd=%d socks5h://%s:%s: reason=%#x", host, port, fd, proxy_host, proxy_port, reply.status); + DBG("rejected connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: reason=%#x", host, port, fd, proxy_host, proxy_port, reply.status); else if (reply.address_type == EFL_NET_SOCKS5_ADDRESS_TYPE_IPV4) { Efl_Net_Socks5_Address_Ipv4 ipv4; @@ -4801,7 +4801,7 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch if (s != sizeof(ipv4)) { if (s == SOCKET_ERROR) - DBG("couldn't recv ipv4 of connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv ipv4 of connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy ipv4: need %zu, did %zd", sizeof(ipv4), s); } @@ -4813,7 +4813,7 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch d->addrlen = sizeof(struct sockaddr_in); d->sockfd = fd; d->error = 0; - DBG("connected IPv4 to host=%s:%s fd=%d socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); + DBG("connected IPv4 to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); } } else if (reply.address_type == EFL_NET_SOCKS5_ADDRESS_TYPE_IPV6) @@ -4824,7 +4824,7 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch if (s != sizeof(ipv6)) { if (s == SOCKET_ERROR) - DBG("couldn't recv ipv6 of connection to host=%s:%s fd=%d socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); + DBG("couldn't recv ipv6 of connection to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s: %s", host, port, fd, proxy_host, proxy_port, eina_error_msg_get(efl_net_socket_error_get())); else DBG("couldn't recv proxy ipv6: need %zu, did %zd", sizeof(ipv6), s); } @@ -4836,13 +4836,13 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch d->addrlen = sizeof(struct sockaddr_in); d->sockfd = fd; d->error = 0; - DBG("connected IPv6 to host=%s:%s fd=%d socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); + DBG("connected IPv6 to host=%s:%s fd=" SOCKET_FMT " socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); } } else { /* most proxy servers will return a failure instead of this, but let's guard and log */ - DBG("couldn't resolve host %s:%s fd=%d socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); + DBG("couldn't resolve host %s:%s fd=" SOCKET_FMT " socks5h://%s:%s", host, port, fd, proxy_host, proxy_port); } } } @@ -4857,7 +4857,7 @@ _efl_net_ip_connect_async_run_socks5h(Efl_Net_Ip_Connect_Async_Data *d, const ch } } } - EINA_THREAD_CLEANUP_POP(d->sockfd == -1); /* we need fd only on success */ + EINA_THREAD_CLEANUP_POP(d->sockfd == INVALID_SOCKET); /* we need fd only on success */ end: EINA_THREAD_CLEANUP_POP(EINA_TRUE); /* free(str) */ } @@ -5044,7 +5044,7 @@ _efl_net_ip_connect_async_end(void *data, Ecore_Thread *thread EINA_UNUSED) if (flags < 0) { d->error = errno; - ERR("fcntl(%d, F_GETFD): %s", d->sockfd, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_GETFD): %s", d->sockfd, strerror(errno)); closesocket(d->sockfd); d->sockfd = INVALID_SOCKET; } @@ -5054,7 +5054,7 @@ _efl_net_ip_connect_async_end(void *data, Ecore_Thread *thread EINA_UNUSED) if (fcntl(d->sockfd, F_SETFD, flags) < 0) { d->error = errno; - ERR("fcntl(%d, F_SETFD, %#x): %s", d->sockfd, flags, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_SETFD, %#x): %s", d->sockfd, flags, strerror(errno)); closesocket(d->sockfd); d->sockfd = INVALID_SOCKET; } diff --git a/src/lib/ecore_con/ecore_con_private.h b/src/lib/ecore_con/ecore_con_private.h index f222656..aa1b819 100644 --- a/src/lib/ecore_con/ecore_con_private.h +++ b/src/lib/ecore_con/ecore_con_private.h @@ -391,9 +391,31 @@ void ecore_con_mempool_shutdown(void); #ifndef INVALID_SOCKET #define INVALID_SOCKET -1 #endif +#ifndef SOCKET_TO_LOOP_FD +#define SOCKET_TO_LOOP_FD(sock) ((int)sock) +#endif #ifndef _WIN32 #define closesocket(fd) close(fd) #define SOCKET int +#define SOCKET_FMT "%d" +#else +#define SOCKET_FMT "%u" +#endif + + +/* + * This define will force SOCKET to be 'unsigned long', this will + * force compile to emit errors when assuming "int"/"%d", which is the + * case on UNIX but not on Windows. + */ +//#define EFL_NET_CHECK_SOCKET_TYPE 1 +#if EFL_NET_CHECK_SOCKET_TYPE +#undef SOCKET +#undef SOCKET_FMT +#undef INVALID_SOCKET +#define SOCKET unsigned long +#define SOCKET_FMT "%lu" +#define INVALID_SOCKET ((SOCKET)-1) #endif /* some platforms do not have AI_V4MAPPED, then define to 0 so bitwise OR won't be changed */ @@ -486,7 +508,7 @@ Ecore_Thread *efl_net_ip_resolve_async_new(const char *host, const char *port, c * * @internal */ -typedef void (*Efl_Net_Connect_Async_Cb)(void *data, const struct sockaddr *addr, socklen_t addrlen, int sockfd, Eina_Error error); +typedef void (*Efl_Net_Connect_Async_Cb)(void *data, const struct sockaddr *addr, socklen_t addrlen, SOCKET sockfd, Eina_Error error); /** * @brief asynchronously create a socket and connect to the address. diff --git a/src/lib/ecore_con/efl_net_dialer_http.c b/src/lib/ecore_con/efl_net_dialer_http.c index 4c3fdad..36409df 100644 --- a/src/lib/ecore_con/efl_net_dialer_http.c +++ b/src/lib/ecore_con/efl_net_dialer_http.c @@ -377,10 +377,10 @@ _efl_net_dialer_http_curlm_event_fd_read(void *data, const Efl_Event *event) SOCKET fd = efl_loop_fd_get(event->object); CURLMcode r; - ERR("XXX socket=%d CURL_CSELECT_IN", fd); + ERR("XXX socket=" SOCKET_FMT " CURL_CSELECT_IN", fd); r = curl_multi_socket_action(cm->multi, fd, CURL_CSELECT_IN, &cm->running); if (r != CURLM_OK) - ERR("socket action CURL_CSELECT_IN fd=%d failed: %s", fd, curl_multi_strerror(r)); + ERR("socket action CURL_CSELECT_IN fd=" SOCKET_FMT " failed: %s", fd, curl_multi_strerror(r)); _efl_net_dialer_http_curlm_check(cm); } @@ -392,10 +392,10 @@ _efl_net_dialer_http_curlm_event_fd_write(void *data, const Efl_Event *event) SOCKET fd = efl_loop_fd_get(event->object); CURLMcode r; - ERR("XXX socket=%d CURL_CSELECT_OUT", fd); + ERR("XXX socket=" SOCKET_FMT " CURL_CSELECT_OUT", fd); r = curl_multi_socket_action(cm->multi, fd, CURL_CSELECT_OUT, &cm->running); if (r != CURLM_OK) - ERR("socket action CURL_CSELECT_OUT fd=%d failed: %s", fd, curl_multi_strerror(r)); + ERR("socket action CURL_CSELECT_OUT fd=" SOCKET_FMT " failed: %s", fd, curl_multi_strerror(r)); _efl_net_dialer_http_curlm_check(cm); } @@ -472,7 +472,7 @@ _efl_net_dialer_http_curlm_socket_manage(CURL *e, curl_socket_t fd, int what, vo efl_key_data_set(fdhandler, "curl_flags", (void *)(intptr_t)what); } - ERR("XXX finished manage fd=%d, what=%#x, cm=%p, fdhandler=%p", fd, what, cm, fdhandler); + ERR("XXX finished manage fd=" SOCKET_FMT ", what=%#x, cm=%p, fdhandler=%p", fd, what, cm, fdhandler); return 0; } @@ -494,7 +494,7 @@ _efl_net_dialer_http_curlm_event_fd(void *data, Ecore_Fd_Handler *fdhandler) fd = ecore_main_fd_handler_fd_get(fdhandler); r = curl_multi_socket_action(cm->multi, fd, flags, &cm->running); if (r != CURLM_OK) - ERR("socket action %#x fd=%d failed: %s", flags, fd, curl_multi_strerror(r)); + ERR("socket action %#x fd=" SOCKET_FMT " failed: %s", flags, fd, curl_multi_strerror(r)); _efl_net_dialer_http_curlm_check(cm); @@ -540,8 +540,8 @@ _efl_net_dialer_http_curlm_socket_manage(CURL *e, curl_socket_t fd, int what, vo } } - DBG("dialer=%p fdhandler=%p, fd=%d, curl_easy=%p, flags=%#x", - dialer, pd->fdhandler, fd, e, what); + DBG("dialer=%p fdhandler=%p, fd=" SOCKET_FMT ", curl_easy=%p, flags=%#x", + dialer, pd->fdhandler, (SOCKET)fd, e, what); return 0; } @@ -1113,7 +1113,7 @@ _efl_net_dialer_http_socket_open(void *data, curlsocktype purpose EINA_UNUSED, s ERR("could not create curl socket family=%d, type=%d, protocol=%d", addr->family, addr->socktype, addr->protocol); else - DBG("socket(%d, %d, %d) = %d", + DBG("socket(%d, %d, %d) = " SOCKET_FMT, addr->family, addr->socktype, addr->protocol, pd->fd); return pd->fd; @@ -1641,7 +1641,7 @@ _efl_net_dialer_http_efl_io_writer_write(Eo *o, Efl_Net_Dialer_Http_Data *pd, Ei if (rm != CURLM_OK) { err = _curlcode_to_eina_error(rm); - ERR("dialer=%p could not trigger socket=%d (fdhandler=%p) action: %s", + ERR("dialer=%p could not trigger socket=" SOCKET_FMT " (fdhandler=%p) action: %s", o, pd->fd, pd->fdhandler, eina_error_msg_get(err)); goto error; } @@ -1763,7 +1763,7 @@ _efl_net_dialer_http_efl_io_closer_close_on_exec_set(Eo *o EINA_UNUSED, Efl_Net_ flags = fcntl(pd->fd, F_GETFD); if (flags < 0) { - ERR("fcntl(%d, F_GETFD): %s", pd->fd, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_GETFD): %s", pd->fd, strerror(errno)); pd->close_on_exec = old; return EINA_FALSE; } @@ -1773,7 +1773,7 @@ _efl_net_dialer_http_efl_io_closer_close_on_exec_set(Eo *o EINA_UNUSED, Efl_Net_ flags &= (~FD_CLOEXEC); if (fcntl(pd->fd, F_SETFD, flags) < 0) { - ERR("fcntl(%d, F_SETFD, %#x): %s", pd->fd, flags, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_SETFD, %#x): %s", pd->fd, flags, strerror(errno)); pd->close_on_exec = old; return EINA_FALSE; } diff --git a/src/lib/ecore_con/efl_net_dialer_tcp.c b/src/lib/ecore_con/efl_net_dialer_tcp.c index 07b1ed4..e047074 100644 --- a/src/lib/ecore_con/efl_net_dialer_tcp.c +++ b/src/lib/ecore_con/efl_net_dialer_tcp.c @@ -112,7 +112,7 @@ _efl_net_dialer_tcp_connected(void *data, const struct sockaddr *addr, socklen_t else { err = EFL_NET_DIALER_ERROR_COULDNT_CONNECT; - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(sockfd); goto error; } diff --git a/src/lib/ecore_con/efl_net_dialer_udp.c b/src/lib/ecore_con/efl_net_dialer_udp.c index 97dffbe..5a1a331 100644 --- a/src/lib/ecore_con/efl_net_dialer_udp.c +++ b/src/lib/ecore_con/efl_net_dialer_udp.c @@ -132,9 +132,9 @@ _efl_net_dialer_udp_resolved_bind(Eo *o, Efl_Net_Dialer_Udp_Data *pd EINA_UNUSED int enable = 1; #endif if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &enable, sizeof(enable)) == 0) - DBG("enabled SO_BROADCAST for socket=%d", fd); + DBG("enabled SO_BROADCAST for socket=" SOCKET_FMT, fd); else - WRN("could not enable SO_BROADCAST for socket=%d: %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + WRN("could not enable SO_BROADCAST for socket=" SOCKET_FMT ": %s", fd, eina_error_msg_get(efl_net_socket_error_get())); } } else if (family == AF_INET6) @@ -148,13 +148,13 @@ _efl_net_dialer_udp_resolved_bind(Eo *o, Efl_Net_Dialer_Udp_Data *pd EINA_UNUSED if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == 0) { efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr); - DBG("joined multicast group %s socket=%d", buf, fd); + DBG("joined multicast group %s socket=" SOCKET_FMT, buf, fd); } else { err = efl_net_socket_error_get(); efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr); - ERR("could not join multicast group %s socket=%d: %s", buf, fd, eina_error_msg_get(err)); + ERR("could not join multicast group %s socket=" SOCKET_FMT ": %s", buf, fd, eina_error_msg_get(err)); goto error; } } @@ -170,7 +170,7 @@ _efl_net_dialer_udp_resolved_bind(Eo *o, Efl_Net_Dialer_Udp_Data *pd EINA_UNUSED error: efl_net_socket_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } diff --git a/src/lib/ecore_con/efl_net_dialer_unix.c b/src/lib/ecore_con/efl_net_dialer_unix.c index d5ead1b..e3e3619 100644 --- a/src/lib/ecore_con/efl_net_dialer_unix.c +++ b/src/lib/ecore_con/efl_net_dialer_unix.c @@ -81,7 +81,7 @@ _efl_net_dialer_unix_connect_timeout(void *data, const Efl_Event *ev EINA_UNUSED } static void -_efl_net_dialer_unix_connected(void *data, const struct sockaddr *addr, socklen_t addrlen EINA_UNUSED, int sockfd, Eina_Error err) +_efl_net_dialer_unix_connected(void *data, const struct sockaddr *addr, socklen_t addrlen EINA_UNUSED, SOCKET sockfd, Eina_Error err) { Eo *o = data; Efl_Net_Dialer_Unix_Data *pd = efl_data_scope_get(o, MY_CLASS); @@ -102,7 +102,7 @@ _efl_net_dialer_unix_connected(void *data, const struct sockaddr *addr, socklen_ else { err = EFL_NET_DIALER_ERROR_COULDNT_CONNECT; - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(sockfd); goto error; } diff --git a/src/lib/ecore_con/efl_net_server_fd.c b/src/lib/ecore_con/efl_net_server_fd.c index bb3c7cc..418dd34 100644 --- a/src/lib/ecore_con/efl_net_server_fd.c +++ b/src/lib/ecore_con/efl_net_server_fd.c @@ -107,7 +107,7 @@ _efl_net_server_fd_efl_object_destructor(Eo *o, Efl_Net_Server_Fd_Data *pd) if (fd != INVALID_SOCKET) { - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); } @@ -117,9 +117,11 @@ _efl_net_server_fd_efl_object_destructor(Eo *o, Efl_Net_Server_Fd_Data *pd) } EOLIAN static void -_efl_net_server_fd_efl_loop_fd_fd_set(Eo *o, Efl_Net_Server_Fd_Data *pd, int fd) +_efl_net_server_fd_efl_loop_fd_fd_set(Eo *o, Efl_Net_Server_Fd_Data *pd, int pfd) { - efl_loop_fd_set(efl_super(o, MY_CLASS), fd); + SOCKET fd = (SOCKET)pfd; + + efl_loop_fd_set(efl_super(o, MY_CLASS), pfd); if (fd != INVALID_SOCKET) { @@ -203,7 +205,7 @@ _efl_net_server_fd_efl_net_server_serving_get(Eo *o EINA_UNUSED, Efl_Net_Server_ EOLIAN static Eina_Error _efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Fd_Data *pd EINA_UNUSED, const char *address) { - EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); + EINA_SAFETY_ON_TRUE_RETURN_VAL((SOCKET)efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); EINA_SAFETY_ON_NULL_RETURN_VAL(address, EINVAL); #ifndef HAVE_SYSTEMD @@ -228,17 +230,17 @@ _efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Fd_Data *pd EINA_UNUSED if (getsockopt(fd, SOL_SOCKET, SO_DOMAIN, &family, &len) != 0) { - WRN("socket %d failed to return family: %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + WRN("socket " SOCKET_FMT " failed to return family: %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINVAL; } sd_fd_index++; efl_net_server_fd_family_set(o, family); efl_loop_fd_set(o, fd); - if (efl_loop_fd_get(o) == INVALID_SOCKET) + if ((SOCKET)efl_loop_fd_get(o) == INVALID_SOCKET) { sd_fd_index--; - WRN("socket %d could not be used by %p (%s)", + WRN("socket " SOCKET_FMT " could not be used by %p (%s)", fd, o, efl_class_name_get(efl_class_get(o))); return EINVAL; } @@ -256,7 +258,8 @@ EOLIAN static Eina_Bool _efl_net_server_fd_close_on_exec_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool close_on_exec) { #ifdef FD_CLOEXEC - int flags, fd; + SOCKET fd; + int flags; Eina_Bool old = pd->close_on_exec; #endif @@ -269,7 +272,7 @@ _efl_net_server_fd_close_on_exec_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Boo flags = fcntl(fd, F_GETFD); if (flags < 0) { - ERR("fcntl(%d, F_GETFD): %s", fd, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_GETFD): %s", fd, strerror(errno)); pd->close_on_exec = old; return EINA_FALSE; } @@ -279,7 +282,7 @@ _efl_net_server_fd_close_on_exec_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Boo flags &= (~FD_CLOEXEC); if (fcntl(fd, F_SETFD, flags) < 0) { - ERR("fcntl(%d, F_SETFD, %#x): %s", fd, flags, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_SETFD, %#x): %s", fd, flags, strerror(errno)); pd->close_on_exec = old; return EINA_FALSE; } @@ -292,7 +295,8 @@ EOLIAN static Eina_Bool _efl_net_server_fd_close_on_exec_get(Eo *o, Efl_Net_Server_Fd_Data *pd) { #ifdef FD_CLOEXEC - int flags, fd; + SOCKET fd; + int flags; fd = efl_loop_fd_get(o); if (fd == INVALID_SOCKET) return pd->close_on_exec; @@ -303,7 +307,7 @@ _efl_net_server_fd_close_on_exec_get(Eo *o, Efl_Net_Server_Fd_Data *pd) flags = fcntl(fd, F_GETFD); if (flags < 0) { - ERR("fcntl(%d, F_GETFD): %s", fd, strerror(errno)); + ERR("fcntl(" SOCKET_FMT ", F_GETFD): %s", fd, strerror(errno)); return EINA_FALSE; } @@ -315,7 +319,8 @@ _efl_net_server_fd_close_on_exec_get(Eo *o, Efl_Net_Server_Fd_Data *pd) EOLIAN static Eina_Bool _efl_net_server_fd_reuse_address_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool reuse_address) { - int value, fd; + SOCKET fd; + int value; Eina_Bool old = pd->reuse_address; pd->reuse_address = reuse_address; @@ -326,7 +331,7 @@ _efl_net_server_fd_reuse_address_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Boo value = reuse_address; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, SOL_SOCKET, SO_REUSEADDR, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEADDR, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->reuse_address = old; return EINA_FALSE; @@ -338,7 +343,8 @@ _efl_net_server_fd_reuse_address_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Boo EOLIAN static Eina_Bool _efl_net_server_fd_reuse_address_get(Eo *o, Efl_Net_Server_Fd_Data *pd) { - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; fd = efl_loop_fd_get(o); @@ -350,7 +356,7 @@ _efl_net_server_fd_reuse_address_get(Eo *o, Efl_Net_Server_Fd_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &value, &valuelen) != 0) { - ERR("getsockopt(%d, SOL_SOCKET, SO_REUSEADDR): %s", + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEADDR): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -363,7 +369,8 @@ EOLIAN static Eina_Bool _efl_net_server_fd_reuse_port_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool reuse_port) { #ifdef SO_REUSEPORT - int value, fd; + SOCKET fd; + int value; Eina_Bool old = pd->reuse_port; #endif @@ -376,7 +383,7 @@ _efl_net_server_fd_reuse_port_set(Eo *o, Efl_Net_Server_Fd_Data *pd, Eina_Bool r value = reuse_port; if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, SOL_SOCKET, SO_REUSEPORT, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEPORT, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->reuse_port = old; return EINA_FALSE; @@ -390,7 +397,8 @@ EOLIAN static Eina_Bool _efl_net_server_fd_reuse_port_get(Eo *o, Efl_Net_Server_Fd_Data *pd) { #ifdef SO_REUSEPORT - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; fd = efl_loop_fd_get(o); @@ -402,7 +410,7 @@ _efl_net_server_fd_reuse_port_get(Eo *o, Efl_Net_Server_Fd_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, &valuelen) != 0) { - ERR("getsockopt(%d, SOL_SOCKET, SO_REUSEPORT): %s", + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEPORT): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -451,7 +459,7 @@ _efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Server_Fd_Data *pd) if (client == INVALID_SOCKET) { Eina_Error err = efl_net_socket_error_get(); - ERR("accept(%d): %s", fd, eina_error_msg_get(err)); + ERR("accept(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); efl_event_callback_call(o, EFL_NET_SERVER_EVENT_ERROR, &err); return; } diff --git a/src/lib/ecore_con/efl_net_server_tcp.c b/src/lib/ecore_con/efl_net_server_tcp.c index 4d215d5..abefc74 100644 --- a/src/lib/ecore_con/efl_net_server_tcp.c +++ b/src/lib/ecore_con/efl_net_server_tcp.c @@ -91,7 +91,7 @@ _efl_net_server_tcp_resolved_bind(Eo *o, Efl_Net_Server_Tcp_Data *pd, const stru { err = efl_net_socket_error_get(); efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr); - DBG("bind(%d, %s): %s", fd, buf, eina_error_msg_get(err)); + DBG("bind(" SOCKET_FMT ", %s): %s", fd, buf, eina_error_msg_get(err)); goto error; } @@ -99,26 +99,26 @@ _efl_net_server_tcp_resolved_bind(Eo *o, Efl_Net_Server_Tcp_Data *pd, const stru if (r != 0) { err = efl_net_socket_error_get(); - DBG("listen(%d): %s", fd, eina_error_msg_get(err)); + DBG("listen(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } if (getsockname(fd, addr->ai_addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else if (efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr)) efl_net_server_address_set(o, buf); - DBG("fd=%d serving at %s", fd, buf); + DBG("fd=" SOCKET_FMT " serving at %s", fd, buf); efl_net_server_serving_set(o, EINA_TRUE); return 0; error: efl_net_server_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } @@ -157,7 +157,7 @@ _efl_net_server_tcp_resolved(void *data, const char *host EINA_UNUSED, const cha EOLIAN static Eina_Error _efl_net_server_tcp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Tcp_Data *pd EINA_UNUSED, const char *address) { - EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); + EINA_SAFETY_ON_TRUE_RETURN_VAL((SOCKET)efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); EINA_SAFETY_ON_NULL_RETURN_VAL(address, EINVAL); #ifndef HAVE_SYSTEMD @@ -169,7 +169,7 @@ _efl_net_server_tcp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Tcp_ Eina_Error err; struct sockaddr_storage *addr; socklen_t addrlen; - int fd; + SOCKET fd; err = efl_net_ip_socket_activate_check(address, AF_UNSPEC, SOCK_STREAM, &listening); if (err) return err; @@ -184,7 +184,7 @@ _efl_net_server_tcp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Tcp_ if (listen(fd, 0) != 0) { err = efl_net_socket_error_get(); - DBG("listen(%d): %s", fd, eina_error_msg_get(err)); + DBG("listen(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } } @@ -193,19 +193,19 @@ _efl_net_server_tcp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Tcp_ if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else if (efl_net_ip_port_fmt(buf, sizeof(buf), (struct sockaddr *)&addr)) efl_net_server_address_set(o, buf); - DBG("fd=%d serving at %s", fd, address); + DBG("fd=" SOCKET_FMT " serving at %s", fd, address); efl_net_server_serving_set(o, EINA_TRUE); return 0; error: efl_net_server_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } @@ -270,7 +270,7 @@ _efl_net_server_tcp_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Tcp_Data efl_loop_fd_set(efl_added, client_fd)); if (!client) { - ERR("could not create client object fd=%d", client_fd); + ERR("could not create client object fd=" SOCKET_FMT, (SOCKET)client_fd); closesocket(client_fd); return; } @@ -295,7 +295,7 @@ _efl_net_server_tcp_efl_net_server_fd_client_reject(Eo *o, Efl_Net_Server_Tcp_Da addrlen = sizeof(addr); if (getpeername(client_fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getpeername(%d): %s", client_fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getpeername(" SOCKET_FMT "): %s", (SOCKET)client_fd, eina_error_msg_get(efl_net_socket_error_get())); else efl_net_ip_port_fmt(str, sizeof(str), (struct sockaddr *)&addr); @@ -324,7 +324,7 @@ _efl_net_server_tcp_ipv6_only_set(Eo *o, Efl_Net_Server_Tcp_Data *pd, Eina_Bool if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &value, sizeof(value)) != 0) { - ERR("could not set socket=%d IPV6_V6ONLY=%d: %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); + ERR("could not set socket=" SOCKET_FMT " IPV6_V6ONLY=%d: %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->ipv6_only = old; } #endif @@ -349,7 +349,7 @@ _efl_net_server_tcp_ipv6_only_get(Eo *o EINA_UNUSED, Efl_Net_Server_Tcp_Data *pd valuelen = sizeof(value); if (getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &value, &valuelen) != 0) { - WRN("getsockopt(%d, IPPROTO_IPV6, IPV6_V6ONLY): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + WRN("getsockopt(" SOCKET_FMT ", IPPROTO_IPV6, IPV6_V6ONLY): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); goto end; } pd->ipv6_only = !!value; diff --git a/src/lib/ecore_con/efl_net_server_udp.c b/src/lib/ecore_con/efl_net_server_udp.c index 051db7f..1bf1d0e 100644 --- a/src/lib/ecore_con/efl_net_server_udp.c +++ b/src/lib/ecore_con/efl_net_server_udp.c @@ -124,20 +124,20 @@ _efl_net_server_udp_resolved_bind(Eo *o, Efl_Net_Server_Udp_Data *pd, const stru { err = efl_net_socket_error_get(); efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr); - DBG("bind(%d, %s): %s", fd, buf, eina_error_msg_get(err)); + DBG("bind(" SOCKET_FMT ", %s): %s", fd, buf, eina_error_msg_get(err)); goto error; } if (getsockname(fd, addr->ai_addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else if (efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr)) efl_net_server_address_set(o, buf); - DBG("fd=%d serving at %s", fd, buf); + DBG("fd=" SOCKET_FMT " serving at %s", fd, buf); efl_net_server_serving_set(o, EINA_TRUE); EINA_LIST_FREE(pd->multicast.pending, node) @@ -165,7 +165,7 @@ _efl_net_server_udp_resolved_bind(Eo *o, Efl_Net_Server_Udp_Data *pd, const stru error: efl_net_server_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } @@ -204,7 +204,7 @@ _efl_net_server_udp_resolved(void *data, const char *host EINA_UNUSED, const cha EOLIAN static Eina_Error _efl_net_server_udp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Udp_Data *pd EINA_UNUSED, const char *address) { - EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); + EINA_SAFETY_ON_TRUE_RETURN_VAL((SOCKET)efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); EINA_SAFETY_ON_NULL_RETURN_VAL(address, EINVAL); #ifndef HAVE_SYSTEMD @@ -215,7 +215,7 @@ _efl_net_server_udp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Udp_ Eina_Error err; struct sockaddr_storage *addr; socklen_t addrlen; - int fd; + SOCKET fd; err = efl_net_ip_socket_activate_check(address, AF_UNSPEC, SOCK_DGRAM, NULL); if (err) return err; @@ -229,19 +229,19 @@ _efl_net_server_udp_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Udp_ if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else if (efl_net_ip_port_fmt(buf, sizeof(buf), (struct sockaddr *)&addr)) efl_net_server_address_set(o, buf); - DBG("fd=%d serving at %s", fd, address); + DBG("fd=" SOCKET_FMT " serving at %s", fd, address); efl_net_server_serving_set(o, EINA_TRUE); return 0; error: efl_net_server_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } @@ -322,7 +322,7 @@ _efl_net_server_udp_efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Serve if (r < 0) { Eina_Error err = efl_net_socket_error_get(); - ERR("recvfrom(%d, %p, %zu, 0, %p, %d): %s", fd, buf, buflen, &addr, addrlen, eina_error_msg_get(err)); + ERR("recvfrom(" SOCKET_FMT ", %p, %zu, 0, %p, %d): %s", fd, buf, buflen, &addr, addrlen, eina_error_msg_get(err)); free(buf); efl_event_callback_call(o, EFL_NET_SERVER_EVENT_ERROR, &err); return; @@ -415,7 +415,7 @@ _efl_net_server_udp_ipv6_only_set(Eo *o, Efl_Net_Server_Udp_Data *pd, Eina_Bool if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &value, sizeof(value)) != 0) { - ERR("could not set socket=%d IPV6_V6ONLY=%d: %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); + ERR("could not set socket=" SOCKET_FMT " IPV6_V6ONLY=%d: %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->ipv6_only = old; } #endif @@ -440,7 +440,7 @@ _efl_net_server_udp_ipv6_only_get(Eo *o EINA_UNUSED, Efl_Net_Server_Udp_Data *pd valuelen = sizeof(value); if (getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &value, &valuelen) != 0) { - WRN("getsockopt(%d, IPPROTO_IPV6, IPV6_V6ONLY): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + WRN("getsockopt(" SOCKET_FMT ", IPPROTO_IPV6, IPV6_V6ONLY): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); goto end; } pd->ipv6_only = !!value; @@ -468,7 +468,7 @@ _efl_net_server_udp_dont_route_set(Eo *o, Efl_Net_Server_Udp_Data *pd, Eina_Bool if (setsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &value, sizeof(value)) != 0) { Eina_Error err = efl_net_socket_error_get(); - ERR("setsockopt(%d, SOL_SOCKET, SO_DONTROUTE, %u): %s", fd, dont_route, eina_error_msg_get(err)); + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_DONTROUTE, %u): %s", fd, dont_route, eina_error_msg_get(err)); pd->dont_route = old; return EINA_FALSE; } @@ -496,7 +496,7 @@ _efl_net_server_udp_dont_route_get(Eo *o, Efl_Net_Server_Udp_Data *pd) if (getsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &value, &valuelen) != 0) { Eina_Error err = efl_net_socket_error_get(); - ERR("getsockopt(%d, SOL_SOCKET, SO_DONTROUTE): %s", fd, eina_error_msg_get(err)); + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_DONTROUTE): %s", fd, eina_error_msg_get(err)); return EINA_FALSE; } diff --git a/src/lib/ecore_con/efl_net_server_unix.c b/src/lib/ecore_con/efl_net_server_unix.c index 70ca83a..7e90bb8 100644 --- a/src/lib/ecore_con/efl_net_server_unix.c +++ b/src/lib/ecore_con/efl_net_server_unix.c @@ -112,7 +112,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) err = 0; continue; } - DBG("bind(%d, %s): %s", fd, address, eina_error_msg_get(err)); + DBG("bind(" SOCKET_FMT ", %s): %s", fd, address, eina_error_msg_get(err)); goto error; } break; @@ -125,7 +125,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) if (r != 0) { err = efl_net_socket_error_get(); - DBG("listen(%d): %s", fd, eina_error_msg_get(err)); + DBG("listen(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } @@ -133,7 +133,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else @@ -148,7 +148,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) } } - DBG("fd=%d serving at %s", fd, address); + DBG("fd=" SOCKET_FMT " serving at %s", fd, address); efl_net_server_serving_set(o, EINA_TRUE); error: @@ -156,7 +156,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) { efl_event_callback_call(o, EFL_NET_SERVER_EVENT_ERROR, &err); if (fd != INVALID_SOCKET) closesocket(fd); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); } efl_unref(o); @@ -165,7 +165,7 @@ _efl_net_server_unix_bind_job(void *data, const Efl_Event *event EINA_UNUSED) EOLIAN static Eina_Error _efl_net_server_unix_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Unix_Data *pd EINA_UNUSED, const char *address) { - EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); + EINA_SAFETY_ON_TRUE_RETURN_VAL((SOCKET)efl_loop_fd_get(o) != INVALID_SOCKET, EALREADY); EINA_SAFETY_ON_NULL_RETURN_VAL(address, EINVAL); #ifndef HAVE_SYSTEMD @@ -177,7 +177,7 @@ _efl_net_server_unix_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Uni Eina_Error err; struct sockaddr_storage *addr; socklen_t addrlen; - int fd; + SOCKET fd; err = efl_net_ip_socket_activate_check(address, AF_UNIX, SOCK_STREAM, &listening); if (err) return err; @@ -192,7 +192,7 @@ _efl_net_server_unix_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Uni if (listen(fd, 0) != 0) { err = efl_net_socket_error_get(); - DBG("listen(%d): %s", fd, eina_error_msg_get(err)); + DBG("listen(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } } @@ -201,19 +201,19 @@ _efl_net_server_unix_efl_net_server_fd_socket_activate(Eo *o, Efl_Net_Server_Uni if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) { err = efl_net_socket_error_get(); - ERR("getsockname(%d): %s", fd, eina_error_msg_get(err)); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(err)); goto error; } else if (efl_net_ip_port_fmt(buf, sizeof(buf), (struct sockaddr *)&addr)) efl_net_server_address_set(o, buf); - DBG("fd=%d serving at %s", fd, address); + DBG("fd=" SOCKET_FMT " serving at %s", fd, address); efl_net_server_serving_set(o, EINA_TRUE); return 0; error: efl_net_server_fd_family_set(o, AF_UNSPEC); - efl_loop_fd_set(o, INVALID_SOCKET); + efl_loop_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); closesocket(fd); return err; } @@ -266,7 +266,7 @@ _efl_net_server_unix_efl_net_server_fd_client_add(Eo *o, Efl_Net_Server_Unix_Dat efl_loop_fd_set(efl_added, client_fd)); if (!client) { - ERR("could not create client object fd=%d", client_fd); + ERR("could not create client object fd=" SOCKET_FMT, (SOCKET)client_fd); closesocket(client_fd); return; } @@ -295,7 +295,7 @@ _efl_net_server_unix_efl_net_server_fd_client_reject(Eo *o, Efl_Net_Server_Unix_ else { if (!efl_net_unix_fmt(str, sizeof(str), client_fd, &addr, addrlen)) - ERR("could not format rejected client unix address fd=%d", client_fd); + ERR("could not format rejected client unix address fd=" SOCKET_FMT, (SOCKET)client_fd); } closesocket(client_fd); diff --git a/src/lib/ecore_con/efl_net_socket_fd.c b/src/lib/ecore_con/efl_net_socket_fd.c index 5f3fd03..9ce046f 100644 --- a/src/lib/ecore_con/efl_net_socket_fd.c +++ b/src/lib/ecore_con/efl_net_socket_fd.c @@ -118,23 +118,25 @@ _efl_net_socket_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, SOCKET fd) static void _efl_net_socket_fd_unset(Eo *o) { - efl_io_reader_fd_reader_fd_set(o, INVALID_SOCKET); - efl_io_writer_fd_writer_fd_set(o, INVALID_SOCKET); - efl_io_closer_fd_closer_fd_set(o, INVALID_SOCKET); + efl_io_reader_fd_reader_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_writer_fd_writer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_closer_fd_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); efl_net_socket_address_local_set(o, NULL); efl_net_socket_address_remote_set(o, NULL); } EOLIAN static void -_efl_net_socket_fd_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, int fd) +_efl_net_socket_fd_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, int pfd) { + SOCKET fd = (SOCKET)pfd; + if ((pd->family == AF_UNSPEC) && (fd != INVALID_SOCKET)) { struct sockaddr_storage addr; socklen_t addrlen = sizeof(addr); if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getsockname(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else efl_net_socket_fd_family_set(o, addr.ss_family); } @@ -161,9 +163,9 @@ _efl_net_socket_fd_efl_io_closer_close(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UN * retain efl_io_closer_fd_closer_fd_get() so close(super()) works * and we emit the events with proper addresses. */ - efl_loop_fd_set(efl_super(o, MY_CLASS), INVALID_SOCKET); + efl_loop_fd_set(efl_super(o, MY_CLASS), SOCKET_TO_LOOP_FD(INVALID_SOCKET)); - efl_io_closer_fd_closer_fd_set(o, INVALID_SOCKET); + efl_io_closer_fd_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); if (closesocket(fd) != 0) ret = efl_net_socket_error_get(); efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL); @@ -176,7 +178,7 @@ _efl_net_socket_fd_efl_io_closer_close(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UN EOLIAN static Eina_Bool _efl_net_socket_fd_efl_io_closer_closed_get(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED) { - return efl_io_closer_fd_closer_fd_get(o) == INVALID_SOCKET; + return (SOCKET)efl_io_closer_fd_closer_fd_get(o) == INVALID_SOCKET; } EOLIAN static Eina_Error diff --git a/src/lib/ecore_con/efl_net_socket_tcp.c b/src/lib/ecore_con/efl_net_socket_tcp.c index 24e4aaf..3a75e39 100644 --- a/src/lib/ecore_con/efl_net_socket_tcp.c +++ b/src/lib/ecore_con/efl_net_socket_tcp.c @@ -43,9 +43,11 @@ typedef struct _Efl_Net_Socket_Tcp_Data } Efl_Net_Socket_Tcp_Data; EOLIAN static void -_efl_net_socket_tcp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, int fd) +_efl_net_socket_tcp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, int pfd) { - efl_loop_fd_set(efl_super(o, MY_CLASS), fd); + SOCKET fd = (SOCKET)pfd; + + efl_loop_fd_set(efl_super(o, MY_CLASS), pfd); if (fd != INVALID_SOCKET) { @@ -63,7 +65,7 @@ _efl_net_socket_tcp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, int f addrlen = sizeof(addr); if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getsockname(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else { char str[INET6_ADDRSTRLEN + sizeof("[]:65536")]; @@ -73,7 +75,7 @@ _efl_net_socket_tcp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, int f addrlen = sizeof(addr); if (getpeername(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getpeername(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getpeername(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else { char str[INET6_ADDRSTRLEN + sizeof("[]:65536")]; @@ -102,7 +104,7 @@ _efl_net_socket_tcp_keep_alive_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, Eina_Bool value = keep_alive; if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, SOL_SOCKET, SO_KEEPALIVE, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_KEEPALIVE, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->keep_alive = old; return EINA_FALSE; @@ -132,7 +134,7 @@ _efl_net_socket_tcp_keep_alive_get(Eo *o, Efl_Net_Socket_Tcp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &value, &valuelen) != 0) { - ERR("getsockopt(%d, SOL_SOCKET, SO_KEEPALIVE): %s", + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_KEEPALIVE): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -160,7 +162,7 @@ _efl_net_socket_tcp_no_delay_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, Eina_Bool n value = no_delay; if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, IPPROTO_TCP, TCP_NODELAY, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", IPPROTO_TCP, TCP_NODELAY, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->no_delay = old; return EINA_FALSE; @@ -190,7 +192,7 @@ _efl_net_socket_tcp_no_delay_get(Eo *o, Efl_Net_Socket_Tcp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &value, &valuelen) != 0) { - ERR("getsockopt(%d, IPPROTO_TCP, TCP_NODELAY): %s", + ERR("getsockopt(" SOCKET_FMT ", IPPROTO_TCP, TCP_NODELAY): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -214,7 +216,8 @@ _cork_option_get(void) EOLIAN static Eina_Bool _efl_net_socket_tcp_cork_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, Eina_Bool cork) { - int value, fd, option; + SOCKET fd; + int value, option; Eina_Bool old = pd->cork; option = _cork_option_get(); @@ -233,7 +236,7 @@ _efl_net_socket_tcp_cork_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, Eina_Bool cork) value = cork; if (setsockopt(fd, IPPROTO_TCP, option, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, IPPROTO_TCP, 0x%x, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", IPPROTO_TCP, 0x%x, %d): %s", fd, option, value, eina_error_msg_get(efl_net_socket_error_get())); pd->cork = old; return EINA_FALSE; @@ -245,7 +248,8 @@ _efl_net_socket_tcp_cork_set(Eo *o, Efl_Net_Socket_Tcp_Data *pd, Eina_Bool cork) EOLIAN static Eina_Bool _efl_net_socket_tcp_cork_get(Eo *o, Efl_Net_Socket_Tcp_Data *pd) { - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; int option; @@ -265,7 +269,7 @@ _efl_net_socket_tcp_cork_get(Eo *o, Efl_Net_Socket_Tcp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, IPPROTO_TCP, option, &value, &valuelen) != 0) { - ERR("getsockopt(%d, IPPROTO_TCP, 0x%x): %s", + ERR("getsockopt(" SOCKET_FMT ", IPPROTO_TCP, 0x%x): %s", fd, option, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } diff --git a/src/lib/ecore_con/efl_net_socket_udp.c b/src/lib/ecore_con/efl_net_socket_udp.c index 3cfbd56..e744717 100644 --- a/src/lib/ecore_con/efl_net_socket_udp.c +++ b/src/lib/ecore_con/efl_net_socket_udp.c @@ -140,14 +140,15 @@ _efl_net_socket_udp_bind(Eo *o, Efl_Net_Socket_Udp_Data *pd) } EOLIAN static void -_efl_net_socket_udp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, int fd) +_efl_net_socket_udp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, int pfd) { + SOCKET fd = (SOCKET)pfd; Eina_List *node; struct sockaddr_storage addr; socklen_t addrlen; int family; - efl_loop_fd_set(efl_super(o, MY_CLASS), fd); + efl_loop_fd_set(efl_super(o, MY_CLASS), pfd); if (fd == INVALID_SOCKET) return; @@ -197,7 +198,7 @@ _efl_net_socket_udp_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, int f addrlen = sizeof(addr); if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getsockname(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else { char str[INET6_ADDRSTRLEN + sizeof("[]:65536")]; @@ -227,7 +228,8 @@ _cork_option_get(void) EOLIAN static Eina_Bool _efl_net_socket_udp_cork_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool cork) { - int value, fd, option; + SOCKET fd; + int value, option; Eina_Bool old = pd->cork; option = _cork_option_get(); @@ -246,7 +248,7 @@ _efl_net_socket_udp_cork_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool cork) value = cork; if (setsockopt(fd, IPPROTO_UDP, option, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, IPPROTO_UDP, 0x%x, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", IPPROTO_UDP, 0x%x, %d): %s", fd, option, value, eina_error_msg_get(efl_net_socket_error_get())); pd->cork = old; return EINA_FALSE; @@ -258,7 +260,8 @@ _efl_net_socket_udp_cork_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool cork) EOLIAN static Eina_Bool _efl_net_socket_udp_cork_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) { - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; int option; @@ -278,7 +281,7 @@ _efl_net_socket_udp_cork_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, IPPROTO_UDP, option, &value, &valuelen) != 0) { - ERR("getsockopt(%d, IPPROTO_UDP, 0x%x): %s", + ERR("getsockopt(" SOCKET_FMT ", IPPROTO_UDP, 0x%x): %s", fd, option, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -305,7 +308,7 @@ _efl_net_socket_udp_dont_route_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool if (setsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &value, sizeof(value)) != 0) { Eina_Error err = efl_net_socket_error_get(); - ERR("setsockopt(%d, SOL_SOCKET, SO_DONTROUTE, %u): %s", fd, dont_route, eina_error_msg_get(err)); + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_DONTROUTE, %u): %s", fd, dont_route, eina_error_msg_get(err)); pd->dont_route = old; return EINA_FALSE; } @@ -333,7 +336,7 @@ _efl_net_socket_udp_dont_route_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) if (getsockopt(fd, SOL_SOCKET, SO_DONTROUTE, &value, &valuelen) != 0) { Eina_Error err = efl_net_socket_error_get(); - ERR("getsockopt(%d, SOL_SOCKET, SO_DONTROUTE): %s", fd, eina_error_msg_get(err)); + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_DONTROUTE): %s", fd, eina_error_msg_get(err)); return EINA_FALSE; } @@ -345,7 +348,8 @@ _efl_net_socket_udp_dont_route_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) EOLIAN static Eina_Bool _efl_net_socket_udp_reuse_address_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool reuse_address) { - int value, fd; + SOCKET fd; + int value; Eina_Bool old = pd->reuse_address; pd->reuse_address = reuse_address; @@ -356,7 +360,7 @@ _efl_net_socket_udp_reuse_address_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_B value = reuse_address; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, SOL_SOCKET, SO_REUSEADDR, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEADDR, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->reuse_address = old; return EINA_FALSE; @@ -368,7 +372,8 @@ _efl_net_socket_udp_reuse_address_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_B EOLIAN static Eina_Bool _efl_net_socket_udp_reuse_address_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) { - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; fd = efl_loop_fd_get(o); @@ -380,7 +385,7 @@ _efl_net_socket_udp_reuse_address_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &value, &valuelen) != 0) { - ERR("getsockopt(%d, SOL_SOCKET, SO_REUSEADDR): %s", + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEADDR): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } @@ -393,7 +398,8 @@ EOLIAN static Eina_Bool _efl_net_socket_udp_reuse_port_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool reuse_port) { #ifdef SO_REUSEPORT - int value, fd; + SOCKET fd; + int value; Eina_Bool old = pd->reuse_port; #endif @@ -406,7 +412,7 @@ _efl_net_socket_udp_reuse_port_set(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Bool value = reuse_port; if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) != 0) { - ERR("setsockopt(%d, SOL_SOCKET, SO_REUSEPORT, %d): %s", + ERR("setsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEPORT, %d): %s", fd, value, eina_error_msg_get(efl_net_socket_error_get())); pd->reuse_port = old; return EINA_FALSE; @@ -420,7 +426,8 @@ EOLIAN static Eina_Bool _efl_net_socket_udp_reuse_port_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) { #ifdef SO_REUSEPORT - int value = 0, fd; + SOCKET fd; + int value = 0; socklen_t valuelen; fd = efl_loop_fd_get(o); @@ -432,7 +439,7 @@ _efl_net_socket_udp_reuse_port_get(Eo *o, Efl_Net_Socket_Udp_Data *pd) valuelen = sizeof(value); if (getsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, &valuelen) != 0) { - ERR("getsockopt(%d, SOL_SOCKET, SO_REUSEPORT): %s", + ERR("getsockopt(" SOCKET_FMT ", SOL_SOCKET, SO_REUSEPORT): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); return EINA_FALSE; } diff --git a/src/lib/ecore_con/efl_net_socket_unix.c b/src/lib/ecore_con/efl_net_socket_unix.c index 2647a4e..ae88f4f 100644 --- a/src/lib/ecore_con/efl_net_socket_unix.c +++ b/src/lib/ecore_con/efl_net_socket_unix.c @@ -33,9 +33,11 @@ typedef struct _Efl_Net_Socket_Unix_Data } Efl_Net_Socket_Unix_Data; EOLIAN static void -_efl_net_socket_unix_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Unix_Data *pd EINA_UNUSED, int fd) +_efl_net_socket_unix_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Unix_Data *pd EINA_UNUSED, int pfd) { - efl_loop_fd_set(efl_super(o, MY_CLASS), fd); + SOCKET fd = (SOCKET)pfd; + + efl_loop_fd_set(efl_super(o, MY_CLASS), pfd); if (fd != INVALID_SOCKET) { @@ -49,7 +51,7 @@ _efl_net_socket_unix_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Unix_Data *pd EINA addrlen = sizeof(addr); if (getsockname(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getsockname(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getsockname(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else { char str[sizeof(addr) + sizeof("abstract:")]; @@ -62,7 +64,7 @@ _efl_net_socket_unix_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Unix_Data *pd EINA addrlen = sizeof(addr); if (getpeername(fd, (struct sockaddr *)&addr, &addrlen) != 0) - ERR("getpeername(%d): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); + ERR("getpeername(" SOCKET_FMT "): %s", fd, eina_error_msg_get(efl_net_socket_error_get())); else { char str[sizeof(addr) + sizeof("abstract:")]; --