aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_frontend_socket.erl
diff options
context:
space:
mode:
authorMickael Remond <mremond@process-one.net>2016-12-01 15:05:09 +0100
committerMickael Remond <mremond@process-one.net>2016-12-01 15:05:09 +0100
commit309fd56fb4bbb82215e4e9873eeb677e49f804de (patch)
tree3993dc3b1c9d81c18163f853760e678e3d3337d1 /src/ejabberd_frontend_socket.erl
parentMerge branch 'master' of github.com:processone/ejabberd (diff)
parentFixes pt-br translation (thanks to Rodrigues)(#1393) (diff)
Merge branch 'master' of github.com:processone/ejabberd
Diffstat (limited to 'src/ejabberd_frontend_socket.erl')
-rw-r--r--src/ejabberd_frontend_socket.erl17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ejabberd_frontend_socket.erl b/src/ejabberd_frontend_socket.erl
index b8e706f23..ab5b6a701 100644
--- a/src/ejabberd_frontend_socket.erl
+++ b/src/ejabberd_frontend_socket.erl
@@ -42,6 +42,7 @@
change_shaper/2,
monitor/1,
get_sockmod/1,
+ get_transport/1,
get_peer_certificate/1,
get_verify_result/1,
close/1,
@@ -118,6 +119,9 @@ monitor(FsmRef) -> erlang:monitor(process, FsmRef).
get_sockmod(FsmRef) ->
gen_server:call(FsmRef, get_sockmod).
+get_transport(FsmRef) ->
+ gen_server:call(FsmRef, get_transport).
+
get_peer_certificate(FsmRef) ->
gen_server:call(FsmRef, get_peer_certificate).
@@ -186,6 +190,19 @@ handle_call({change_shaper, Shaper}, _From, State) ->
handle_call(get_sockmod, _From, State) ->
Reply = State#state.sockmod,
{reply, Reply, State, ?HIBERNATE_TIMEOUT};
+handle_call(get_transport, _From, State) ->
+ Reply = case State#state.sockmod of
+ gen_tcp -> tcp;
+ fast_tls -> tls;
+ ezlib ->
+ case ezlib:get_sockmod(State#state.socket) of
+ tcp -> tcp_zlib;
+ tls -> tls_zlib
+ end;
+ ejabberd_http_bind -> http_bind;
+ ejabberd_http_ws -> websocket
+ end,
+ {reply, Reply, State, ?HIBERNATE_TIMEOUT};
handle_call(get_peer_certificate, _From, State) ->
Reply = fast_tls:get_peer_certificate(State#state.socket),
{reply, Reply, State, ?HIBERNATE_TIMEOUT};