NetdClient.h revision a69d9472ac48d4e09f049fb740e60b7217e03861
1efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran/* 2efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * Copyright (C) 2014 The Android Open Source Project 3efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * 4efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * Licensed under the Apache License, Version 2.0 (the "License"); 5efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * you may not use this file except in compliance with the License. 6efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * You may obtain a copy of the License at 7efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * 8efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * http://www.apache.org/licenses/LICENSE-2.0 9efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * 10efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * Unless required by applicable law or agreed to in writing, software 11efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * distributed under the License is distributed on an "AS IS" BASIS, 12efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * See the License for the specific language governing permissions and 14efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran * limitations under the License. 15efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran */ 16efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 17efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran#ifndef NETD_INCLUDE_NETD_CLIENT_H 18efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran#define NETD_INCLUDE_NETD_CLIENT_H 19efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 20efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran#include <stdbool.h> 21efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran#include <sys/cdefs.h> 22a69d9472ac48d4e09f049fb740e60b7217e03861Sreeram Ramachandran#include <sys/types.h> 23efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 24efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran__BEGIN_DECLS 25efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 263a069e6a76752a0ee73c60f276ae362d1c01467fSreeram Ramachandran// All functions below that return an int return 0 on success or a negative errno value on failure. 2731f4210e6fc5c9b749468a2af0bac94992352010Sreeram Ramachandran 284d4c8b7e294d845103ecb10f968713717a3e6406Sreeram Ramachandranint getNetworkForSocket(unsigned* netId, int socketFd); 2931f4210e6fc5c9b749468a2af0bac94992352010Sreeram Ramachandranint setNetworkForSocket(unsigned netId, int socketFd); 30efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 31efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandranunsigned getNetworkForProcess(void); 3231f4210e6fc5c9b749468a2af0bac94992352010Sreeram Ramachandranint setNetworkForProcess(unsigned netId); 33efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 3431f4210e6fc5c9b749468a2af0bac94992352010Sreeram Ramachandranint setNetworkForResolv(unsigned netId); 35efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 3631f4210e6fc5c9b749468a2af0bac94992352010Sreeram Ramachandranint protectFromVpn(int socketFd); 37d794e580dbe1a8b4192850b0e117654401514af8Sreeram Ramachandran 38a69d9472ac48d4e09f049fb740e60b7217e03861Sreeram Ramachandranint setNetworkForUser(uid_t uid, int socketFd); 39a69d9472ac48d4e09f049fb740e60b7217e03861Sreeram Ramachandran 40efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran__END_DECLS 41efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran 42efbe05d203f2f1cc3c24ddc111be159a1ff1f292Sreeram Ramachandran#endif // NETD_INCLUDE_NETD_CLIENT_H 43