diff options
author | Loïc Hoguin <[email protected]> | 2017-05-01 21:12:50 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2017-05-01 21:12:50 +0200 |
commit | 3aab5ef99b98f618f701510d76bcf639b915794f (patch) | |
tree | ea3e2f815c698ce363380006fca1445bde887bc5 | |
parent | 3f0b598edff1f411e31aca18ea96562b0d724257 (diff) | |
download | gun-3aab5ef99b98f618f701510d76bcf639b915794f.tar.gz gun-3aab5ef99b98f618f701510d76bcf639b915794f.tar.bz2 gun-3aab5ef99b98f618f701510d76bcf639b915794f.zip |
Add gun:info/11.0.0-pre.3
So far only for getting the socket ip and port on the local
side. More values may be added later on.
-rw-r--r-- | src/gun.erl | 7 | ||||
-rw-r--r-- | test/gun_SUITE.erl | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/gun.erl b/src/gun.erl index 8267460..173bb2d 100644 --- a/src/gun.erl +++ b/src/gun.erl @@ -17,6 +17,7 @@ %% Connection. -export([open/2]). -export([open/3]). +-export([info/1]). -export([close/1]). -export([shutdown/1]). @@ -218,6 +219,12 @@ consider_tracing(ServerPid, #{trace := true}) -> consider_tracing(_, _) -> ok. +-spec info(pid()) -> map(). +info(ServerPid) -> + {_, #state{socket=Socket, transport=Transport}} = sys:get_state(ServerPid), + {ok, {SockIP, SockPort}} = Transport:sockname(Socket), + #{sock_ip => SockIP, sock_port => SockPort}. + -spec close(pid()) -> ok. close(ServerPid) -> supervisor:terminate_child(gun_sup, ServerPid). diff --git a/test/gun_SUITE.erl b/test/gun_SUITE.erl index 505f365..b9706a0 100644 --- a/test/gun_SUITE.erl +++ b/test/gun_SUITE.erl @@ -75,6 +75,12 @@ gone_reason(_) -> error(timeout) end. +info(_) -> + doc("Get info from the Gun connection."), + {ok, Pid} = gun:open("google.com", 443), + #{sock_ip := _, sock_port := _} = gun:info(Pid), + ok. + reply_to(_) -> doc("The reply_to option allows using a separate process for requests."), do_reply_to(http), |