Offset 173, 92 lines modifiedOffset 173, 92 lines modified
  
173 ····return-void173 ····return-void
174 .end·method174 .end·method
  
175 .method·public·constructor·<init>(Ljava/lang/String;Landroid/os/Looper;ILandroid/net/util/SharedLog;Landroid/net/INetd;Lcom/android/networkstack/tethering/BpfCoordinator;Landroid/net/ip/IpServer$Callback;ZZLcom/android/networkstack/tethering/PrivateAddressCoordinator;Landroid/net/ip/IpServer$Dependencies;)V175 .method·public·constructor·<init>(Ljava/lang/String;Landroid/os/Looper;ILandroid/net/util/SharedLog;Landroid/net/INetd;Lcom/android/networkstack/tethering/BpfCoordinator;Landroid/net/ip/IpServer$Callback;ZZLcom/android/networkstack/tethering/PrivateAddressCoordinator;Landroid/net/ip/IpServer$Dependencies;)V
176 ····.locals·1176 ····.locals·1
  
177 ····.line·290177 ····.line·286
178 ····invoke-direct·{p0,·p1,·p2},·Lcom/android/networkstack/tethering/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Looper;)V178 ····invoke-direct·{p0,·p1,·p2},·Lcom/android/networkstack/tethering/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Looper;)V
  
179 ····const/4·p2,·0x0179 ····const/4·p2,·0x0
  
180 ····.line·261180 ····.line·257
181 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mDhcpServerStartIndex:I181 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mDhcpServerStartIndex:I
  
182 ····.line·269182 ····.line·265
183 ····invoke-static·{},·Ljava/util/Collections;->emptyList()Ljava/util/List;183 ····invoke-static·{},·Ljava/util/Collections;->emptyList()Ljava/util/List;
  
184 ····move-result-object·v0184 ····move-result-object·v0
  
185 ····iput-object·v0,·p0,·Landroid/net/ip/IpServer;->mDhcpLeases:Ljava/util/List;185 ····iput-object·v0,·p0,·Landroid/net/ip/IpServer;->mDhcpLeases:Ljava/util/List;
  
186 ····.line·271186 ····.line·267
187 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mLastIPv6UpstreamIfindex:I187 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mLastIPv6UpstreamIfindex:I
  
188 ····.line·291188 ····.line·287
189 ····invoke-virtual·{p4,·p1},·Landroid/net/util/SharedLog;->forSubComponent(Ljava/lang/String;)Landroid/net/util/SharedLog;189 ····invoke-virtual·{p4,·p1},·Landroid/net/util/SharedLog;->forSubComponent(Ljava/lang/String;)Landroid/net/util/SharedLog;
  
190 ····move-result-object·p4190 ····move-result-object·p4
  
191 ····iput-object·p4,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;191 ····iput-object·p4,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
192 ····.line·292192 ····.line·288
193 ····iput-object·p5,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;193 ····iput-object·p5,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
194 ····.line·293194 ····.line·289
195 ····iput-object·p6,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;195 ····iput-object·p6,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;
  
196 ····.line·294196 ····.line·290
197 ····iput-object·p7,·p0,·Landroid/net/ip/IpServer;->mCallback:Landroid/net/ip/IpServer$Callback;197 ····iput-object·p7,·p0,·Landroid/net/ip/IpServer;->mCallback:Landroid/net/ip/IpServer$Callback;
  
198 ····.line·295198 ····.line·291
199 ····new-instance·p6,·Landroid/net/ip/InterfaceController;199 ····new-instance·p6,·Landroid/net/ip/InterfaceController;
  
200 ····invoke-direct·{p6,·p1,·p5,·p4},·Landroid/net/ip/InterfaceController;-><init>(Ljava/lang/String;Landroid/net/INetd;Landroid/net/util/SharedLog;)V200 ····invoke-direct·{p6,·p1,·p5,·p4},·Landroid/net/ip/InterfaceController;-><init>(Ljava/lang/String;Landroid/net/INetd;Landroid/net/util/SharedLog;)V
  
201 ····iput-object·p6,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;201 ····iput-object·p6,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;
  
202 ····.line·296202 ····.line·292
203 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;203 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
  
204 ····.line·297204 ····.line·293
205 ····iput·p3,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I205 ····iput·p3,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I
  
206 ····.line·298206 ····.line·294
207 ····new-instance·p1,·Landroid/net/LinkProperties;207 ····new-instance·p1,·Landroid/net/LinkProperties;
  
208 ····invoke-direct·{p1},·Landroid/net/LinkProperties;-><init>()V208 ····invoke-direct·{p1},·Landroid/net/LinkProperties;-><init>()V
  
209 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;209 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
210 ····.line·299210 ····.line·295
211 ····iput-boolean·p8,·p0,·Landroid/net/ip/IpServer;->mUsingLegacyDhcp:Z211 ····iput-boolean·p8,·p0,·Landroid/net/ip/IpServer;->mUsingLegacyDhcp:Z
  
212 ····.line·300212 ····.line·296
213 ····iput-boolean·p9,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z213 ····iput-boolean·p9,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z
  
214 ····.line·301214 ····.line·297
215 ····iput-object·p10,·p0,·Landroid/net/ip/IpServer;->mPrivateAddressCoordinator:Lcom/android/networkstack/tethering/PrivateAddressCoordinator;215 ····iput-object·p10,·p0,·Landroid/net/ip/IpServer;->mPrivateAddressCoordinator:Lcom/android/networkstack/tethering/PrivateAddressCoordinator;
  
216 ····.line·302216 ····.line·298
217 ····iput-object·p11,·p0,·Landroid/net/ip/IpServer;->mDeps:Landroid/net/ip/IpServer$Dependencies;217 ····iput-object·p11,·p0,·Landroid/net/ip/IpServer;->mDeps:Landroid/net/ip/IpServer$Dependencies;
  
218 ····.line·303218 ····.line·299
219 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->resetLinkProperties()V219 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->resetLinkProperties()V
  
220 ····.line·304220 ····.line·300
221 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mLastError:I221 ····iput·p2,·p0,·Landroid/net/ip/IpServer;->mLastError:I
  
222 ····const/4·p1,·0x1222 ····const/4·p1,·0x1
  
223 ····.line·305223 ····.line·301
224 ····iput·p1,·p0,·Landroid/net/ip/IpServer;->mServingMode:I224 ····iput·p1,·p0,·Landroid/net/ip/IpServer;->mServingMode:I
  
225 ····.line·307225 ····.line·303
226 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mDeps:Landroid/net/ip/IpServer$Dependencies;226 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mDeps:Landroid/net/ip/IpServer$Dependencies;
  
227 ····invoke-virtual·{p0},·Lcom/android/networkstack/tethering/util/StateMachine;->getHandler()Landroid/os/Handler;227 ····invoke-virtual·{p0},·Lcom/android/networkstack/tethering/util/StateMachine;->getHandler()Landroid/os/Handler;
  
228 ····move-result-object·p2228 ····move-result-object·p2
  
229 ····iget-object·p3,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;229 ····iget-object·p3,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
Offset 271, 26 lines modifiedOffset 271, 26 lines modified
  
271 ····invoke-virtual·{p1,·p2,·p3,·p4},·Landroid/net/ip/IpServer$Dependencies;->getIpNeighborMonitor(Landroid/os/Handler;Landroid/net/util/SharedLog;Landroid/net/ip/IpNeighborMonitor$NeighborEventConsumer;)Landroid/net/ip/IpNeighborMonitor;271 ····invoke-virtual·{p1,·p2,·p3,·p4},·Landroid/net/ip/IpServer$Dependencies;->getIpNeighborMonitor(Landroid/os/Handler;Landroid/net/util/SharedLog;Landroid/net/ip/IpNeighborMonitor$NeighborEventConsumer;)Landroid/net/ip/IpNeighborMonitor;
  
272 ····move-result-object·p1272 ····move-result-object·p1
  
273 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mIpNeighborMonitor:Landroid/net/ip/IpNeighborMonitor;273 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mIpNeighborMonitor:Landroid/net/ip/IpNeighborMonitor;
  
274 ····.line·314274 ····.line·310
275 ····iget-boolean·p2,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z275 ····iget-boolean·p2,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z
  
276 ····if-eqz·p2,·:cond_0276 ····if-eqz·p2,·:cond_0
  
277 ····invoke-virtual·{p1},·Landroid/net/util/FdEventsReader;->start()Z277 ····invoke-virtual·{p1},·Landroid/net/util/FdEventsReader;->start()Z
  
278 ····move-result·p1278 ····move-result·p1
  
279 ····if-nez·p1,·:cond_0279 ····if-nez·p1,·:cond_0
  
280 ····.line·315280 ····.line·311
281 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;281 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
282 ····new-instance·p2,·Ljava/lang/StringBuilder;282 ····new-instance·p2,·Ljava/lang/StringBuilder;
  
283 ····invoke-direct·{p2},·Ljava/lang/StringBuilder;-><init>()V283 ····invoke-direct·{p2},·Ljava/lang/StringBuilder;-><init>()V
  
284 ····const-string·p3,·"Failed·to·create·IpNeighborMonitor·on·"284 ····const-string·p3,·"Failed·to·create·IpNeighborMonitor·on·"
Offset 303, 78 lines modifiedOffset 303, 78 lines modified
  
303 ····invoke-virtual·{p2},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;303 ····invoke-virtual·{p2},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  
304 ····move-result-object·p2304 ····move-result-object·p2
  
305 ····invoke-virtual·{p1,·p2},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V305 ····invoke-virtual·{p1,·p2},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
306 ····.line·318306 ····.line·314
307 ····:cond_0307 ····:cond_0
308 ····new-instance·p1,·Landroid/net/ip/IpServer$InitialState;308 ····new-instance·p1,·Landroid/net/ip/IpServer$InitialState;
  
309 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$InitialState;-><init>(Landroid/net/ip/IpServer;)V309 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$InitialState;-><init>(Landroid/net/ip/IpServer;)V
  
310 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;310 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;
  
311 ····.line·319311 ····.line·315
312 ····new-instance·p1,·Landroid/net/ip/IpServer$LocalHotspotState;312 ····new-instance·p1,·Landroid/net/ip/IpServer$LocalHotspotState;
  
313 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$LocalHotspotState;-><init>(Landroid/net/ip/IpServer;)V313 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$LocalHotspotState;-><init>(Landroid/net/ip/IpServer;)V
  
314 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mLocalHotspotState:Lcom/android/networkstack/tethering/util/State;314 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mLocalHotspotState:Lcom/android/networkstack/tethering/util/State;
  
315 ····.line·320315 ····.line·316
316 ····new-instance·p1,·Landroid/net/ip/IpServer$TetheredState;316 ····new-instance·p1,·Landroid/net/ip/IpServer$TetheredState;
  
317 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$TetheredState;-><init>(Landroid/net/ip/IpServer;)V317 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$TetheredState;-><init>(Landroid/net/ip/IpServer;)V
  
318 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;318 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;
  
319 ····.line·321319 ····.line·317
320 ····new-instance·p1,·Landroid/net/ip/IpServer$UnavailableState;320 ····new-instance·p1,·Landroid/net/ip/IpServer$UnavailableState;
  
321 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$UnavailableState;-><init>(Landroid/net/ip/IpServer;)V321 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$UnavailableState;-><init>(Landroid/net/ip/IpServer;)V
  
322 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mUnavailableState:Lcom/android/networkstack/tethering/util/State;322 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mUnavailableState:Lcom/android/networkstack/tethering/util/State;
  
323 ····.line·322323 ····.line·318
324 ····new-instance·p1,·Landroid/net/ip/IpServer$WaitingForRestartState;324 ····new-instance·p1,·Landroid/net/ip/IpServer$WaitingForRestartState;
  
325 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$WaitingForRestartState;-><init>(Landroid/net/ip/IpServer;)V325 ····invoke-direct·{p1,·p0},·Landroid/net/ip/IpServer$WaitingForRestartState;-><init>(Landroid/net/ip/IpServer;)V
  
326 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mWaitingForRestartState:Lcom/android/networkstack/tethering/util/State;326 ····iput-object·p1,·p0,·Landroid/net/ip/IpServer;->mWaitingForRestartState:Lcom/android/networkstack/tethering/util/State;
  
327 ····.line·323327 ····.line·319
328 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;328 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;
  
329 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V329 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V
  
330 ····.line·324330 ····.line·320
331 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mLocalHotspotState:Lcom/android/networkstack/tethering/util/State;331 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mLocalHotspotState:Lcom/android/networkstack/tethering/util/State;
  
332 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V332 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V
  
333 ····.line·325333 ····.line·321
334 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;334 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;
  
335 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V335 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V
  
336 ····.line·326336 ····.line·322
337 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mWaitingForRestartState:Lcom/android/networkstack/tethering/util/State;337 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mWaitingForRestartState:Lcom/android/networkstack/tethering/util/State;
  
338 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;338 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mTetheredState:Lcom/android/networkstack/tethering/util/State;
  
339 ····invoke-virtual·{p0,·p1,·p2},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;Lcom/android/networkstack/tethering/util/State;)V339 ····invoke-virtual·{p0,·p1,·p2},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;Lcom/android/networkstack/tethering/util/State;)V
  
340 ····.line·327340 ····.line·323
341 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mUnavailableState:Lcom/android/networkstack/tethering/util/State;341 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mUnavailableState:Lcom/android/networkstack/tethering/util/State;
  
342 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V342 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->addState(Lcom/android/networkstack/tethering/util/State;)V
  
343 ····.line·329343 ····.line·325
344 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;344 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mInitialState:Lcom/android/networkstack/tethering/util/State;
  
345 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->setInitialState(Lcom/android/networkstack/tethering/util/State;)V345 ····invoke-virtual·{p0,·p1},·Lcom/android/networkstack/tethering/util/StateMachine;->setInitialState(Lcom/android/networkstack/tethering/util/State;)V
  
346 ····return-void346 ····return-void
347 .end·method347 .end·method
  
Offset 687, 22 lines modifiedOffset 687, 22 lines modified
  
687 ····return·p0687 ····return·p0
688 .end·method688 .end·method
  
689 .method·private·addIpv6ForwardingRule(Lcom/android/networkstack/tethering/BpfCoordinator$Ipv6ForwardingRule;)V689 .method·private·addIpv6ForwardingRule(Lcom/android/networkstack/tethering/BpfCoordinator$Ipv6ForwardingRule;)V
690 ····.locals·1690 ····.locals·1
  
691 ····.line·851691 ····.line·843
692 ····iget-boolean·v0,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z692 ····iget-boolean·v0,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z
  
693 ····if-nez·v0,·:cond_0693 ····if-nez·v0,·:cond_0
  
694 ····return-void694 ····return-void
  
695 ····.line·853695 ····.line·845
696 ····:cond_0696 ····:cond_0
697 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;697 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;
  
698 ····invoke-virtual·{v0,·p0,·p1},·Lcom/android/networkstack/tethering/BpfCoordinator;->tetherOffloadRuleAdd(Landroid/net/ip/IpServer;Lcom/android/networkstack/tethering/BpfCoordinator$Ipv6ForwardingRule;)V698 ····invoke-virtual·{v0,·p0,·p1},·Lcom/android/networkstack/tethering/BpfCoordinator;->tetherOffloadRuleAdd(Landroid/net/ip/IpServer;Lcom/android/networkstack/tethering/BpfCoordinator$Ipv6ForwardingRule;)V
  
699 ····return-void699 ····return-void
700 .end·method700 .end·method
Offset 714, 40 lines modifiedOffset 714, 40 lines modified
714 ············"(",714 ············"(",
715 ············"Ljava/util/List<",715 ············"Ljava/util/List<",
716 ············"Landroid/net/RouteInfo;",716 ············"Landroid/net/RouteInfo;",
717 ············">;)V"717 ············">;)V"
718 ········}718 ········}
719 ····.end·annotation719 ····.end·annotation
  
720 ····.line·765720 ····.line·757
721 ····:try_start_0721 ····:try_start_0
722 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;722 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
723 ····const/16·v1,·0x63723 ····const/16·v1,·0x63
  
724 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;724 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
  
725 ····invoke-interface·{v0,·v1,·v2},·Landroid/net/INetd;->networkAddInterface(ILjava/lang/String;)V725 ····invoke-interface·{v0,·v1,·v2},·Landroid/net/INetd;->networkAddInterface(ILjava/lang/String;)V
726 ····:try_end_0726 ····:try_end_0
727 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_0·..·:try_end_0}·:catch_1727 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_0·..·:try_end_0}·:catch_1
728 ····.catch·Landroid/os/RemoteException;·{:try_start_0·..·:try_end_0}·:catch_1728 ····.catch·Landroid/os/RemoteException;·{:try_start_0·..·:try_end_0}·:catch_1
  
729 ····.line·769729 ····.line·761
730 ····:try_start_1730 ····:try_start_1
731 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;731 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
732 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;732 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
  
733 ····invoke-static·{v0,·v1,·p1},·Landroid/net/shared/RouteUtils;->addRoutesToLocalNetwork(Landroid/net/INetd;Ljava/lang/String;Ljava/util/List;)V733 ····invoke-static·{v0,·v1,·p1},·Landroid/net/shared/RouteUtils;->addRoutesToLocalNetwork(Landroid/net/INetd;Ljava/lang/String;Ljava/util/List;)V
734 ····:try_end_1734 ····:try_end_1
735 ····.catch·Ljava/lang/IllegalStateException;·{:try_start_1·..·:try_end_1}·:catch_0735 ····.catch·Ljava/lang/IllegalStateException;·{:try_start_1·..·:try_end_1}·:catch_0
736 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_1·..·:try_end_1}·:catch_1736 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_1·..·:try_end_1}·:catch_1
737 ····.catch·Landroid/os/RemoteException;·{:try_start_1·..·:try_end_1}·:catch_1737 ····.catch·Landroid/os/RemoteException;·{:try_start_1·..·:try_end_1}·:catch_1
  
738 ····.line·779738 ····.line·771
739 ····invoke-interface·{p1},·Ljava/util/List;->iterator()Ljava/util/Iterator;739 ····invoke-interface·{p1},·Ljava/util/List;->iterator()Ljava/util/Iterator;
  
740 ····move-result-object·p1740 ····move-result-object·p1
  
741 ····:goto_0741 ····:goto_0
742 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z742 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z
  
Offset 769, 15 lines modifiedOffset 769, 15 lines modified
  
769 ····:cond_0769 ····:cond_0
770 ····return-void770 ····return-void
  
771 ····:catch_0771 ····:catch_0
772 ····move-exception·p1772 ····move-exception·p1
  
773 ····.line·771773 ····.line·763
774 ····:try_start_2774 ····:try_start_2
775 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;775 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
776 ····new-instance·v1,·Ljava/lang/StringBuilder;776 ····new-instance·v1,·Ljava/lang/StringBuilder;
  
777 ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V777 ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V
  
Offset 797, 15 lines modifiedOffset 797, 15 lines modified
797 ····.catch·Landroid/os/RemoteException;·{:try_start_2·..·:try_end_2}·:catch_1797 ····.catch·Landroid/os/RemoteException;·{:try_start_2·..·:try_end_2}·:catch_1
  
798 ····return-void798 ····return-void
  
799 ····:catch_1799 ····:catch_1
800 ····move-exception·p1800 ····move-exception·p1
  
801 ····.line·775801 ····.line·767
802 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;802 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
803 ····new-instance·v1,·Ljava/lang/StringBuilder;803 ····new-instance·v1,·Ljava/lang/StringBuilder;
  
804 ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V804 ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V
  
805 ····const-string·v2,·"Failed·to·add·"805 ····const-string·v2,·"Failed·to·add·"
Offset 828, 104 lines modifiedOffset 828, 102 lines modified
  
828 ····return-void828 ····return-void
829 .end·method829 .end·method
  
830 .method·private·clearIpv6ForwardingRules()V830 .method·private·clearIpv6ForwardingRules()V
831 ····.locals·1831 ····.locals·1
  
832 ····.line·865832 ····.line·857
833 ····iget-boolean·v0,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z833 ····iget-boolean·v0,·p0,·Landroid/net/ip/IpServer;->mUsingBpfOffload:Z
  
834 ····if-nez·v0,·:cond_0834 ····if-nez·v0,·:cond_0
  
835 ····return-void835 ····return-void
  
836 ····.line·867836 ····.line·859
837 ····:cond_0837 ····:cond_0
838 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;838 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mBpfCoordinator:Lcom/android/networkstack/tethering/BpfCoordinator;
  
839 ····invoke-virtual·{v0,·p0},·Lcom/android/networkstack/tethering/BpfCoordinator;->tetherOffloadRuleClear(Landroid/net/ip/IpServer;)V839 ····invoke-virtual·{v0,·p0},·Lcom/android/networkstack/tethering/BpfCoordinator;->tetherOffloadRuleClear(Landroid/net/ip/IpServer;)V
  
840 ····return-void840 ····return-void
841 .end·method841 .end·method
  
842 .method·private·configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z842 .method·private·configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z
843 ····.locals·0843 ····.locals·0
  
844 ····if-eqz·p1,·:cond_0844 ····if-eqz·p1,·:cond_0
  
845 ····.line·586845 ····.line·578
846 ····invoke-direct·{p0,·p2,·p3},·Landroid/net/ip/IpServer;->startDhcp(Landroid/net/LinkAddress;Landroid/net/LinkAddress;)Z846 ····invoke-direct·{p0,·p2,·p3},·Landroid/net/ip/IpServer;->startDhcp(Landroid/net/LinkAddress;Landroid/net/LinkAddress;)Z
  
847 ····move-result·p0847 ····move-result·p0
  
848 ····return·p0848 ····return·p0
  
849 ····.line·588849 ····.line·580
850 ····:cond_0850 ····:cond_0
851 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->stopDhcp()V851 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->stopDhcp()V
  
852 ····const/4·p0,·0x1852 ····const/4·p0,·0x1
  
853 ····return·p0853 ····return·p0
854 .end·method854 .end·method
  
855 .method·private·configureIPv4(Z)Z855 .method·private·configureIPv4(Z)Z
856 ····.locals·5856 ····.locals·5
  
857 ····if-eqz·p1,·:cond_0857 ····if-eqz·p1,·:cond_0
  
858 ····const/4·v0,·0x1858 ····.line·600
 859 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->requestIpv4Address()Landroid/net/LinkAddress;
859 ····.line·608 
860 ····invoke-direct·{p0,·v0},·Landroid/net/ip/IpServer;->requestIpv4Address(Z)Landroid/net/LinkAddress; 
  
861 ····move-result-object·v0860 ····move-result-object·v0
  
862 ····iput-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;861 ····iput-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
863 ····.line·611862 ····.line·603
864 ····:cond_0863 ····:cond_0
865 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;864 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
866 ····const/4·v1,·0x0865 ····const/4·v1,·0x0
  
867 ····if-nez·v0,·:cond_1866 ····if-nez·v0,·:cond_1
  
868 ····.line·612867 ····.line·604
869 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;868 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
870 ····const-string·p1,·"No·available·ipv4·address"869 ····const-string·p1,·"No·available·ipv4·address"
  
871 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V870 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
872 ····return·v1871 ····return·v1
  
873 ····.line·616872 ····.line·608
874 ····:cond_1873 ····:cond_1
875 ····iget·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I874 ····iget·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I
  
876 ····const/4·v3,·0x2875 ····const/4·v3,·0x2
  
877 ····const/4·v4,·0x0876 ····const/4·v4,·0x0
  
878 ····if-ne·v2,·v3,·:cond_2877 ····if-ne·v2,·v3,·:cond_2
  
879 ····.line·620878 ····.line·612
880 ····invoke-direct·{p0,·p1,·v0,·v4},·Landroid/net/ip/IpServer;->configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z879 ····invoke-direct·{p0,·p1,·v0,·v4},·Landroid/net/ip/IpServer;->configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z
  
881 ····move-result·p0880 ····move-result·p0
  
882 ····return·p0881 ····return·p0
  
883 ····.line·623882 ····.line·615
884 ····:cond_2883 ····:cond_2
885 ····invoke-static·{v0},·Landroid/net/util/PrefixUtils;->asIpPrefix(Landroid/net/LinkAddress;)Landroid/net/IpPrefix;884 ····invoke-static·{v0},·Landroid/net/util/PrefixUtils;->asIpPrefix(Landroid/net/LinkAddress;)Landroid/net/IpPrefix;
  
886 ····.line·626885 ····.line·618
887 ····iget·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I886 ····iget·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceType:I
  
888 ····if-eqz·v0,·:cond_4887 ····if-eqz·v0,·:cond_4
  
889 ····const/4·v2,·0x3888 ····const/4·v2,·0x3
  
890 ····if-eq·v0,·v2,·:cond_4889 ····if-eq·v0,·v2,·:cond_4
Offset 936, 91 lines modifiedOffset 934, 91 lines modified
  
936 ····const/4·v2,·0x6934 ····const/4·v2,·0x6
  
937 ····if-ne·v0,·v2,·:cond_3935 ····if-ne·v0,·v2,·:cond_3
  
938 ····goto·:goto_0936 ····goto·:goto_0
  
939 ····.line·635937 ····.line·627
940 ····:cond_3938 ····:cond_3
941 ····invoke-static·{p1},·Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;939 ····invoke-static·{p1},·Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
  
942 ····move-result-object·v4940 ····move-result-object·v4
  
943 ····.line·637941 ····.line·629
944 ····:cond_4942 ····:cond_4
945 ····:goto_0943 ····:goto_0
946 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;944 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;
  
947 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;945 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
948 ····invoke-virtual·{v0,·v2,·v4},·Landroid/net/ip/InterfaceController;->setInterfaceConfiguration(Landroid/net/LinkAddress;Ljava/lang/Boolean;)Z946 ····invoke-virtual·{v0,·v2,·v4},·Landroid/net/ip/InterfaceController;->setInterfaceConfiguration(Landroid/net/LinkAddress;Ljava/lang/Boolean;)Z
  
949 ····move-result·v0947 ····move-result·v0
  
950 ····if-nez·v0,·:cond_6948 ····if-nez·v0,·:cond_6
  
951 ····.line·638949 ····.line·630
952 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;950 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
953 ····const-string·v2,·"Error·configuring·interface"951 ····const-string·v2,·"Error·configuring·interface"
  
954 ····invoke-virtual·{v0,·v2},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V952 ····invoke-virtual·{v0,·v2},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
955 ····if-nez·p1,·:cond_5953 ····if-nez·p1,·:cond_5
  
956 ····.line·639954 ····.line·631
957 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->stopDhcp()V955 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->stopDhcp()V
  
958 ····:cond_5956 ····:cond_5
959 ····return·v1957 ····return·v1
  
960 ····:cond_6958 ····:cond_6
961 ····if-eqz·p1,·:cond_7959 ····if-eqz·p1,·:cond_7
  
962 ····.line·644960 ····.line·636
963 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;961 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
964 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;962 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
965 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z963 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
  
966 ····.line·645964 ····.line·637
967 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;965 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
968 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;966 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
969 ····invoke-direct·{p0,·v1},·Landroid/net/ip/IpServer;->getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;967 ····invoke-direct·{p0,·v1},·Landroid/net/ip/IpServer;->getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;
  
970 ····move-result-object·v1968 ····move-result-object·v1
  
971 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z969 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
  
972 ····goto·:goto_1970 ····goto·:goto_1
  
973 ····.line·647971 ····.line·639
974 ····:cond_7972 ····:cond_7
975 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;973 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
976 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;974 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
977 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z975 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z
  
978 ····.line·648976 ····.line·640
979 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;977 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
980 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;978 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
981 ····invoke-direct·{p0,·v1},·Landroid/net/ip/IpServer;->getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;979 ····invoke-direct·{p0,·v1},·Landroid/net/ip/IpServer;->getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;
  
982 ····move-result-object·v1980 ····move-result-object·v1
  
983 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->removeRoute(Landroid/net/RouteInfo;)Z981 ····invoke-virtual·{v0,·v1},·Landroid/net/LinkProperties;->removeRoute(Landroid/net/RouteInfo;)Z
  
984 ····.line·650982 ····.line·642
985 ····:goto_1983 ····:goto_1
986 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;984 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
987 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mStaticIpv4ClientAddr:Landroid/net/LinkAddress;985 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mStaticIpv4ClientAddr:Landroid/net/LinkAddress;
  
988 ····invoke-direct·{p0,·p1,·v0,·v1},·Landroid/net/ip/IpServer;->configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z986 ····invoke-direct·{p0,·p1,·v0,·v1},·Landroid/net/ip/IpServer;->configureDhcp(ZLandroid/net/LinkAddress;Landroid/net/LinkAddress;)Z
  
Offset 1039, 45 lines modifiedOffset 1037, 45 lines modified
1039 ············">;",1037 ············">;",
1040 ············"Ljava/util/HashSet<",1038 ············"Ljava/util/HashSet<",
1041 ············"Ljava/net/Inet6Address;",1039 ············"Ljava/net/Inet6Address;",
1042 ············">;)V"1040 ············">;)V"
1043 ········}1041 ········}
1044 ····.end·annotation1042 ····.end·annotation
  
1045 ····.line·8051043 ····.line·797
1046 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;1044 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
1047 ····if-nez·v0,·:cond_11045 ····if-nez·v0,·:cond_1
  
1048 ····if-eqz·p2,·:cond_01046 ····if-eqz·p2,·:cond_0
  
1049 ····.line·8061047 ····.line·798
1050 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clear()V1048 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clear()V
  
1051 ····.line·8071049 ····.line·799
1052 ····:cond_01050 ····:cond_0
1053 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;1051 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
1054 ····const-string·p1,·"No·netd·service·instance·available;·not·setting·local·IPv6·addresses"1052 ····const-string·p1,·"No·netd·service·instance·available;·not·setting·local·IPv6·addresses"
  
1055 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V1053 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
1056 ····return-void1054 ····return-void
  
1057 ····.line·8121055 ····.line·804
1058 ····:cond_11056 ····:cond_1
1059 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z1057 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z
  
1060 ····move-result·v01058 ····move-result·v0
  
1061 ····const/16·v1,·0x401059 ····const/16·v1,·0x40
  
1062 ····if-nez·v0,·:cond_31060 ····if-nez·v0,·:cond_3
  
1063 ····.line·8131061 ····.line·805
1064 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;1062 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
  
1065 ····move-result-object·p11063 ····move-result-object·p1
  
1066 ····:goto_01064 ····:goto_0
1067 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z1065 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z
  
Offset 1087, 24 lines modifiedOffset 1085, 24 lines modified
  
1087 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;1085 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;
  
1088 ····move-result-object·v01086 ····move-result-object·v0
  
1089 ····check-cast·v0,·Ljava/net/Inet6Address;1087 ····check-cast·v0,·Ljava/net/Inet6Address;
  
1090 ····.line·8141088 ····.line·806
1091 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;1089 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;
  
1092 ····invoke-virtual·{v2,·v0,·v1},·Landroid/net/ip/InterfaceController;->removeAddress(Ljava/net/InetAddress;I)Z1090 ····invoke-virtual·{v2,·v0,·v1},·Landroid/net/ip/InterfaceController;->removeAddress(Ljava/net/InetAddress;I)Z
  
1093 ····move-result·v21091 ····move-result·v2
  
1094 ····if-nez·v2,·:cond_21092 ····if-nez·v2,·:cond_2
  
1095 ····.line·8151093 ····.line·807
1096 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;1094 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
1097 ····new-instance·v3,·Ljava/lang/StringBuilder;1095 ····new-instance·v3,·Ljava/lang/StringBuilder;
  
1098 ····invoke-direct·{v3},·Ljava/lang/StringBuilder;-><init>()V1096 ····invoke-direct·{v3},·Ljava/lang/StringBuilder;-><init>()V
  
1099 ····const-string·v4,·"Failed·to·remove·local·dns·IP·"1097 ····const-string·v4,·"Failed·to·remove·local·dns·IP·"
Offset 1115, 54 lines modifiedOffset 1113, 54 lines modified
  
1115 ····invoke-virtual·{v3},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;1113 ····invoke-virtual·{v3},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  
1116 ····move-result-object·v31114 ····move-result-object·v3
  
1117 ····invoke-virtual·{v2,·v3},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V1115 ····invoke-virtual·{v2,·v3},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
1118 ····.line·8181116 ····.line·810
1119 ····:cond_21117 ····:cond_2
1120 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;1118 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
1121 ····new-instance·v3,·Landroid/net/LinkAddress;1119 ····new-instance·v3,·Landroid/net/LinkAddress;
  
1122 ····invoke-direct·{v3,·v0,·v1},·Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V1120 ····invoke-direct·{v3,·v0,·v1},·Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V
  
1123 ····invoke-virtual·{v2,·v3},·Landroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z1121 ····invoke-virtual·{v2,·v3},·Landroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z
  
1124 ····goto·:goto_01122 ····goto·:goto_0
  
1125 ····:cond_31123 ····:cond_3
1126 ····if-eqz·p2,·:cond_61124 ····if-eqz·p2,·:cond_6
  
1127 ····.line·8231125 ····.line·815
1128 ····invoke-virtual·{p2},·Ljava/util/HashSet;->isEmpty()Z1126 ····invoke-virtual·{p2},·Ljava/util/HashSet;->isEmpty()Z
  
1129 ····move-result·p11127 ····move-result·p1
  
1130 ····if-nez·p1,·:cond_61128 ····if-nez·p1,·:cond_6
  
1131 ····.line·8241129 ····.line·816
1132 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clone()Ljava/lang/Object;1130 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clone()Ljava/lang/Object;
  
1133 ····move-result-object·p11131 ····move-result-object·p1
  
1134 ····check-cast·p1,·Ljava/util/HashSet;1132 ····check-cast·p1,·Ljava/util/HashSet;
  
1135 ····.line·8251133 ····.line·817
1136 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLastRaParams:Landroid/net/ip/RouterAdvertisementDaemon$RaParams;1134 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mLastRaParams:Landroid/net/ip/RouterAdvertisementDaemon$RaParams;
  
1137 ····if-eqz·v0,·:cond_41135 ····if-eqz·v0,·:cond_4
  
1138 ····.line·8261136 ····.line·818
1139 ····iget-object·v0,·v0,·Landroid/net/ip/RouterAdvertisementDaemon$RaParams;->dnses:Ljava/util/HashSet;1137 ····iget-object·v0,·v0,·Landroid/net/ip/RouterAdvertisementDaemon$RaParams;->dnses:Ljava/util/HashSet;
  
1140 ····invoke-virtual·{p1,·v0},·Ljava/util/HashSet;->removeAll(Ljava/util/Collection;)Z1138 ····invoke-virtual·{p1,·v0},·Ljava/util/HashSet;->removeAll(Ljava/util/Collection;)Z
  
1141 ····.line·8291139 ····.line·821
1142 ····:cond_41140 ····:cond_4
1143 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;1141 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
  
1144 ····move-result-object·p11142 ····move-result-object·p1
  
1145 ····:goto_11143 ····:goto_1
1146 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z1144 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z
Offset 1173, 24 lines modifiedOffset 1171, 24 lines modified
  
1173 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;1171 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;
  
1174 ····move-result-object·v01172 ····move-result-object·v0
  
1175 ····check-cast·v0,·Ljava/net/Inet6Address;1173 ····check-cast·v0,·Ljava/net/Inet6Address;
  
1176 ····.line·8301174 ····.line·822
1177 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;1175 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mInterfaceCtrl:Landroid/net/ip/InterfaceController;
  
1178 ····invoke-virtual·{v2,·v0,·v1},·Landroid/net/ip/InterfaceController;->addAddress(Ljava/net/InetAddress;I)Z1176 ····invoke-virtual·{v2,·v0,·v1},·Landroid/net/ip/InterfaceController;->addAddress(Ljava/net/InetAddress;I)Z
  
1179 ····move-result·v21177 ····move-result·v2
  
1180 ····if-nez·v2,·:cond_51178 ····if-nez·v2,·:cond_5
  
1181 ····.line·8311179 ····.line·823
1182 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;1180 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
1183 ····new-instance·v3,·Ljava/lang/StringBuilder;1181 ····new-instance·v3,·Ljava/lang/StringBuilder;
  
1184 ····invoke-direct·{v3},·Ljava/lang/StringBuilder;-><init>()V1182 ····invoke-direct·{v3},·Ljava/lang/StringBuilder;-><init>()V
  
1185 ····const-string·v4,·"Failed·to·add·local·dns·IP·"1183 ····const-string·v4,·"Failed·to·add·local·dns·IP·"
Offset 1201, 52 lines modifiedOffset 1199, 52 lines modified
  
1201 ····invoke-virtual·{v3},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;1199 ····invoke-virtual·{v3},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  
1202 ····move-result-object·v31200 ····move-result-object·v3
  
1203 ····invoke-virtual·{v2,·v3},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V1201 ····invoke-virtual·{v2,·v3},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
1204 ····.line·8321202 ····.line·824
1205 ····invoke-virtual·{p2,·v0},·Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z1203 ····invoke-virtual·{p2,·v0},·Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z
  
1206 ····.line·8351204 ····.line·827
1207 ····:cond_51205 ····:cond_5
1208 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;1206 ····iget-object·v2,·p0,·Landroid/net/ip/IpServer;->mLinkProperties:Landroid/net/LinkProperties;
  
1209 ····new-instance·v3,·Landroid/net/LinkAddress;1207 ····new-instance·v3,·Landroid/net/LinkAddress;
  
1210 ····invoke-direct·{v3,·v0,·v1},·Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V1208 ····invoke-direct·{v3,·v0,·v1},·Landroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V
  
1211 ····invoke-virtual·{v2,·v3},·Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z1209 ····invoke-virtual·{v2,·v3},·Landroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
  
1212 ····goto·:goto_11210 ····goto·:goto_1
  
1213 ····.line·8401211 ····.line·832
1214 ····:cond_61212 ····:cond_6
1215 ····:try_start_01213 ····:try_start_0
1216 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;1214 ····iget-object·p1,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
1217 ····invoke-interface·{p1},·Landroid/net/INetd;->tetherApplyDnsInterfaces()Z1215 ····invoke-interface·{p1},·Landroid/net/INetd;->tetherApplyDnsInterfaces()Z
1218 ····:try_end_01216 ····:try_end_0
1219 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_0·..·:try_end_0}·:catch_01217 ····.catch·Landroid/os/ServiceSpecificException;·{:try_start_0·..·:try_end_0}·:catch_0
1220 ····.catch·Landroid/os/RemoteException;·{:try_start_0·..·:try_end_0}·:catch_01218 ····.catch·Landroid/os/RemoteException;·{:try_start_0·..·:try_end_0}·:catch_0
  
1221 ····goto·:goto_21219 ····goto·:goto_2
  
1222 ····.line·8421220 ····.line·834
1223 ····:catch_01221 ····:catch_0
1224 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;1222 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
1225 ····const-string·p1,·"Failed·to·update·local·DNS·caching·server"1223 ····const-string·p1,·"Failed·to·update·local·DNS·caching·server"
  
1226 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V1224 ····invoke-virtual·{p0,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;)V
  
1227 ····if-eqz·p2,·:cond_71225 ····if-eqz·p2,·:cond_7
  
1228 ····.line·8431226 ····.line·835
1229 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clear()V1227 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clear()V
  
1230 ····:cond_71228 ····:cond_7
1231 ····:goto_21229 ····:goto_2
1232 ····return-void1230 ····return-void
1233 .end·method1231 .end·method
  
Offset 1260, 66 lines modifiedOffset 1258, 66 lines modified
1260 ············">;",1258 ············">;",
1261 ············"Ljava/util/HashSet<",1259 ············"Ljava/util/HashSet<",
1262 ············"Landroid/net/IpPrefix;",1260 ············"Landroid/net/IpPrefix;",
1263 ············">;)V"1261 ············">;)V"
1264 ········}1262 ········}
1265 ····.end·annotation1263 ····.end·annotation
  
1266 ····.line·7851264 ····.line·777
1267 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z1265 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z
  
1268 ····move-result·v01266 ····move-result·v0
  
1269 ····if-nez·v0,·:cond_01267 ····if-nez·v0,·:cond_0
  
1270 ····.line·7861268 ····.line·778
1271 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;1269 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
  
1272 ····invoke-static·{v0,·p1},·Landroid/net/ip/IpServer;->getLocalRoutesFor(Ljava/lang/String;Ljava/util/HashSet;)Ljava/util/ArrayList;1270 ····invoke-static·{v0,·p1},·Landroid/net/ip/IpServer;->getLocalRoutesFor(Ljava/lang/String;Ljava/util/HashSet;)Ljava/util/ArrayList;
  
1273 ····move-result-object·p11271 ····move-result-object·p1
  
1274 ····invoke-direct·{p0,·p1},·Landroid/net/ip/IpServer;->removeRoutesFromLocalNetwork(Ljava/util/List;)V1272 ····invoke-direct·{p0,·p1},·Landroid/net/ip/IpServer;->removeRoutesFromLocalNetwork(Ljava/util/List;)V
  
1275 ····:cond_01273 ····:cond_0
1276 ····if-eqz·p2,·:cond_21274 ····if-eqz·p2,·:cond_2
  
1277 ····.line·7901275 ····.line·782
1278 ····invoke-virtual·{p2},·Ljava/util/HashSet;->isEmpty()Z1276 ····invoke-virtual·{p2},·Ljava/util/HashSet;->isEmpty()Z
  
1279 ····move-result·p11277 ····move-result·p1
  
1280 ····if-nez·p1,·:cond_21278 ····if-nez·p1,·:cond_2
  
1281 ····.line·7911279 ····.line·783
1282 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clone()Ljava/lang/Object;1280 ····invoke-virtual·{p2},·Ljava/util/HashSet;->clone()Ljava/lang/Object;
  
1283 ····move-result-object·p11281 ····move-result-object·p1
  
1284 ····check-cast·p1,·Ljava/util/HashSet;1282 ····check-cast·p1,·Ljava/util/HashSet;
  
1285 ····.line·7921283 ····.line·784
1286 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mLastRaParams:Landroid/net/ip/RouterAdvertisementDaemon$RaParams;1284 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mLastRaParams:Landroid/net/ip/RouterAdvertisementDaemon$RaParams;
  
1287 ····if-eqz·p2,·:cond_11285 ····if-eqz·p2,·:cond_1
  
1288 ····.line·7931286 ····.line·785
1289 ····iget-object·p2,·p2,·Landroid/net/ip/RouterAdvertisementDaemon$RaParams;->prefixes:Ljava/util/HashSet;1287 ····iget-object·p2,·p2,·Landroid/net/ip/RouterAdvertisementDaemon$RaParams;->prefixes:Ljava/util/HashSet;
  
1290 ····invoke-virtual·{p1,·p2},·Ljava/util/HashSet;->removeAll(Ljava/util/Collection;)Z1288 ····invoke-virtual·{p1,·p2},·Ljava/util/HashSet;->removeAll(Ljava/util/Collection;)Z
  
1291 ····.line·7961289 ····.line·788
1292 ····:cond_11290 ····:cond_1
1293 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z1291 ····invoke-virtual·{p1},·Ljava/util/HashSet;->isEmpty()Z
  
1294 ····move-result·p21292 ····move-result·p2
  
1295 ····if-nez·p2,·:cond_21293 ····if-nez·p2,·:cond_2
  
1296 ····.line·7971294 ····.line·789
1297 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;1295 ····iget-object·p2,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
  
1298 ····invoke-static·{p2,·p1},·Landroid/net/ip/IpServer;->getLocalRoutesFor(Ljava/lang/String;Ljava/util/HashSet;)Ljava/util/ArrayList;1296 ····invoke-static·{p2,·p1},·Landroid/net/ip/IpServer;->getLocalRoutesFor(Ljava/lang/String;Ljava/util/HashSet;)Ljava/util/ArrayList;
  
1299 ····move-result-object·p11297 ····move-result-object·p1
  
1300 ····invoke-direct·{p0,·p1},·Landroid/net/ip/IpServer;->addRoutesToLocalNetwork(Ljava/util/List;)V1298 ····invoke-direct·{p0,·p1},·Landroid/net/ip/IpServer;->addRoutesToLocalNetwork(Ljava/util/List;)V
Offset 1327, 18 lines modifiedOffset 1325, 18 lines modified
1327 ····:cond_21325 ····:cond_2
1328 ····return-void1326 ····return-void
1329 .end·method1327 .end·method
  
1330 .method·private·getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;1328 .method·private·getDirectConnectedRoute(Landroid/net/LinkAddress;)Landroid/net/RouteInfo;
1331 ····.locals·31329 ····.locals·3
  
1332 ····.line·5201330 ····.line·512
1333 ····invoke-static·{p1},·Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;1331 ····invoke-static·{p1},·Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
  
1334 ····.line·5211332 ····.line·513
1335 ····new-instance·v0,·Landroid/net/RouteInfo;1333 ····new-instance·v0,·Landroid/net/RouteInfo;
  
1336 ····invoke-static·{p1},·Landroid/net/util/PrefixUtils;->asIpPrefix(Landroid/net/LinkAddress;)Landroid/net/IpPrefix;1334 ····invoke-static·{p1},·Landroid/net/util/PrefixUtils;->asIpPrefix(Landroid/net/LinkAddress;)Landroid/net/IpPrefix;
  
1337 ····move-result-object·p11335 ····move-result-object·p1
  
1338 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;1336 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mIfaceName:Ljava/lang/String;
Offset 1351, 73 lines modifiedOffset 1349, 73 lines modified
  
1351 ····return-object·v01349 ····return-object·v0
1352 .end·method1350 .end·method
  
1353 .method·private·getHopLimit(Ljava/lang/String;I)B1351 .method·private·getHopLimit(Ljava/lang/String;I)B
1354 ····.locals·41352 ····.locals·4
  
1355 ····.line·9861353 ····.line·978
1356 ····:try_start_01354 ····:try_start_0
1357 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;1355 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mNetd:Landroid/net/INetd;
  
1358 ····const/4·v1,·0x61356 ····const/4·v1,·0x6
  
1359 ····const/4·v2,·0x11357 ····const/4·v2,·0x1
  
1360 ····const-string·v3,·"hop_limit"1358 ····const-string·v3,·"hop_limit"
  
1361 ····.line·9871359 ····.line·979
1362 ····invoke-interface·{v0,·v1,·v2,·p1,·v3},·Landroid/net/INetd;->getProcSysNet(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;1360 ····invoke-interface·{v0,·v1,·v2,·p1,·v3},·Landroid/net/INetd;->getProcSysNet(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  
1363 ····move-result-object·p11361 ····move-result-object·p1
  
1364 ····.line·9861362 ····.line·978
1365 ····invoke-static·{p1},·Ljava/lang/Integer;->parseUnsignedInt(Ljava/lang/String;)I1363 ····invoke-static·{p1},·Ljava/lang/Integer;->parseUnsignedInt(Ljava/lang/String;)I
  
1366 ····move-result·p11364 ····move-result·p1
  
1367 ····add-int/2addr·p1,·p21365 ····add-int/2addr·p1,·p2
  
1368 ····const/16·p2,·0xff1366 ····const/16·p2,·0xff
  
1369 ····.line·9901367 ····.line·982
1370 ····invoke-static·{p1,·p2},·Ljava/lang/Integer;->min(II)I1368 ····invoke-static·{p1,·p2},·Ljava/lang/Integer;->min(II)I
  
1371 ····move-result·p01369 ····move-result·p0
1372 ····:try_end_01370 ····:try_end_0
1373 ····.catch·Ljava/lang/Exception;·{:try_start_0·..·:try_end_0}·:catch_01371 ····.catch·Ljava/lang/Exception;·{:try_start_0·..·:try_end_0}·:catch_0
  
1374 ····int-to-byte·p0,·p01372 ····int-to-byte·p0,·p0
  
1375 ····return·p01373 ····return·p0
  
1376 ····:catch_01374 ····:catch_0
1377 ····move-exception·p11375 ····move-exception·p1
  
1378 ····.line·9921376 ····.line·984
1379 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;1377 ····iget-object·p0,·p0,·Landroid/net/ip/IpServer;->mLog:Landroid/net/util/SharedLog;
  
1380 ····const-string·p2,·"Failed·to·find·upstream·interface·hop·limit"1378 ····const-string·p2,·"Failed·to·find·upstream·interface·hop·limit"
  
1381 ····invoke-virtual·{p0,·p2,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V1379 ····invoke-virtual·{p0,·p2,·p1},·Landroid/net/util/SharedLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
  
1382 ····const/16·p0,·0x411380 ····const/16·p0,·0x41
  
1383 ····return·p01381 ····return·p0
1384 .end·method1382 .end·method
  
1385 .method·private·static·getLocalDnsIpFor(Landroid/net/IpPrefix;)Ljava/net/Inet6Address;1383 .method·private·static·getLocalDnsIpFor(Landroid/net/IpPrefix;)Ljava/net/Inet6Address;
1386 ····.locals·61384 ····.locals·6
  
1387 ····.line·13761385 ····.line·1368
1388 ····invoke-virtual·{p0},·Landroid/net/IpPrefix;->getRawAddress()[B1386 ····invoke-virtual·{p0},·Landroid/net/IpPrefix;->getRawAddress()[B
  
1389 ····move-result-object·v01387 ····move-result-object·v0
  
1390 ····.line·13771388 ····.line·1369
1391 ····array-length·v1,·v01389 ····array-length·v1,·v0
  
1392 ····const/4·v2,·0x11390 ····const/4·v2,·0x1
  
1393 ····sub-int/2addr·v1,·v21391 ····sub-int/2addr·v1,·v2
  
1394 ····const/4·v3,·0x21392 ····const/4·v3,·0x2
Offset 1444, 25 lines modifiedOffset 1442, 25 lines modified
  
1444 ····move-result·v21442 ····move-result·v2
  
1445 ····aput-byte·v2,·v0,·v11443 ····aput-byte·v2,·v0,·v1
  
1446 ····const/4·v1,·0x01444 ····const/4·v1,·0x0
  
1447 ····.line·13791445 ····.line·1371
1448 ····:try_start_01446 ····:try_start_0
1449 ····invoke-static·{v1,·v0,·v4},·Ljava/net/Inet6Address;->getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;1447 ····invoke-static·{v1,·v0,·v4},·Ljava/net/Inet6Address;->getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;
  
1450 ····move-result-object·p01448 ····move-result-object·p0
1451 ····:try_end_01449 ····:try_end_0
1452 ····.catch·Ljava/net/UnknownHostException;·{:try_start_0·..·:try_end_0}·:catch_01450 ····.catch·Ljava/net/UnknownHostException;·{:try_start_0·..·:try_end_0}·:catch_0
  
1453 ····return-object·p01451 ····return-object·p0
  
1454 ····.line·13811452 ····.line·1373
1455 ····:catch_01453 ····:catch_0
1456 ····new-instance·v0,·Ljava/lang/StringBuilder;1454 ····new-instance·v0,·Ljava/lang/StringBuilder;
  
1457 ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V1455 ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V
  
1458 ····const-string·v2,·"Failed·to·construct·Inet6Address·from:·"1456 ····const-string·v2,·"Failed·to·construct·Inet6Address·from:·"
  
Offset 1492, 20 lines modifiedOffset 1490, 20 lines modified
1492 ············">;)",1490 ············">;)",
1493 ············"Ljava/util/ArrayList<",1491 ············"Ljava/util/ArrayList<",
1494 ············"Landroid/net/RouteInfo;",1492 ············"Landroid/net/RouteInfo;",
1495 ············">;"1493 ············">;"
1496 ········}1494 ········}
1497 ····.end·annotation1495 ····.end·annotation
  
1498 ····.line·13671496 ····.line·1359
1499 ····new-instance·v0,·Ljava/util/ArrayList;1497 ····new-instance·v0,·Ljava/util/ArrayList;
  
1500 ····invoke-direct·{v0},·Ljava/util/ArrayList;-><init>()V1498 ····invoke-direct·{v0},·Ljava/util/ArrayList;-><init>()V
  
1501 ····.line·13681499 ····.line·1360
1502 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;1500 ····invoke-virtual·{p1},·Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
  
1503 ····move-result-object·p11501 ····move-result-object·p1
  
1504 ····:goto_01502 ····:goto_0
1505 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z1503 ····invoke-interface·{p1},·Ljava/util/Iterator;->hasNext()Z
  
Offset 1515, 15 lines modifiedOffset 1513, 15 lines modified
  
1515 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;1513 ····invoke-interface·{p1},·Ljava/util/Iterator;->next()Ljava/lang/Object;
  
1516 ····move-result-object·v11514 ····move-result-object·v1
  
1517 ····check-cast·v1,·Landroid/net/IpPrefix;1515 ····check-cast·v1,·Landroid/net/IpPrefix;
  
1518 ····.line·13691516 ····.line·1361
1519 ····new-instance·v2,·Landroid/net/RouteInfo;1517 ····new-instance·v2,·Landroid/net/RouteInfo;
  
1520 ····const/4·v3,·0x01518 ····const/4·v3,·0x0
  
1521 ····const/4·v4,·0x11519 ····const/4·v4,·0x1
  
1522 ····invoke-direct·{v2,·v1,·v3,·p0,·v4},·Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;I)V1520 ····invoke-direct·{v2,·v1,·v3,·p0,·v4},·Landroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;I)V
Offset 1535, 26 lines modifiedOffset 1533, 26 lines modified
1535 ····:cond_01533 ····:cond_0
1536 ····return-object·v01534 ····return-object·v0
1537 .end·method1535 .end·method
  
1538 .method·private·static·varargs·getRandomSanitizedByte(B[B)B1536 .method·private·static·varargs·getRandomSanitizedByte(B[B)B
1539 ····.locals·41537 ····.locals·4
  
1540 ····.line·13871538 ····.line·1379
1541 ····new-instance·v0,·Ljava/util/Random;1539 ····new-instance·v0,·Ljava/util/Random;
  
1542 ····invoke-direct·{v0},·Ljava/util/Random;-><init>()V1540 ····invoke-direct·{v0},·Ljava/util/Random;-><init>()V
  
1543 ····invoke-virtual·{v0},·Ljava/util/Random;->nextInt()I1541 ····invoke-virtual·{v0},·Ljava/util/Random;->nextInt()I
  
1544 ····move-result·v01542 ····move-result·v0
  
1545 ····int-to-byte·v0,·v01543 ····int-to-byte·v0,·v0
  
1546 ····.line·13881544 ····.line·1380
1547 ····array-length·v1,·p11545 ····array-length·v1,·p1
  
1548 ····const/4·v2,·0x01546 ····const/4·v2,·0x0
  
1549 ····:goto_01547 ····:goto_0
1550 ····if-ge·v2,·v1,·:cond_11548 ····if-ge·v2,·v1,·:cond_1
  
Offset 1627, 115 lines modifiedOffset 1625, 113 lines modified
  
1627 ····return-object·p01625 ····return-object·p0
1628 .end·method1626 .end·method
  
1629 .method·private·handleNeighborEvent(Landroid/net/ip/IpNeighborMonitor$NeighborEvent;)V1627 .method·private·handleNeighborEvent(Landroid/net/ip/IpNeighborMonitor$NeighborEvent;)V
1630 ····.locals·31628 ····.locals·3
  
1631 ····.line·9161629 ····.line·908
1632 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceParams:Landroid/net/util/InterfaceParams;1630 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mInterfaceParams:Landroid/net/util/InterfaceParams;
  
1633 ····if-eqz·v0,·:cond_01631 ····if-eqz·v0,·:cond_0
  
1634 ····iget·v1,·v0,·Landroid/net/util/InterfaceParams;->index:I1632 ····iget·v1,·v0,·Landroid/net/util/InterfaceParams;->index:I
  
1635 ····iget·v2,·p1,·Landroid/net/ip/IpNeighborMonitor$NeighborEvent;->ifindex:I1633 ····iget·v2,·p1,·Landroid/net/ip/IpNeighborMonitor$NeighborEvent;->ifindex:I
  
1636 ····if-ne·v1,·v2,·:cond_01634 ····if-ne·v1,·v2,·:cond_0
  
1637 ····iget-boolean·v0,·v0,·Landroid/net/util/InterfaceParams;->hasMacAddress:Z1635 ····iget-boolean·v0,·v0,·Landroid/net/util/InterfaceParams;->hasMacAddress:Z
  
1638 ····if-eqz·v0,·:cond_01636 ····if-eqz·v0,·:cond_0
  
1639 ····.line·9191637 ····.line·911
1640 ····iget·v0,·p0,·Landroid/net/ip/IpServer;->mLastIPv6UpstreamIfindex:I1638 ····iget·v0,·p0,·Landroid/net/ip/IpServer;->mLastIPv6UpstreamIfindex:I
  
1641 ····invoke-direct·{p0,·v0,·v0,·p1},·Landroid/net/ip/IpServer;->updateIpv6ForwardingRules(IILandroid/net/ip/IpNeighborMonitor$NeighborEvent;)V1639 ····invoke-direct·{p0,·v0,·v0,·p1},·Landroid/net/ip/IpServer;->updateIpv6ForwardingRules(IILandroid/net/ip/IpNeighborMonitor$NeighborEvent;)V
  
1642 ····:cond_01640 ····:cond_0
1643 ····return-void1641 ····return-void
1644 .end·method1642 .end·method
  
1645 .method·private·handleNewPrefixRequest(Landroid/net/IpPrefix;)V1643 .method·private·handleNewPrefixRequest(Landroid/net/IpPrefix;)V
1646 ····.locals·31644 ····.locals·3
  
1647 ····.line·9241645 ····.line·916
1648 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;1646 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
1649 ····invoke-virtual·{v0},·Landroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;1647 ····invoke-virtual·{v0},·Landroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
  
1650 ····move-result-object·v01648 ····move-result-object·v0
  
1651 ····invoke-virtual·{p1,·v0},·Landroid/net/IpPrefix;->contains(Ljava/net/InetAddress;)Z1649 ····invoke-virtual·{p1,·v0},·Landroid/net/IpPrefix;->contains(Ljava/net/InetAddress;)Z
  
1652 ····move-result·v01650 ····move-result·v0
  
1653 ····if-eqz·v0,·:cond_41651 ····if-eqz·v0,·:cond_4
  
1654 ····.line·9251652 ····.line·917
1655 ····invoke-virtual·{p1},·Landroid/net/IpPrefix;->getPrefixLength()I1653 ····invoke-virtual·{p1},·Landroid/net/IpPrefix;->getPrefixLength()I
  
1656 ····move-result·v01654 ····move-result·v0
  
1657 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;1655 ····iget-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
1658 ····invoke-virtual·{v1},·Landroid/net/LinkAddress;->getPrefixLength()I1656 ····invoke-virtual·{v1},·Landroid/net/LinkAddress;->getPrefixLength()I
  
1659 ····move-result·v11657 ····move-result·v1
  
1660 ····if-eq·v0,·v1,·:cond_01658 ····if-eq·v0,·v1,·:cond_0
  
1661 ····goto/16·:goto_21659 ····goto/16·:goto_2
  
1662 ····.line·9301660 ····.line·922
1663 ····:cond_01661 ····:cond_0
1664 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;1662 ····iget-object·v0,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
1665 ····const/4·v1,·0x01663 ····.line·923
 1664 ····invoke-direct·{p0},·Landroid/net/ip/IpServer;->requestIpv4Address()Landroid/net/LinkAddress;
1666 ····.line·931 
1667 ····invoke-direct·{p0,·v1},·Landroid/net/ip/IpServer;->requestIpv4Address(Z)Landroid/net/LinkAddress; 
  
1668 ····move-result-object·v11665 ····move-result-object·v1
  
1669 ····iput-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;1666 ····iput-object·v1,·p0,·Landroid/net/ip/IpServer;->mIpv4Address:Landroid/net/LinkAddress;
  
1670 ····if-nez·v1,·:cond_11667 ····if-nez·v1,·:cond_1
  
Max diff block lines reached; 34508/66647 bytes (51.78%) of diff not shown.