Project

General

Profile

Feature #13719

[PATCH] net/http: allow existing socket arg for Net::HTTP.start

Added by normalperson (Eric Wong) over 3 years ago. Updated about 2 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:81920]

Description

This allows Net::HTTP users to use Unix domain sockets
or any other type of stream socket, including TCP.
Several HTTP servers (e.g. nginx and puma) support
listening on local Unix sockets instead of TCP.

* lib/net/http.rb (HTTP.start): handle :socket option
  (initialize): @live_socket defaults to nil
  (connect): only connect if @live_socket is missing
  (do_finish): remove reference to @live_socket
* test/net/http/test_http.rb (test_socket_arg_unix): new test

patch mirror:
https://80x24.org/spew/20170705112439.22359-1-e@80x24.org/raw


Files

Updated by hadmut (Hadmut Danisch) about 2 months ago

Any news on this?

I was just trying to use the rest-client gem to connect to a unix domain socket, which isn't possible since the underlying net/http component does not accept unix domain URLs.

Since offering rest-apis on unix-domain sockets has become a standard, ruby should be able to connect straight forward.

Updated by normalperson (Eric Wong) about 2 months ago

hadmut@danisch.de wrote:

Any news on this?

https://bugs.ruby-lang.org/issues/13719#change-87531

It looks like net/http development moved to a proprietary service
which I can't comment on due to Terms-of-Service + JS + CAPTCHA:
https://github.com/ruby/net-http

In the past, hsbt (Hiroshi SHIBATA) said he'd help merge patches from non-GitHub users;
I don't know if that's still true.

Also available in: Atom PDF