diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/socket/socket.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index d46092f119..bd39d7eb7c 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -104,7 +104,7 @@ struct sockaddr_storage { }; #endif -#if defined(INET6) && (defined(LOOKUP_ORDER_HACK_INET) || defined(LOOKUP_ORDER_HACK_INET)) +#if defined(INET6) && (defined(LOOKUP_ORDER_HACK_INET) || defined(LOOKUP_ORDER_HACK_INET6)) #define LOOKUP_ORDERS 3 static int lookup_order_table[LOOKUP_ORDERS] = { #if defined(LOOKUP_ORDER_HACK_INET) @@ -381,7 +381,7 @@ bsock_send(argc, argv, sock) retry: rb_thread_fd_writable(fd); m = rb_str2cstr(msg, &mlen); - if (RTEST(to)) { + if (!NIL_P(to)) { t = rb_str2cstr(to, &tlen); n = sendto(fd, m, mlen, NUM2INT(flags), (struct sockaddr*)t, tlen); @@ -611,15 +611,6 @@ ip_addrsetup(host, port) return res; } -static VALUE -ip_recvfrom(argc, argv, sock) - int argc; - VALUE *argv; - VALUE sock; -{ - return s_recvfrom(sock, argc, argv, RECV_IP); -} - static void setipaddr(name, addr) VALUE name; @@ -1168,6 +1159,15 @@ ip_peeraddr(sock) } static VALUE +ip_recvfrom(argc, argv, sock) + int argc; + VALUE *argv; + VALUE sock; +{ + return s_recvfrom(sock, argc, argv, RECV_IP); +} + +static VALUE ip_s_getaddress(obj, host) VALUE obj, host; { @@ -1259,7 +1259,7 @@ udp_send(argc, argv, sock) int mlen; struct addrinfo *res0, *res; - if (argc == 2) { + if (argc == 2 || argc == 3) { return bsock_send(argc, argv, sock); } rb_secure(4); |