summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/NetworkManagementService.java
diff options
context:
space:
mode:
authorfredc <fredc@broadcom.com>2012-04-12 00:02:00 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-07-16 21:20:54 -0700
commit0f42037eb7b5118015c2caca635538324ccf0ccf (patch)
tree46a7ba36216a2cb617541ec68f18b413419e148f /services/java/com/android/server/NetworkManagementService.java
parent919a4c6264b733585152ce1dc6f868c1093d368b (diff)
downloadframeworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.zip
frameworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.tar.gz
frameworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.tar.bz2
Non persistent adapter service
Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5 Conflicts: core/java/android/bluetooth/BluetoothInputDevice.java Conflicts: core/java/com/android/internal/app/ShutdownThread.java services/java/com/android/server/SystemServer.java Conflicts: services/java/com/android/server/SystemServer.java services/java/com/android/server/pm/ShutdownThread.java
Diffstat (limited to 'services/java/com/android/server/NetworkManagementService.java')
-rw-r--r--services/java/com/android/server/NetworkManagementService.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java
index 09792f5..ccba0d2 100644
--- a/services/java/com/android/server/NetworkManagementService.java
+++ b/services/java/com/android/server/NetworkManagementService.java
@@ -78,6 +78,7 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import java.util.concurrent.CountDownLatch;
+import android.bluetooth.BluetoothTetheringDataTracker;
/**
* @hide
@@ -779,6 +780,34 @@ public class NetworkManagementService extends INetworkManagementService.Stub
event.checkCode(TetherStatusResult);
return event.getMessage().endsWith("started");
}
+ public void startReverseTethering(String iface)
+ throws IllegalStateException {
+ if (DBG) Slog.d(TAG, "startReverseTethering in");
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService");
+ // cmd is "tether start first_start first_stop second_start second_stop ..."
+ // an odd number of addrs will fail
+ String cmd = "tether start-reverse";
+ cmd += " " + iface;
+ if (DBG) Slog.d(TAG, "startReverseTethering cmd: " + cmd);
+ try {
+ mConnector.doCommand(cmd);
+ } catch (NativeDaemonConnectorException e) {
+ throw new IllegalStateException("Unable to communicate to native daemon");
+ }
+ BluetoothTetheringDataTracker.getInstance().startReverseTether(iface);
+
+ }
+ public void stopReverseTethering() throws IllegalStateException {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService");
+ try {
+ mConnector.doCommand("tether stop-reverse");
+ } catch (NativeDaemonConnectorException e) {
+ throw new IllegalStateException("Unable to communicate to native daemon to stop tether");
+ }
+ BluetoothTetheringDataTracker.getInstance().stopReverseTether();
+ }
@Override
public void tetherInterface(String iface) {