summaryrefslogtreecommitdiff
path: root/src/extauth.erl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/extauth.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/extauth.erl b/src/extauth.erl
index c1721a0e..3b2e7db6 100644
--- a/src/extauth.erl
+++ b/src/extauth.erl
@@ -126,7 +126,8 @@ loop(Port, Timeout, ProcessName, ExtPrg) ->
?ERROR_MSG("extauth call '~p' didn't receive response", [Msg]),
Caller ! {eauth, false},
unregister(ProcessName),
- spawn(?MODULE, init, [ProcessName, ExtPrg]),
+ Pid = spawn(?MODULE, init, [ProcessName, ExtPrg]),
+ flush_buffer_and_forward_messages(Pid),
exit(port_terminated)
end;
stop ->
@@ -140,6 +141,15 @@ loop(Port, Timeout, ProcessName, ExtPrg) ->
exit(port_terminated)
end.
+flush_buffer_and_forward_messages(Pid) ->
+ receive
+ Message ->
+ Pid ! Message,
+ flush_buffer_and_forward_messages(Pid)
+ after 0 ->
+ true
+ end.
+
join(List, Sep) ->
lists:foldl(fun(A, "") -> A;
(A, Acc) -> Acc ++ Sep ++ A