Loading services/core/java/com/android/server/connectivity/PacManager.java +19 −15 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.connectivity; import android.annotation.WorkerThread; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; Loading Loading @@ -73,7 +74,7 @@ public class PacManager { public static final String KEY_PROXY = "keyProxy"; private String mCurrentPac; @GuardedBy("mProxyLock") private Uri mPacUrl = Uri.EMPTY; private volatile Uri mPacUrl = Uri.EMPTY; private AlarmManager mAlarmManager; @GuardedBy("mProxyLock") Loading @@ -86,30 +87,35 @@ public class PacManager { private int mCurrentDelay; private int mLastPort; private boolean mHasSentBroadcast; private boolean mHasDownloaded; private volatile boolean mHasSentBroadcast; private volatile boolean mHasDownloaded; private Handler mConnectivityHandler; private int mProxyMessage; /** * Used for locking when setting mProxyService and all references to mPacUrl or mCurrentPac. * Used for locking when setting mProxyService and all references to mCurrentPac. */ private final Object mProxyLock = new Object(); /** * Runnable to download PAC script. * The behavior relies on the assamption it always run on mNetThread to guarantee that the * latest data fetched from mPacUrl is stored in mProxyService. */ private Runnable mPacDownloader = new Runnable() { @Override @WorkerThread public void run() { String file; synchronized (mProxyLock) { if (Uri.EMPTY.equals(mPacUrl)) return; final Uri pacUrl = mPacUrl; if (Uri.EMPTY.equals(pacUrl)) return; try { file = get(mPacUrl); file = get(pacUrl); } catch (IOException ioe) { file = null; Log.w(TAG, "Failed to load PAC file: " + ioe); } } if (file != null) { synchronized (mProxyLock) { if (!file.equals(mCurrentPac)) { Loading Loading @@ -171,9 +177,7 @@ public class PacManager { // Allow to send broadcast, nothing to do. return false; } synchronized (mProxyLock) { mPacUrl = proxy.getPacFileUrl(); } mCurrentDelay = DELAY_1; mHasSentBroadcast = false; mHasDownloaded = false; Loading Loading
services/core/java/com/android/server/connectivity/PacManager.java +19 −15 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.connectivity; import android.annotation.WorkerThread; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; Loading Loading @@ -73,7 +74,7 @@ public class PacManager { public static final String KEY_PROXY = "keyProxy"; private String mCurrentPac; @GuardedBy("mProxyLock") private Uri mPacUrl = Uri.EMPTY; private volatile Uri mPacUrl = Uri.EMPTY; private AlarmManager mAlarmManager; @GuardedBy("mProxyLock") Loading @@ -86,30 +87,35 @@ public class PacManager { private int mCurrentDelay; private int mLastPort; private boolean mHasSentBroadcast; private boolean mHasDownloaded; private volatile boolean mHasSentBroadcast; private volatile boolean mHasDownloaded; private Handler mConnectivityHandler; private int mProxyMessage; /** * Used for locking when setting mProxyService and all references to mPacUrl or mCurrentPac. * Used for locking when setting mProxyService and all references to mCurrentPac. */ private final Object mProxyLock = new Object(); /** * Runnable to download PAC script. * The behavior relies on the assamption it always run on mNetThread to guarantee that the * latest data fetched from mPacUrl is stored in mProxyService. */ private Runnable mPacDownloader = new Runnable() { @Override @WorkerThread public void run() { String file; synchronized (mProxyLock) { if (Uri.EMPTY.equals(mPacUrl)) return; final Uri pacUrl = mPacUrl; if (Uri.EMPTY.equals(pacUrl)) return; try { file = get(mPacUrl); file = get(pacUrl); } catch (IOException ioe) { file = null; Log.w(TAG, "Failed to load PAC file: " + ioe); } } if (file != null) { synchronized (mProxyLock) { if (!file.equals(mCurrentPac)) { Loading Loading @@ -171,9 +177,7 @@ public class PacManager { // Allow to send broadcast, nothing to do. return false; } synchronized (mProxyLock) { mPacUrl = proxy.getPacFileUrl(); } mCurrentDelay = DELAY_1; mHasSentBroadcast = false; mHasDownloaded = false; Loading