diff options
author | Harald Welte <laforge@gnumonks.org> | 2012-01-28 14:08:52 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2012-01-28 14:08:52 +0100 |
commit | f66bbfa97bd4b5232d168899208ca77bb6088843 (patch) | |
tree | d92f48d1bd29aaf62e9a9b4f287bbb3cbd3b8e1d | |
parent | abfa83e85bdd1e7eaa9934d5f49bde8e0c1d35fd (diff) |
IPA protocol: Fix delivery of 'ipa_closed' to user processes
-rw-r--r-- | src/ipa_proto.erl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/ipa_proto.erl b/src/ipa_proto.erl index d4e9d96..2d851e3 100644 --- a/src/ipa_proto.erl +++ b/src/ipa_proto.erl @@ -146,11 +146,15 @@ process_rx_ipa_msg(S, StreamMap, Data) -> send_close_signal([]) -> ok; send_close_signal([StreamSpec|Tail]) -> - io:format("FIXME: send_close_signal ~p ~p~n", [StreamSpec, Tail]), - [{{Socket, StreamID, Pid}}] = StreamSpec, - Pid ! {ipa_closed, {Socket, StreamID}}, + io:format("send_close_signal ~p ~p~n", [StreamSpec, Tail]), + case StreamSpec of + [{{Socket, StreamID}, {process_id, Pid}}] -> + Pid ! {ipa_closed, {Socket, StreamID}}; + [{{Socket, StreamID}, {callback_fn, Fn, Args}}] -> + Fn(Socket, StreamID, ipa_closed, Args) + end, send_close_signal(Tail). - + process_tcp_closed(S, StreamMap) -> % signal the closed socket to the user StreamList = ets:match(StreamMap, '$1'), |