Offset 19, 15 lines modifiedOffset 19, 14 lines modified
19 import·java.io.IOException;19 import·java.io.IOException;
20 import·android.system.ErrnoException;20 import·android.system.ErrnoException;
21 import·android.net.ipsec.ike.exceptions.InvalidSyntaxException;21 import·android.net.ipsec.ike.exceptions.InvalidSyntaxException;
22 import·android.os.Parcelable;22 import·android.os.Parcelable;
23 import·android.os.Bundle;23 import·android.os.Bundle;
24 import·android.content.Intent;24 import·android.content.Intent;
25 import·android.app.PendingIntent;25 import·android.app.PendingIntent;
26 import·com.android.internal.net.ipsec.ike.utils.IkeAlarm$IkeAlarmConfig; 
27 import·java.net.Inet4Address;26 import·java.net.Inet4Address;
28 import·com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;27 import·com.android.internal.net.ipsec.ike.message.IkeNotifyPayload;
29 import·com.android.internal.net.ipsec.ike.message.IkeMessage;28 import·com.android.internal.net.ipsec.ike.message.IkeMessage;
30 import·android.os.Message;29 import·android.os.Message;
31 import·android.os.PowerManager;30 import·android.os.PowerManager;
32 import·java.util.HashSet;31 import·java.util.HashSet;
33 import·android.content.BroadcastReceiver;32 import·android.content.BroadcastReceiver;
Offset 86, 27 lines modifiedOffset 85, 28 lines modified
86 ····static·final·int·CMD_EAP_OUTBOUND_MSG_READY·=·310;85 ····static·final·int·CMD_EAP_OUTBOUND_MSG_READY·=·310;
87 ····static·final·int·CMD_EAP_START_EAP_AUTH·=·309;86 ····static·final·int·CMD_EAP_START_EAP_AUTH·=·309;
88 ····static·final·int·CMD_EXECUTE_LOCAL_REQ·=·307;87 ····static·final·int·CMD_EXECUTE_LOCAL_REQ·=·307;
89 ····static·final·int·CMD_FORCE_TRANSITION·=·399;88 ····static·final·int·CMD_FORCE_TRANSITION·=·399;
90 ····private·static·final·int·CMD_GENERAL_BASE·=·300;89 ····private·static·final·int·CMD_GENERAL_BASE·=·300;
91 ····static·final·int·CMD_HANDLE_FIRST_CHILD_NEGOTIATION·=·306;90 ····static·final·int·CMD_HANDLE_FIRST_CHILD_NEGOTIATION·=·306;
92 ····static·final·int·CMD_IKE_LOCAL_REQUEST_BASE·=·400;91 ····static·final·int·CMD_IKE_LOCAL_REQUEST_BASE·=·400;
 92 ····static·final·int·CMD_KILL_SESSION·=·317;
93 ····static·final·int·CMD_LOCAL_REQUEST_CREATE_IKE·=·401;93 ····static·final·int·CMD_LOCAL_REQUEST_CREATE_IKE·=·401;
94 ····static·final·int·CMD_LOCAL_REQUEST_DELETE_IKE·=·402;94 ····static·final·int·CMD_LOCAL_REQUEST_DELETE_IKE·=·402;
95 ····static·final·int·CMD_LOCAL_REQUEST_DPD·=·405;95 ····static·final·int·CMD_LOCAL_REQUEST_DPD·=·405;
96 ····static·final·int·CMD_LOCAL_REQUEST_INFO·=·404;96 ····static·final·int·CMD_LOCAL_REQUEST_INFO·=·404;
97 ····static·final·int·CMD_LOCAL_REQUEST_MOBIKE·=·406;97 ····static·final·int·CMD_LOCAL_REQUEST_MOBIKE·=·406;
98 ····static·final·int·CMD_LOCAL_REQUEST_REKEY_IKE·=·403;98 ····static·final·int·CMD_LOCAL_REQUEST_REKEY_IKE·=·403;
99 ····static·final·int·CMD_OUTBOUND_CHILD_PAYLOADS_READY·=·304;99 ····static·final·int·CMD_OUTBOUND_CHILD_PAYLOADS_READY·=·304;
100 ····static·final·int·CMD_RECEIVE_IKE_PACKET·=·301;100 ····static·final·int·CMD_RECEIVE_IKE_PACKET·=·301;
101 ····static·final·int·CMD_RECEIVE_PACKET_INVALID_IKE_SPI·=·302;101 ····static·final·int·CMD_RECEIVE_PACKET_INVALID_IKE_SPI·=·302;
102 ····static·final·int·CMD_RECEIVE_REQUEST_FOR_CHILD·=·303;102 ····static·final·int·CMD_RECEIVE_REQUEST_FOR_CHILD·=·303;
103 ····public·static·final·int·CMD_RETRANSMIT·=·308;103 ····public·static·final·int·CMD_RETRANSMIT·=·308;
104 ····static·final·int·CMD_SEND_KEEPALIVE·=·316;104 ····static·final·int·CMD_SEND_KEEPALIVE·=·316;
105 ····static·final·int·CMD_SET_NETWORK·=·317;105 ····static·final·int·CMD_SET_NETWORK·=·318;
106 ····private·static·final·SparseArray·CMD_TO_STR;106 ····private·static·final·SparseArray·CMD_TO_STR;
107 ····static·final·int·DEFAULT_FRAGMENT_SIZE·=·1280;107 ····static·final·int·DEFAULT_FRAGMENT_SIZE·=·1280;
108 ····public·static·final·SparseArray·EXCHANGE_SUBTYPE_TO_STRING;108 ····public·static·final·SparseArray·EXCHANGE_SUBTYPE_TO_STRING;
109 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_CREATE_CHILD·=·3;109 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_CREATE_CHILD·=·3;
110 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_DELETE_CHILD·=·5;110 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_DELETE_CHILD·=·5;
111 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_DELETE_IKE·=·4;111 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_DELETE_IKE·=·4;
112 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_GENERIC_INFO·=·8;112 ····public·static·final·int·IKE_EXCHANGE_SUBTYPE_GENERIC_INFO·=·8;
Offset 237, 15 lines modifiedOffset 237, 15 lines modified
237 ········cmd_TO_STR.put(308,·(Object)"Retransmit");237 ········cmd_TO_STR.put(308,·(Object)"Retransmit");
238 ········cmd_TO_STR.put(309,·(Object)"Start·EAP");238 ········cmd_TO_STR.put(309,·(Object)"Start·EAP");
239 ········cmd_TO_STR.put(310,·(Object)"EAP·outbound·msg·ready");239 ········cmd_TO_STR.put(310,·(Object)"EAP·outbound·msg·ready");
240 ········cmd_TO_STR.put(311,·(Object)"EAP·errored");240 ········cmd_TO_STR.put(311,·(Object)"EAP·errored");
241 ········cmd_TO_STR.put(312,·(Object)"EAP·failed");241 ········cmd_TO_STR.put(312,·(Object)"EAP·failed");
242 ········cmd_TO_STR.put(314,·(Object)"Finish·EAP");242 ········cmd_TO_STR.put(314,·(Object)"Finish·EAP");
243 ········cmd_TO_STR.put(315,·(Object)"Alarm·Fired");243 ········cmd_TO_STR.put(315,·(Object)"Alarm·Fired");
244 ········cmd_TO_STR.put(317,·(Object)"Update·underlying·Network");244 ········cmd_TO_STR.put(318,·(Object)"Update·underlying·Network");
245 ········cmd_TO_STR.put(401,·(Object)"Create·IKE");245 ········cmd_TO_STR.put(401,·(Object)"Create·IKE");
246 ········cmd_TO_STR.put(402,·(Object)s);246 ········cmd_TO_STR.put(402,·(Object)s);
247 ········cmd_TO_STR.put(403,·(Object)s2);247 ········cmd_TO_STR.put(403,·(Object)s2);
248 ········cmd_TO_STR.put(404,·(Object)"Info");248 ········cmd_TO_STR.put(404,·(Object)"Info");
249 ········cmd_TO_STR.put(405,·(Object)"DPD");249 ········cmd_TO_STR.put(405,·(Object)"DPD");
250 ········cmd_TO_STR.put(406,·(Object)"MOBIKE·migration·event");250 ········cmd_TO_STR.put(406,·(Object)"MOBIKE·migration·event");
251 ····}251 ····}
Offset 415, 18 lines modifiedOffset 415, 15 lines modified
415 ····private·static·void·addNatDetectionPayloadsToList(final·List·list,·final·InetAddress·inetAddress,·final·InetAddress·inetAddress2,·final·int·n,·final·int·n2,·final·long·n3,·final·long·n4)·{415 ····private·static·void·addNatDetectionPayloadsToList(final·List·list,·final·InetAddress·inetAddress,·final·InetAddress·inetAddress2,·final·int·n,·final·int·n2,·final·long·n3,·final·long·n4)·{
416 ········list.add(new·IkeNotifyPayload(16388,·IkeNotifyPayload.generateNatDetectionData(n3,·n4,·inetAddress,·n)));416 ········list.add(new·IkeNotifyPayload(16388,·IkeNotifyPayload.generateNatDetectionData(n3,·n4,·inetAddress,·n)));
417 ········list.add(new·IkeNotifyPayload(16389,·IkeNotifyPayload.generateNatDetectionData(n3,·n4,·inetAddress2,·n2)));417 ········list.add(new·IkeNotifyPayload(16389,·IkeNotifyPayload.generateNatDetectionData(n3,·n4,·inetAddress2,·n2)));
418 ····}418 ····}
419 ····419 ····
420 ····private·IkeNattKeepalive·buildAndStartNattKeepalive()·{420 ····private·IkeNattKeepalive·buildAndStartNattKeepalive()·{
421 ········if·(this.mIkeSocket·instanceof·IkeUdpEncapSocket)·{421 ········if·(this.mIkeSocket·instanceof·IkeUdpEncapSocket)·{
 422 ············final·IkeNattKeepalive·ikeNattKeepalive·=·new·IkeNattKeepalive(this.mContext,·this.mConnectivityManager,·this.mIkeSessionParams.getNattKeepAliveDelaySeconds(),·(Inet4Address)this.mLocalAddress,·(Inet4Address)this.mRemoteAddress,·((IkeUdpEncapSocket)this.mIkeSocket).getUdpEncapsulationSocket(),·this.mIkeSocket.getIkeSocketConfig().getNetwork(),·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_KEEPALIVE",·this.getIntentIdentifier(),·this.obtainMessage(315,·this.mIkeSessionId,·316)));
422 ············final·Message·obtainMessage·=·this.obtainMessage(315,·this.mIkeSessionId,·316); 
423 ············final·PendingIntent·buildIkeAlarmIntent·=·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_KEEPALIVE",·this.getIntentIdentifier(),·obtainMessage); 
424 ············final·int·nattKeepAliveDelaySeconds·=·this.mIkeSessionParams.getNattKeepAliveDelaySeconds(); 
425 ············final·IkeNattKeepalive·ikeNattKeepalive·=·new·IkeNattKeepalive(this.mContext,·this.mConnectivityManager,·nattKeepAliveDelaySeconds,·this.mLocalAddress,·this.mRemoteAddress,·((IkeUdpEncapSocket)this.mIkeSocket).getUdpEncapsulationSocket(),·this.mIkeSocket.getIkeSocketConfig().getNetwork(),·new·IkeAlarm$IkeAlarmConfig(this.mContext,·"IkeAlarmReceiver.ACTION_KEEPALIVE",·TimeUnit.SECONDS.toMillis(nattKeepAliveDelaySeconds),·buildIkeAlarmIntent,·obtainMessage)); 
426 ············ikeNattKeepalive.start();423 ············ikeNattKeepalive.start();
427 ············return·ikeNattKeepalive;424 ············return·ikeNattKeepalive;
428 ········}425 ········}
429 ········throw·new·IllegalStateException("Cannot·start·NAT-T·keepalive·when·IKE·Session·is·not·using·UDP·Encap·socket");426 ········throw·new·IllegalStateException("Cannot·start·NAT-T·keepalive·when·IKE·Session·is·not·using·UDP·Encap·socket");
430 ····}427 ····}
431 ····428 ····
432 ····static·PendingIntent·buildIkeAlarmIntent(final·Context·context,·final·String·s,·final·String·identifier,·final·Message·message)·{429 ····static·PendingIntent·buildIkeAlarmIntent(final·Context·context,·final·String·s,·final·String·identifier,·final·Message·message)·{
Offset 683, 20 lines modifiedOffset 680, 14 lines modified
683 ········throw·new·IOException(sb3.toString());680 ········throw·new·IOException(sb3.toString());
684 ····}681 ····}
685 ····682 ····
686 ····private·void·scheduleRetry(final·IkeLocalRequestScheduler$LocalRequest·ikeLocalRequestScheduler$LocalRequest)·{683 ····private·void·scheduleRetry(final·IkeLocalRequestScheduler$LocalRequest·ikeLocalRequestScheduler$LocalRequest)·{
687 ········this.sendMessageDelayed(ikeLocalRequestScheduler$LocalRequest.procedureType,·(Object)ikeLocalRequestScheduler$LocalRequest,·IkeSessionStateMachine.RETRY_INTERVAL_MS);684 ········this.sendMessageDelayed(ikeLocalRequestScheduler$LocalRequest.procedureType,·(Object)ikeLocalRequestScheduler$LocalRequest,·IkeSessionStateMachine.RETRY_INTERVAL_MS);
688 ····}685 ····}
689 ····686 ····
690 ····private·void·sendEncryptedIkePackets(final·byte[][]·array)·{ 
691 ········for·(int·length·=·array.length,·i·=·0;·i·<·length;·++i)·{ 
692 ············this.mIkeSocket.sendIkePacket(array[i],·this.mRemoteAddress); 
693 ········} 
694 ····} 
695 ···· 
696 ····private·void·setRemoteAddress()·{687 ····private·void·setRemoteAddress()·{
697 ········final·LinkProperties·linkProperties·=·this.mConnectivityManager.getLinkProperties(this.mNetwork);688 ········final·LinkProperties·linkProperties·=·this.mConnectivityManager.getLinkProperties(this.mNetwork);
698 ········if·(!this.mRemoteAddressesV6.isEmpty()·&&·linkProperties.hasGlobalIpv6Address())·{689 ········if·(!this.mRemoteAddressesV6.isEmpty()·&&·linkProperties.hasGlobalIpv6Address())·{
699 ············this.mRemoteAddress·=·this.mRemoteAddressesV6.get(0);690 ············this.mRemoteAddress·=·this.mRemoteAddressesV6.get(0);
700 ········}691 ········}
701 ········else·{692 ········else·{
702 ············if·(this.mRemoteAddressesV4.isEmpty())·{693 ············if·(this.mRemoteAddressesV4.isEmpty())·{
Offset 761, 17 lines modifiedOffset 752, 15 lines modified
761 ····}752 ····}
762 ····753 ····
763 ····IkeMessage·buildEncryptedNotificationMessage(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord,·final·IkeInformationalPayload[]·a,·final·int·n,·final·boolean·b,·final·int·n2)·{754 ····IkeMessage·buildEncryptedNotificationMessage(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord,·final·IkeInformationalPayload[]·a,·final·int·n,·final·boolean·b,·final·int·n2)·{
764 ········return·new·IkeMessage(new·IkeHeader(saRecord$IkeSaRecord.getInitiatorSpi(),·saRecord$IkeSaRecord.getResponderSpi(),·46,·n,·b,·saRecord$IkeSaRecord.isLocalInit,·n2),·(List)Arrays.asList(a));755 ········return·new·IkeMessage(new·IkeHeader(saRecord$IkeSaRecord.getInitiatorSpi(),·saRecord$IkeSaRecord.getResponderSpi(),·46,·n,·b,·saRecord$IkeSaRecord.isLocalInit,·n2),·(List)Arrays.asList(a));
765 ····}756 ····}
766 ····757 ····
767 ····SaRecord$SaLifetimeAlarmScheduler·buildSaLifetimeAlarmScheduler(final·long·n)·{758 ····SaRecord$SaLifetimeAlarmScheduler·buildSaLifetimeAlarmScheduler(final·long·n)·{
 759 ········return·new·SaRecord$SaLifetimeAlarmScheduler(this.mIkeSessionParams.getHardLifetimeMsInternal(),·this.mIkeSessionParams.getSoftLifetimeMsInternal(),·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_DELETE_IKE",·this.getIntentIdentifier(n),·this.getIntentIkeSmMsg(402,·n)),·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_REKEY_IKE",·this.getIntentIdentifier(n),·this.getIntentIkeSmMsg(403,·n)),·this.mAlarmManager);
768 ········final·Message·intentIkeSmMsg·=·this.getIntentIkeSmMsg(402,·n); 
769 ········final·Message·intentIkeSmMsg2·=·this.getIntentIkeSmMsg(403,·n); 
770 ········return·new·SaRecord$SaLifetimeAlarmScheduler(new·IkeAlarm$IkeAlarmConfig(this.mContext,·"IkeAlarmReceiver.ACTION_DELETE_IKE",·this.mIkeSessionParams.getHardLifetimeMsInternal(),·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_DELETE_IKE",·this.getIntentIdentifier(n),·intentIkeSmMsg),·intentIkeSmMsg),·new·IkeAlarm$IkeAlarmConfig(this.mContext,·"IkeAlarmReceiver.ACTION_REKEY_IKE",·this.mIkeSessionParams.getSoftLifetimeMsInternal(),·buildIkeAlarmIntent(this.mContext,·"IkeAlarmReceiver.ACTION_REKEY_IKE",·this.getIntentIdentifier(n),·intentIkeSmMsg2),·intentIkeSmMsg2)); 
771 ····}760 ····}
772 ····761 ····
773 ····public·void·closeChildSession(final·ChildSessionCallback·childSessionCallback)·{762 ····public·void·closeChildSession(final·ChildSessionCallback·childSessionCallback)·{
774 ········if·(childSessionCallback·==·null)·{763 ········if·(childSessionCallback·==·null)·{
775 ············throw·new·IllegalArgumentException("Child·Session·Callback·must·be·provided");764 ············throw·new·IllegalArgumentException("Child·Session·Callback·must·be·provided");
776 ········}765 ········}
777 ········if·(this.hasChildSessionCallback(childSessionCallback))·{766 ········if·(this.hasChildSessionCallback(childSessionCallback))·{
Offset 785, 14 lines modifiedOffset 774, 18 lines modified
785 ····774 ····
786 ····public·void·closeSession()·{775 ····public·void·closeSession()·{
787 ········final·IkeLocalRequestScheduler$LocalRequestFactory·mLocalRequestFactory·=·this.mLocalRequestFactory;776 ········final·IkeLocalRequestScheduler$LocalRequestFactory·mLocalRequestFactory·=·this.mLocalRequestFactory;
788 ········final·int·n·=·402;777 ········final·int·n·=·402;
789 ········this.sendMessage(n,·(Object)mLocalRequestFactory.getIkeLocalRequest(n));778 ········this.sendMessage(n,·(Object)mLocalRequestFactory.getIkeLocalRequest(n));
790 ····}779 ····}
791 ····780 ····
 781 ····public·void·killSession()·{
 782 ········this.sendMessage(317);
 783 ····}
 784 ····
792 ····protected·void·onQuitting()·{785 ····protected·void·onQuitting()·{
793 ········this.closeAllSaRecords(true);786 ········this.closeAllSaRecords(true);
794 ········Object·o·=·this.mChildCbToSessions;787 ········Object·o·=·this.mChildCbToSessions;
795 ········synchronized·(o)·{788 ········synchronized·(o)·{
796 ············final·Iterator<ChildSessionStateMachine>·iterator·=·this.mChildCbToSessions.values().iterator();789 ············final·Iterator<ChildSessionStateMachine>·iterator·=·this.mChildCbToSessions.values().iterator();
797 ············while·(iterator.hasNext())·{790 ············while·(iterator.hasNext())·{
798 ················((ChildSessionStateMachine)iterator.next()).killSession();791 ················((ChildSessionStateMachine)iterator.next()).killSession();
Offset 963, 15 lines modifiedOffset 956, 15 lines modified
963 ········Label_0050:·{956 ········Label_0050:·{
964 ············if·(b)·{957 ············if·(b)·{
965 ················break·Label_0050;958 ················break·Label_0050;
966 ············}959 ············}
967 ············try·{960 ············try·{
968 ················if·(this.getCurrentState()·!=·null)·{961 ················if·(this.getCurrentState()·!=·null)·{
969 ····················final·HashMap·mChildCbToSessions2·=·this.mChildCbToSessions;962 ····················final·HashMap·mChildCbToSessions2·=·this.mChildCbToSessions;
970 ····················childSessionStateMachine·=·ChildSessionStateMachineFactory.makeChildSessionStateMachine(this.getHandler().getLooper(),·this.mContext,·this.mIkeSessionId,·this.getHandler(),·this.mRandomFactory,·this.mIpSecSpiGenerator,·childSessionParams,·this.mUserCbExecutor,·childSessionCallback,·(ChildSessionStateMachine$IChildSessionSmCallback)new·IkeSessionStateMachine$ChildSessionSmCallback(this));963 ····················childSessionStateMachine·=·ChildSessionStateMachineFactory.makeChildSessionStateMachine(this.getHandler().getLooper(),·this.mContext,·this.mIkeSessionId,·this.mAlarmManager,·this.mRandomFactory,·this.mIpSecSpiGenerator,·childSessionParams,·this.mUserCbExecutor,·childSessionCallback,·(ChildSessionStateMachine$IChildSessionSmCallback)new·IkeSessionStateMachine$ChildSessionSmCallback(this));
971 ····················hashMap·=·mChildCbToSessions2;964 ····················hashMap·=·mChildCbToSessions2;
972 ····················final·ChildSessionStateMachine·childSessionStateMachine2·=·childSessionStateMachine;965 ····················final·ChildSessionStateMachine·childSessionStateMachine2·=·childSessionStateMachine;
973 ····················hashMap.put(childSessionCallback,·childSessionStateMachine2);966 ····················hashMap.put(childSessionCallback,·childSessionStateMachine2);
974 ····················final·HashMap·hashMap2·=·mChildCbToSessions;967 ····················final·HashMap·hashMap2·=·mChildCbToSessions;
975 ····················//·monitorexit(hashMap2)968 ····················//·monitorexit(hashMap2)
976 ····················return;969 ····················return;
977 ················}970 ················}
Offset 1002, 15 lines modifiedOffset 995, 17 lines modified
1002 ····void·removeIkeSaRecord(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord)·{995 ····void·removeIkeSaRecord(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord)·{
1003 ········this.mIkeSocket.unregisterIke(saRecord$IkeSaRecord.getLocalSpi());996 ········this.mIkeSocket.unregisterIke(saRecord$IkeSaRecord.getLocalSpi());
1004 ········this.mLocalSpiToIkeSaRecordMap.remove(saRecord$IkeSaRecord.getLocalSpi());997 ········this.mLocalSpiToIkeSaRecordMap.remove(saRecord$IkeSaRecord.getLocalSpi());
1005 ····}998 ····}
1006 ····999 ····
1007 ····void·sendEncryptedIkeMessage(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord,·final·IkeMessage·ikeMessage)·{1000 ····void·sendEncryptedIkeMessage(final·SaRecord$IkeSaRecord·saRecord$IkeSaRecord,·final·IkeMessage·ikeMessage)·{
1008 ········final·byte[][]·encryptAndEncode·=·ikeMessage.encryptAndEncode(this.mIkeIntegrity,·this.mIkeCipher,·saRecord$IkeSaRecord,·this.mSupportFragment,·1280);1001 ········final·byte[][]·encryptAndEncode·=·ikeMessage.encryptAndEncode(this.mIkeIntegrity,·this.mIkeCipher,·saRecord$IkeSaRecord,·this.mSupportFragment,·1280);
1009 ········this.sendEncryptedIkePackets(encryptAndEncode);1002 ········for·(int·length·=·encryptAndEncode.length,·i·=·0;·i·<·length;·++i)·{
 1003 ············this.mIkeSocket.sendIkePacket(encryptAndEncode[i],·this.mRemoteAddress);
 1004 ········}
1010 ········if·(ikeMessage.ikeHeader.isResponseMsg)·{1005 ········if·(ikeMessage.ikeHeader.isResponseMsg)·{
1011 ············saRecord$IkeSaRecord.updateLastSentRespAllPackets((List)Arrays.asList(encryptAndEncode),·ikeMessage.ikeHeader.messageId);1006 ············saRecord$IkeSaRecord.updateLastSentRespAllPackets((List)Arrays.asList(encryptAndEncode),·ikeMessage.ikeHeader.messageId);
1012 ········}1007 ········}
1013 ····}1008 ····}
1014 ····1009 ····
1015 ····void·sendEncryptedIkeMessage(final·IkeMessage·ikeMessage)·{1010 ····void·sendEncryptedIkeMessage(final·IkeMessage·ikeMessage)·{
1016 ········this.sendEncryptedIkeMessage(this.mCurrentIkeSaRecord,·ikeMessage);1011 ········this.sendEncryptedIkeMessage(this.mCurrentIkeSaRecord,·ikeMessage);
Offset 1020, 13 lines modifiedOffset 1015, 13 lines modified
1020 ········if·(network·==·null)·{1015 ········if·(network·==·null)·{
1021 ············throw·new·IllegalArgumentException("network·must·not·be·null");1016 ············throw·new·IllegalArgumentException("network·must·not·be·null");
1022 ········}1017 ········}
1023 ········if·(!this.mIkeSessionParams.hasIkeOption(2))·{1018 ········if·(!this.mIkeSessionParams.hasIkeOption(2))·{
1024 ············throw·new·IllegalStateException("IKE_OPTION_MOBIKE·is·not·set");1019 ············throw·new·IllegalStateException("IKE_OPTION_MOBIKE·is·not·set");
1025 ········}1020 ········}
1026 ········if·(this.mIkeSessionParams.getConfiguredNetwork()·!=·null)·{1021 ········if·(this.mIkeSessionParams.getConfiguredNetwork()·!=·null)·{
1027 ············this.sendMessage(317,·(Object)network);1022 ············this.sendMessage(318,·(Object)network);
1028 ············return;1023 ············return;
1029 ········}1024 ········}
1030 ········throw·new·IllegalStateException("setNetwork()·requires·this·IkeSession·to·be·configured·to·use·caller-specified·network·instead·of·default·network");1025 ········throw·new·IllegalStateException("setNetwork()·requires·this·IkeSession·to·be·configured·to·use·caller-specified·network·instead·of·default·network");
1031 ····}1026 ····}
1032 }1027 }