mgw_nat_test: Handle EOF from epcap, don't catch errors
diff --git a/src/mgw_nat_test.erl b/src/mgw_nat_test.erl
index ab8a844..f0c8680 100644
--- a/src/mgw_nat_test.erl
+++ b/src/mgw_nat_test.erl
@@ -22,6 +22,9 @@
 -author("Harald Welte <laforge@gnumonks.org>").
 -export([pcap_apply/3]).
 
+-define(NODEBUG, 1).
+
+-include_lib("eunit/include/eunit.hrl").
 -include_lib("epcap/include/epcap_net.hrl").
 
 pcap_apply(File, Filter, Args) ->
@@ -32,13 +35,18 @@
 	receive
 		[{pkthdr, {_,_,_,{datalink,Datalink}}}, {packet, Packet}] ->
 			Decaps = epcap_net:decapsulate_dlt(Datalink, Packet),
-			handle_pkt_cb(Decaps, Args)
-	end,
-	loop(Args).
+			handle_pkt_cb(Decaps, Args),
+			loop(Args);
+		{epcap, eof} ->
+			?debugFmt("EOF from PCAP~n", []),
+			epcap:stop();
+		Default ->
+			?debugFmt("Unknown ~p from PCAP~n", [Default])
+	end.
 
 
 handle_pkt_cb([Ether, IP, Hdr, Payload], Args) ->
-	io:format("~p:~n  ~p/~p~n", [IP, Hdr, Payload]),
+	?debugFmt("~p:~n  ~p/~p~n", [IP, Hdr, Payload]),
 	case Hdr of
 		#sctp{chunks = Chunks} ->
 			handle_sctp_chunks(Chunks, [Ether, IP, Hdr], Args);
@@ -62,23 +70,16 @@
 
 % Rewrite at SCTP (root) level:
 shim_rw_actor(sctp, From, Path, 2, DataBin) ->
-	io:format("sctp:~p:~p~n", [From, DataBin]),
-	try mgw_nat:mangle_rx_data(From, Path, DataBin, fun shim_rw_actor/5) of
-		Val ->
-			Val
-	catch error:Error ->
-		% some parser error, simply forward msg unmodified
-		io:format("MGW NAT mangling Error: ~p~n", [Error]),
-		DataBin
-	end;
+	?debugFmt("sctp:~p:~p~n", [From, DataBin]),
+	mgw_nat:mangle_rx_data(From, Path, DataBin, fun shim_rw_actor/5);
 shim_rw_actor(Proto, From, Path, MsgType, Msg) ->
-	io:format(" IN:~p:~p:~p~n", [Proto, From, Msg]),
+	?debugFmt(" IN:~p:~p:~p~n", [Proto, From, Msg]),
 	Fn = get(rewrite_cb),
 	MsgOut = Fn(Proto, From, Path, MsgType, Msg),
 	case MsgOut of
 		Msg ->
 			MsgOut;
 		_ ->
-			io:format("OUT:~p:~p:~p~n", [Proto, From, MsgOut]),
+			%io:format("OUT:~p:~p:~p~n", [Proto, From, MsgOut]),
 			MsgOut
 	end.