diff options
author | Alexey Shchepin <alexey@process-one.net> | 2006-10-19 04:46:24 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2006-10-19 04:46:24 +0000 |
commit | cd7595e3f41ff103cf7c96d0699f5a738405d82f (patch) | |
tree | 6574b5af7fa662e7d92db6b7ba1f9d58ebf0416d /src/ejabberd_frontend_socket.erl | |
parent | * ChangeLog: Fixed typo. (diff) |
* src/ejabberd_socket.erl: Added sockname/1 and peername/1
functions
* src/ejabberd_frontend_socket.erl: Likewise
* src/tls/tls.erl: Likewise
* src/ejabberd_zlib/ejabberd_zlib.erl: Likewise
* src/mod_private_odbc.erl: Private storage support using odbc
* src/odbc/pg.sql: Likewise
SVN Revision: 663
Diffstat (limited to '')
-rw-r--r-- | src/ejabberd_frontend_socket.erl | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/ejabberd_frontend_socket.erl b/src/ejabberd_frontend_socket.erl index c69fac5b..bafb96e4 100644 --- a/src/ejabberd_frontend_socket.erl +++ b/src/ejabberd_frontend_socket.erl @@ -25,7 +25,8 @@ get_sockmod/1, get_peer_certificate/1, get_verify_result/1, - close/1]). + close/1, + sockname/1, peername/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, @@ -109,6 +110,12 @@ get_verify_result(FsmRef) -> close(FsmRef) -> gen_server:call(FsmRef, close). +sockname(FsmRef) -> + gen_server:call(FsmRef, sockname). + +peername(FsmRef) -> + gen_server:call(FsmRef, peername). + %%==================================================================== %% gen_server callbacks @@ -205,6 +212,28 @@ handle_call(close, _From, State) -> Reply = ok, {stop, normal, Reply, State}; +handle_call(sockname, _From, State) -> + #state{sockmod = SockMod, socket = Socket} = State, + Reply = + case SockMod of + gen_tcp -> + inet:sockname(Socket); + _ -> + SockMod:sockname(Socket) + end, + {reply, Reply, State}; + +handle_call(peername, _From, State) -> + #state{sockmod = SockMod, socket = Socket} = State, + Reply = + case SockMod of + gen_tcp -> + inet:peername(Socket); + _ -> + SockMod:peername(Socket) + end, + {reply, Reply, State}; + handle_call(_Request, _From, State) -> Reply = ok, {reply, Reply, State}. |