Commit 0dc3aac9 authored by berge's avatar berge
Browse files

Fixed issue concerning ESP Header handling in f_setExtensionHeaders.

parent 6da7e822
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ group rfc2460Root_Functions {
		var Ipv6Address v_pseudoSrcAddr := c_16ZeroBytes;
		var Ipv6Address v_pseudoDstAddr := c_16ZeroBytes;
		var boolean v_loop := true;
		var boolean v_checkPayload := true;		
		var Ipv6Packet v_originalIpv6Packet;
		var Ipv6Packet v_activeIpv6Packet := p_ipv6Packet;

@@ -146,7 +145,6 @@ group rfc2460Root_Functions {
						v_activeIpv6Packet.ipv6Payload := v_originalIpv6Packet.ipv6Payload;	
					}
					
					v_checkPayload := false;
					v_loop := false;				
				}
				//Process ESP Header
@@ -161,13 +159,23 @@ group rfc2460Root_Functions {
												v_originalIpv6Packet.ipv6Hdr.sourceAddress,
												v_originalIpv6Packet.ipv6Hdr.destinationAddress);
												
						// include recursion results
						if (ispresent(v_originalIpv6Packet.extHdrList)) {
							for (j:=0; j<sizeof(v_originalIpv6Packet.extHdrList) ;j:=j+1) {
								v_activeIpv6Packet.extHdrList[i+1] := v_originalIpv6Packet.extHdrList[j];	
							}			
						}
						if (ispresent(v_originalIpv6Packet.ipv6Payload)) {
							v_activeIpv6Packet.ipv6Payload := v_originalIpv6Packet.ipv6Payload;	
						}												
	
						v_loop := false;
					}
				} 
			}//end for
		}

		if (v_checkPayload==true and ispresent(v_activeIpv6Packet.ipv6Payload)) {
		if (v_loop==true and ispresent(v_activeIpv6Packet.ipv6Payload)) {
			v_originalIpv6Packet := v_activeIpv6Packet;
			v_originalIpv6Packet.ipv6Hdr.sourceAddress := v_pseudoSrcAddr;
			v_originalIpv6Packet.ipv6Hdr.destinationAddress := v_pseudoDstAddr;