MAP MASQ: Propagate 'From' parameter down into various functions

... but not into 'patch' itself
diff --git a/src/map_masq.erl b/src/map_masq.erl
index 9c9405d..c69b96e 100644
--- a/src/map_masq.erl
+++ b/src/map_masq.erl
@@ -235,21 +235,21 @@
 
 
 % process the Argument of a particular MAP invocation
-process_component_arg(OpCode, Arg) ->
+process_component_arg(_From, OpCode, Arg) ->
 	case Arg of
 		asn1_NOVALUE -> Arg;
 		_ -> patch(Arg)
 	end.
 
 % recurse over all components
-handle_tcap_components(asn1_NOVALUE) ->
+handle_tcap_components(_From, asn1_NOVALUE) ->
 	asn1_NOVALUE;
-handle_tcap_components(List) ->
+handle_tcap_components(From, List) ->
 	% we reverse the origianl list, as the tail recursive _acc function
 	% will invert the order of components again
-	handle_tcap_components_acc(lists:reverse(List), []).
-handle_tcap_components_acc([], NewComponents) -> NewComponents;
-handle_tcap_components_acc([Component|Tail], NewComponents) ->
+	handle_tcap_components_acc(From, lists:reverse(List), []).
+handle_tcap_components_acc(_From, [], NewComponents) -> NewComponents;
+handle_tcap_components_acc(From, [Component|Tail], NewComponents) ->
 	case Component of
 		{basicROS, {Primitive, Body}} ->
 			io:format("handle component ~p primitive ~n", [Component]),
@@ -257,35 +257,35 @@
 				% BEGIN
 				#'MapSpecificPDUs_begin_components_SEQOF_basicROS_invoke'{opcode={local, OpCode},
 											  argument=Arg} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_begin_components_SEQOF_basicROS_invoke'{argument=NewArg};
 				#'MapSpecificPDUs_begin_components_SEQOF_basicROS_returnResult'{result=#'MapSpecificPDUs_begin_components_SEQOF_basicROS_returnResult_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_begin_components_SEQOF_basicROS_returnResult'{result=R#'MapSpecificPDUs_begin_components_SEQOF_basicROS_returnResult_result'{result=NewArg}};
 				#'MapSpecificPDUs_begin_components_SEQOF_returnResultNotLast'{result=#'MapSpecificPDUs_begin_components_SEQOF_returnResultNotLast_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_begin_components_SEQOF_returnResultNotLast'{result=R#'MapSpecificPDUs_begin_components_SEQOF_returnResultNotLast_result'{result=NewArg}};
 				% END
 				#'MapSpecificPDUs_end_components_SEQOF_basicROS_invoke'{opcode={local, OpCode},
 											argument=Arg} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_end_components_SEQOF_basicROS_invoke'{argument=NewArg};
 				#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult'{result=#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult'{result=R#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult_result'{result=NewArg}};
 				#'MapSpecificPDUs_end_components_SEQOF_returnResultNotLast'{result=#'MapSpecificPDUs_end_components_SEQOF_returnResultNotLast_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_end_components_SEQOF_returnResultNotLast'{result=R#'MapSpecificPDUs_end_components_SEQOF_returnResultNotLast_result'{result=NewArg}};
 				% CONTINUE
 				#'MapSpecificPDUs_continue_components_SEQOF_basicROS_invoke'{opcode={local, OpCode},
 											     argument=Arg} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_continue_components_SEQOF_basicROS_invoke'{argument=NewArg};
 				#'MapSpecificPDUs_continue_components_SEQOF_basicROS_returnResult'{result=#'MapSpecificPDUs_continue_components_SEQOF_basicROS_returnResult_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult'{result=R#'MapSpecificPDUs_end_components_SEQOF_basicROS_returnResult_result'{result=NewArg}};
 				#'MapSpecificPDUs_continue_components_SEQOF_returnResultNotLast'{result=#'MapSpecificPDUs_continue_components_SEQOF_returnResultNotLast_result'{opcode={local, OpCode}, result=Arg} = R} ->
-					NewArg = process_component_arg(OpCode, Arg),
+					NewArg = process_component_arg(From, OpCode, Arg),
 					NewBody = Body#'MapSpecificPDUs_continue_components_SEQOF_returnResultNotLast'{result=R#'MapSpecificPDUs_continue_components_SEQOF_returnResultNotLast_result'{result=NewArg}};
 				_ ->
 					NewBody = Body
@@ -296,7 +296,7 @@
 			NewComponent = Component
 	end,
 	io:format("=> modified component ~p~n", [NewComponent]),
-	handle_tcap_components_acc(Tail, [NewComponent|NewComponents]).
+	handle_tcap_components_acc(From, Tail, [NewComponent|NewComponents]).
 	
 
 % Erlang asn1rt has this strange property that all incoming EXTERNAL types are
@@ -313,33 +313,33 @@
 	Foo.
 
 
-handle_tcap_dialogue(Foo = {'EXTERNAL', DirRef, IndRef, Data}) ->
+handle_tcap_dialogue(_From, Foo = {'EXTERNAL', DirRef, IndRef, Data}) ->
 	asn1_EXTERNAL1994_fixup(Foo);
-handle_tcap_dialogue(Foo) ->
+handle_tcap_dialogue(_From, Foo) ->
 	Foo.
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % Actual mangling of the decoded MAP messages 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-mangle_map(_From, {Type, TcapMsgDec}) ->
+mangle_map(From, {Type, TcapMsgDec}) ->
 	case {Type, TcapMsgDec} of
 	{'unidirectional', #'MapSpecificPDUs_unidirectional'{dialoguePortion=Dialg,
 							     components=Components}} ->
-		NewDialg = handle_tcap_dialogue(Dialg),
-		NewComponents = handle_tcap_components(Components),
+		NewDialg = handle_tcap_dialogue(From, Dialg),
+		NewComponents = handle_tcap_components(From, Components),
 		NewTcapMsgDec = TcapMsgDec#'MapSpecificPDUs_unidirectional'{dialoguePortion=NewDialg, components=NewComponents};
 	{'begin', #'MapSpecificPDUs_begin'{dialoguePortion=Dialg, components=Components}} ->
-		NewDialg = handle_tcap_dialogue(Dialg),
-		NewComponents = handle_tcap_components(Components),
+		NewDialg = handle_tcap_dialogue(From, Dialg),
+		NewComponents = handle_tcap_components(From, Components),
 		NewTcapMsgDec = TcapMsgDec#'MapSpecificPDUs_begin'{dialoguePortion=NewDialg, components=NewComponents};
 	{'continue', #'MapSpecificPDUs_continue'{dialoguePortion=Dialg, components=Components}} ->
-		NewDialg = handle_tcap_dialogue(Dialg),
-		NewComponents = handle_tcap_components(Components),
+		NewDialg = handle_tcap_dialogue(From, Dialg),
+		NewComponents = handle_tcap_components(From, Components),
 		NewTcapMsgDec = TcapMsgDec#'MapSpecificPDUs_continue'{dialoguePortion=NewDialg, components=NewComponents};
 	{'end', #'MapSpecificPDUs_end'{dialoguePortion=Dialg, components=Components}} ->
-		NewDialg = handle_tcap_dialogue(Dialg),
-		NewComponents = handle_tcap_components(Components),
+		NewDialg = handle_tcap_dialogue(From, Dialg),
+		NewComponents = handle_tcap_components(From, Components),
 		NewTcapMsgDec = TcapMsgDec#'MapSpecificPDUs_end'{dialoguePortion=NewDialg, components=NewComponents};
 	%{_, #'Abort'{reason=Reason} ->
 	_ ->