1d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme/* 2d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * Copyright (C) 2016 The Android Open Source Project 3d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * 4d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * Licensed under the Apache License, Version 2.0 (the "License"); 5d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * you may not use this file except in compliance with the License. 6d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * You may obtain a copy of the License at 7d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * 8d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * http://www.apache.org/licenses/LICENSE-2.0 9d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * 10d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * Unless required by applicable law or agreed to in writing, software 11d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * distributed under the License is distributed on an "AS IS" BASIS, 12d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * See the License for the specific language governing permissions and 14d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * limitations under the License. 15d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme */ 16d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme 17d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Lemepackage com.android.server.net; 18d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme 19d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme/** 20d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * Network Policy Manager local system service interface. 21d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * 22d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * @hide Only for use within the system server. 23d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme */ 24d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Lemepublic abstract class NetworkPolicyManagerInternal { 25d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme 26d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme /** 27d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme * Resets all policies associated with a given user. 28d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme */ 29d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme public abstract void resetUserState(int userId); 30938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi 31938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi /** 32938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi * @return true if the given uid is restricted from doing networking on metered networks. 33938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi */ 34938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi public abstract boolean isUidRestrictedOnMeteredNetworks(int uid); 35938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi 36938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi /** 37938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi * @return true if networking is blocked on the given interface for the given uid according 38938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi * to current networking policies. 39938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi */ 40938ab4fa3942398e942d98aa7b16dd87dfb7ff11Hugo Benichi public abstract boolean isUidNetworkingBlocked(int uid, String ifname); 41d17fda40cdcf875002086fbe98bf34ba7cbdb03cFelipe Leme} 42