]> granicus.if.org Git - ejabberd/commitdiff
do not forget to close TLS socket
authorEvgeniy Khramtsov <xramtsov@gmail.com>
Mon, 10 Aug 2009 02:20:05 +0000 (02:20 +0000)
committerEvgeniy Khramtsov <xramtsov@gmail.com>
Mon, 10 Aug 2009 02:20:05 +0000 (02:20 +0000)
SVN Revision: 2451

src/stun/ejabberd_stun.erl

index ca880c17556cb85bdb2195276099b981aca7c560..d5085821f492b9bbd7acd14814e4584ef84fe3a2 100644 (file)
@@ -143,15 +143,14 @@ handle_info({tcp, Sock, TLSData}, wait_for_tls, State) ->
        <<_:16, 1, _/binary>> ->
            TLSOpts = [{certfile, State#state.certfile}],
            {ok, TLSSock} = tls:tcp_to_tls(Sock, TLSOpts),
+           NewState = State#state{sock = TLSSock,
+                                  buf = <<>>,
+                                  sock_mod = tls},
            case tls:recv_data(TLSSock, Buf) of
                {ok, Data} ->
-                   process_data(session_established,
-                                State#state{sock = TLSSock,
-                                            buf = <<>>,
-                                            sock_mod = tls},
-                                Data);
+                   process_data(session_established, NewState, Data);
                _Err ->
-                   {stop, normal, State}
+                   {stop, normal, NewState}
            end;
        _ ->
            process_data(session_established, State, TLSData)