diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-10-04 04:51:08 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-10-04 04:51:08 +0000 |
| commit | 52d12453a9941ff91fbcaf1b02914efcb5a7621b (patch) | |
| tree | a6ad21b14e176e9c3a39a775781b978950315543 /ext/socket | |
| parent | 960c03333927ea7bc50a29b263e33331edff5460 (diff) | |
| download | ruby-52d12453a9941ff91fbcaf1b02914efcb5a7621b.tar.gz ruby-52d12453a9941ff91fbcaf1b02914efcb5a7621b.tar.xz ruby-52d12453a9941ff91fbcaf1b02914efcb5a7621b.zip | |
19991004
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
| -rw-r--r-- | ext/socket/getaddrinfo.c | 4 | ||||
| -rw-r--r-- | ext/socket/getnameinfo.c | 4 | ||||
| -rw-r--r-- | ext/socket/socket.c | 17 |
3 files changed, 25 insertions, 0 deletions
diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c index c71a56ca8..501ebd500 100644 --- a/ext/socket/getaddrinfo.c +++ b/ext/socket/getaddrinfo.c @@ -67,6 +67,10 @@ #include <stddef.h> #include <ctype.h> +#ifdef SOCKS5 +#include <socks.h> +#endif + #include "config.h" #include "addrinfo.h" #include "sockport.h" diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c index abadd8f44..cb65e4c07 100644 --- a/ext/socket/getnameinfo.c +++ b/ext/socket/getnameinfo.c @@ -56,6 +56,10 @@ #include <string.h> #include <stddef.h> +#ifdef SOCKS5 +#include <socks.h> +#endif + #include "config.h" #include "addrinfo.h" #include "sockport.h" diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 3ff6af441..f7840948f 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -780,6 +780,20 @@ socks_s_open(class, host, serv) Check_SafeStr(host); return open_inet(class, host, serv, INET_SOCKS); } + +#ifdef SOCKS5 +static VALUE +socks_s_close(sock) + VALUE sock; +{ + OpenFile *fptr; + + GetOpenFile(sock, fptr); + shutdown(fileno(fptr->f), 2); + shutdown(fileno(fptr->f2), 2); + return rb_io_close(sock); +} +#endif #endif /* @@ -1876,6 +1890,9 @@ Init_socket() rb_define_global_const("SOCKSsocket", rb_cSOCKSSocket); rb_define_singleton_method(rb_cSOCKSSocket, "open", socks_s_open, 2); rb_define_singleton_method(rb_cSOCKSSocket, "new", socks_s_open, 2); +#ifdef SOCKS5 + rb_define_method(rb_cSOCKSSocket, "close", socks_s_close, 0); +#endif #endif rb_cTCPServer = rb_define_class("TCPServer", rb_cTCPSocket); |
