[SCCP MASQ] itroduce mgw_nat_usr:reset_sccp_masq() to forget all state
This is a useful feature during testing
diff --git a/src/mgw_nat_usr.erl b/src/mgw_nat_usr.erl
index 0743aad..f738f7e 100644
--- a/src/mgw_nat_usr.erl
+++ b/src/mgw_nat_usr.erl
@@ -23,7 +23,7 @@
-behavior(gen_server).
--export([start_link/1, stop/0]).
+-export([start_link/1, stop/0, sccp_masq_reset/0]).
-export([init/1, handle_cast/2, handle_info/2, terminate/2]).
@@ -33,6 +33,9 @@
stop() ->
gen_server:cast(?MODULE, stop).
+sccp_masq_reset() ->
+ gen_server:cast(?MODULE, sccp_masq_reset).
+
%% Callback functions of the OTP behavior
@@ -41,7 +44,11 @@
apply(sctp_handler, init, Params).
handle_cast(stop, LoopData) ->
- {stop, normal, LoopData}.
+ {stop, normal, LoopData};
+
+handle_cast(sccp_masq_reset, LoopData) ->
+ sccp_masq:reset(),
+ {noreply, LoopData}.
terminate(_Reason, _LoopData) ->
ok.
diff --git a/src/sccp_masq.erl b/src/sccp_masq.erl
index 6c14dbd..4d0027b 100644
--- a/src/sccp_masq.erl
+++ b/src/sccp_masq.erl
@@ -21,7 +21,7 @@
-author('Harald Welte <laforge@gnumonks.org>').
-include("sccp.hrl").
--export([sccp_masq_msg/3, init/0]).
+-export([sccp_masq_msg/3, init/0, reset/0]).
-compile([export_all]).
@@ -144,3 +144,8 @@
put(sccp_masq_orig, Orig),
put(sccp_masq_rev, Rev),
ok.
+
+reset() ->
+ io:format("SCCP MASQ: Deleting all MASQ state records~n"),
+ ets:delete_all_objects(get(sccp_masq_orig)),
+ ets:delete_all_objects(get(sccp_masq_rev)).