TetherController.h revision 9d10b341a0ba46f108cb96e46691197d778cbc06
19d10b341a0ba46f108cb96e46691197d778cbc06San Mehat/* 29d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * Copyright (C) 2008 The Android Open Source Project 39d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * 49d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 59d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * you may not use this file except in compliance with the License. 69d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * You may obtain a copy of the License at 79d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * 89d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * http://www.apache.org/licenses/LICENSE-2.0 99d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * 109d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * Unless required by applicable law or agreed to in writing, software 119d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 129d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * See the License for the specific language governing permissions and 149d10b341a0ba46f108cb96e46691197d778cbc06San Mehat * limitations under the License. 159d10b341a0ba46f108cb96e46691197d778cbc06San Mehat */ 169d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 179d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#ifndef _TETHER_CONTROLLER_H 189d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#define _TETHER_CONTROLLER_H 199d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 209d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#include <linux/in.h> 219d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 229d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#include <utils/List.h> 239d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 249d10b341a0ba46f108cb96e46691197d778cbc06San Mehattypedef android::List<char *> InterfaceCollection; 259d10b341a0ba46f108cb96e46691197d778cbc06San Mehattypedef android::List<struct in_addr> NetAddressCollection; 269d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 279d10b341a0ba46f108cb96e46691197d778cbc06San Mehatclass TetherController { 289d10b341a0ba46f108cb96e46691197d778cbc06San Mehat InterfaceCollection *mInterfaces; 299d10b341a0ba46f108cb96e46691197d778cbc06San Mehat NetAddressCollection *mDnsForwarders; 309d10b341a0ba46f108cb96e46691197d778cbc06San Mehat pid_t mDaemonPid; 319d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int mDaemonFd; 329d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 339d10b341a0ba46f108cb96e46691197d778cbc06San Mehatpublic: 349d10b341a0ba46f108cb96e46691197d778cbc06San Mehat TetherController(); 359d10b341a0ba46f108cb96e46691197d778cbc06San Mehat virtual ~TetherController(); 369d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 379d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int setIpFwdEnabled(bool enable); 389d10b341a0ba46f108cb96e46691197d778cbc06San Mehat bool getIpFwdEnabled(); 399d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 409d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int startTethering(struct in_addr dhcpStart, struct in_addr dhcpEnd); 419d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int stopTethering(); 429d10b341a0ba46f108cb96e46691197d778cbc06San Mehat bool isTetheringStarted(); 439d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 449d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int setDnsForwarders(char **servers, int numServers); 459d10b341a0ba46f108cb96e46691197d778cbc06San Mehat NetAddressCollection *getDnsForwarders(); 469d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 479d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int tetherInterface(const char *interface); 489d10b341a0ba46f108cb96e46691197d778cbc06San Mehat int untetherInterface(const char *interface); 499d10b341a0ba46f108cb96e46691197d778cbc06San Mehat InterfaceCollection *getTetheredInterfaceList(); 509d10b341a0ba46f108cb96e46691197d778cbc06San Mehat}; 519d10b341a0ba46f108cb96e46691197d778cbc06San Mehat 529d10b341a0ba46f108cb96e46691197d778cbc06San Mehat#endif 53