summaryrefslogtreecommitdiff
path: root/src/ejabberd_socket.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_socket.erl')
-rw-r--r--src/ejabberd_socket.erl21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/ejabberd_socket.erl b/src/ejabberd_socket.erl
index ba7a24f6..61040bf5 100644
--- a/src/ejabberd_socket.erl
+++ b/src/ejabberd_socket.erl
@@ -2,7 +2,7 @@
%%% File : ejabberd_socket.erl
%%% Author : Alexey Shchepin <alexey@process-one.net>
%%% Purpose : Socket with zlib and TLS support library
-%%% Created : 23 Aug 2006 by Alexey Shchepin <alex@alex.sevcom.net>
+%%% Created : 23 Aug 2006 by Alexey Shchepin <alexey@sevcom.net>
%%% Id : $Id$
%%%----------------------------------------------------------------------
@@ -22,7 +22,8 @@
get_sockmod/1,
get_peer_certificate/1,
get_verify_result/1,
- close/1]).
+ close/1,
+ sockname/1, peername/1]).
-record(socket_state, {sockmod, socket, receiver}).
@@ -131,6 +132,22 @@ get_verify_result(SocketData) ->
close(SocketData) ->
ejabberd_receiver:close(SocketData#socket_state.receiver).
+sockname(#socket_state{sockmod = SockMod, socket = Socket}) ->
+ case SockMod of
+ gen_tcp ->
+ inet:sockname(Socket);
+ _ ->
+ SockMod:sockname(Socket)
+ end.
+
+peername(#socket_state{sockmod = SockMod, socket = Socket}) ->
+ case SockMod of
+ gen_tcp ->
+ inet:peername(Socket);
+ _ ->
+ SockMod:peername(Socket)
+ end.
+
%%====================================================================
%% Internal functions
%%====================================================================