W3cubDocs

/Ruby 3

class SOCKSSocket

Parent:
TCPSocket

SOCKS is an Internet protocol that routes packets between a client and a server through a proxy server. SOCKS5, if supported, additionally provides authentication so only authorized users may access a server.

Public Class Methods

new(host, port) → socket Show source
static VALUE
socks_init(VALUE sock, VALUE host, VALUE port)
{
    static int init = 0;

    if (init == 0) {
        SOCKSinit("ruby");
        init = 1;
    }

    return rsock_init_inetsock(sock, host, port, Qnil, Qnil, INET_SOCKS, Qnil);
}

Opens a SOCKS connection to host via the SOCKS server.

The SOCKS server configuration varies by implementation

When using the Dante libsocks/libsocksd implementation it is configured as SOCKS_SERVER env var.

See: manpages.debian.org/testing/dante-client/socksify.1.en.html for full env variable support.

new(host, serv) Show source
# File lib/resolv-replace.rb, line 73
def initialize(host, serv)
  original_resolv_initialize(IPSocket.getaddress(host), port)
end

Public Instance Methods

close() Show source
static VALUE
socks_s_close(VALUE sock)
{
    rb_io_t *fptr;

    GetOpenFile(sock, fptr);
    shutdown(fptr->fd, 2);
    return rb_io_close(sock);
}

Closes the SOCKS connection.

Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.