49
49
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51
init(Config) when list(Config) ->
51
init(Config) when is_list(Config) ->
52
52
Flag = process_flag(trap_exit, true),
53
53
Res = (catch start()),
54
54
process_flag(trap_exit, Flag),
63
finish(Config) when list(Config) ->
63
finish(Config) when is_list(Config) ->
64
64
case lists:keysearch(flex_scanner, 1, Config) of
65
65
{value, {flex_scanner, {Pid, _Conf}}} ->
92
scanner_conf(Config) when list(Config) ->
92
scanner_conf(Config) when is_list(Config) ->
93
93
case lists:keysearch(flex_scanner, 1, Config) of
94
94
{value, {flex_scanner, {Pid, Conf}}} ->
95
95
case ping_flex_scanner(Pid) of
121
case (catch megaco_flex_scanner:start()) of
122
{ok, Port} when port(Port) ->
123
Pid ! {flex_scanner_started, self(), {flex, Port}},
121
SMP = erlang:system_info(smp_support),
122
case (catch megaco_flex_scanner:start(SMP)) of
124
Pid ! {flex_scanner_started, self(), {flex, PortOrPorts}},
125
handler(Pid, PortOrPorts);
125
126
{error, {load_driver, {open_error, Reason}}} ->
126
127
Error = {failed_loading_flex_scanner_driver, Reason},
127
128
Pid ! {flex_scanner_error, Error},
139
handler(Pid, Port) ->
140
handler(Pid, PortOrPorts) ->
141
142
{ping, Pinger} ->
142
143
Pinger ! {pong, self()},
144
{'EXIT', Port, Reason} ->
144
handler(Pid, PortOrPorts);
145
{'EXIT', Port, Reason} when (PortOrPorts =:= Port) ->
145
146
Pid ! {flex_scanner_exit, Reason},
146
147
exit({flex_scanner_exit, Reason});
148
{'EXIT', Port, Reason} when is_port(Port) ->
149
case megaco_flex_scanner:is_scanner_port(Port, PortOrPorts) of
151
Pid ! {flex_scanner_exit, Reason},
152
exit({flex_scanner_exit, Reason});
154
io:format("flex scanner handler got port exit "
156
"~n ~p: ~p", [Port, Reason]),
159
handler(Pid, PortOrPorts);
148
megaco_flex_scanner:stop(Port),
161
megaco_flex_scanner:stop(PortOrPorts),
151
164
io:format("flex scanner handler got something:~n"
166
handler(Pid, PortOrPorts)