Skip to content

Commit

Permalink
Fix: private dns register issue
Browse files Browse the repository at this point in the history
  • Loading branch information
ukanth committed Jun 18, 2022
1 parent fa72497 commit 537e907
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions app/src/main/java/dev/ukanth/ufirewall/util/G.java
Original file line number Diff line number Diff line change
Expand Up @@ -1156,22 +1156,26 @@ public static boolean getPrivateDnsStatus() {
return privateDns;
}

private static ConnectivityManager.NetworkCallback callback = null;

public static void registerPrivateLink() {
if(!enabledPrivateLink) {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() {
@Override
public void onLinkPropertiesChanged(Network network, LinkProperties linkProperties) {
super.onLinkPropertiesChanged(network, linkProperties);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
if(linkProperties.isPrivateDnsActive() != privateDns) {
Log.i(Api.TAG, "Private DNS status changed: " + privateDns);
privateDns = linkProperties.isPrivateDnsActive();
InterfaceTracker.applyRules("Private DNS changed.. reapplying rules");
if(callback == null) {
callback = new ConnectivityManager.NetworkCallback() {
@Override
public void onLinkPropertiesChanged(Network network, LinkProperties linkProperties) {
super.onLinkPropertiesChanged(network, linkProperties);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
if(linkProperties.isPrivateDnsActive() != privateDns) {
Log.i(Api.TAG, "Private DNS status changed: " + privateDns);
privateDns = linkProperties.isPrivateDnsActive();
InterfaceTracker.applyRules("Private DNS changed.. reapplying rules");
}
}
}
}
};
};
}
cm.registerNetworkCallback(new NetworkRequest.Builder().build(), callback);
enabledPrivateLink = true;
} else{
Expand Down

0 comments on commit 537e907

Please sign in to comment.