summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-10-26 20:01:53 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-10-26 20:01:53 +0000
commitcb160d358263b4cd5aca3d54521355a6737828a2 (patch)
tree2d24c746657f5ee9af2c6883090960c0e8b16ba3
parent6748cd1da405363f1f092190a35d04a2e2165b1b (diff)
parenta237dedb06fa6dba167841e494e3fc0e77f21941 (diff)
downloadnetd-oreo-m6-s3-release.tar.gz
Change-Id: Iea4ad51b195c2830b5d7908170590ddc318d571a
-rw-r--r--server/TetherController.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/server/TetherController.cpp b/server/TetherController.cpp
index 1785ec71..43a20486 100644
--- a/server/TetherController.cpp
+++ b/server/TetherController.cpp
@@ -45,6 +45,7 @@ const char BP_TOOLS_MODE[] = "bp-tools";
const char IPV4_FORWARDING_PROC_FILE[] = "/proc/sys/net/ipv4/ip_forward";
const char IPV6_FORWARDING_PROC_FILE[] = "/proc/sys/net/ipv6/conf/all/forwarding";
const char SEPARATOR[] = "|";
+constexpr const char kTcpBeLiberal[] = "/proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal";
bool writeToFile(const char* filename, const char* value) {
int fd = open(filename, O_WRONLY | O_CLOEXEC);
@@ -63,6 +64,11 @@ bool writeToFile(const char* filename, const char* value) {
return true;
}
+// TODO: Consider altering TCP and UDP timeouts as well.
+void configureForTethering(bool enabled) {
+ writeToFile(kTcpBeLiberal, enabled ? "1" : "0");
+}
+
bool configureForIPv6Router(const char *interface) {
return (InterfaceController::setEnableIPv6(interface, 0) == 0)
&& (InterfaceController::setAcceptIPv6Ra(interface, 0) == 0)
@@ -211,6 +217,7 @@ int TetherController::startTethering(int num_addrs, char **dhcp_ranges) {
close(pipefd[0]);
mDaemonPid = pid;
mDaemonFd = pipefd[1];
+ configureForTethering(true);
applyDnsInterfaces();
ALOGD("Tethering services running");
}
@@ -219,6 +226,7 @@ int TetherController::startTethering(int num_addrs, char **dhcp_ranges) {
}
int TetherController::stopTethering() {
+ configureForTethering(false);
if (mDaemonPid == 0) {
ALOGE("Tethering already stopped");