refine test TestIpfwdEnableDisableStatusForwarding and some minor changes on test
1. fix flaky test for TestIpfwdEnableDisableStatusForwarding
2. fix time unit error in binder_test, set retry default
interval as 50ms
3. refine naming in binder_test
Bug: 128533612
Test: built, flashed, booted
system/netd/tests/runtests.sh pass
Change-Id: Ia03d0c30b49cdd233b627cce8bd2f3f05548798e
diff --git a/server/CommandListener.cpp b/server/CommandListener.cpp
index 6a79704..d5f93f2 100644
--- a/server/CommandListener.cpp
+++ b/server/CommandListener.cpp
@@ -364,7 +364,8 @@
char *tmp = nullptr;
asprintf(&tmp, "Forwarding %s",
- ((gCtls->tetherCtrl.forwardingRequestCount() > 0) ? "enabled" : "disabled"));
+ ((gCtls->tetherCtrl.getIpfwdRequesterList().size() > 0) ? "enabled"
+ : "disabled"));
cli->sendMsg(ResponseCode::IpFwdStatusResult, tmp, false);
free(tmp);
return 0;
diff --git a/server/NetdNativeService.cpp b/server/NetdNativeService.cpp
index 7728e0e..1b537eb 100644
--- a/server/NetdNativeService.cpp
+++ b/server/NetdNativeService.cpp
@@ -886,7 +886,15 @@
binder::Status NetdNativeService::ipfwdEnabled(bool* status) {
NETD_LOCKING_RPC(gCtls->tetherCtrl.lock, PERM_NETWORK_STACK, PERM_MAINLINE_NETWORK_STACK);
- *status = (gCtls->tetherCtrl.forwardingRequestCount() > 0) ? true : false;
+ *status = (gCtls->tetherCtrl.getIpfwdRequesterList().size() > 0) ? true : false;
+ return binder::Status::ok();
+}
+
+binder::Status NetdNativeService::ipfwdGetRequesterList(std::vector<std::string>* requesterList) {
+ NETD_LOCKING_RPC(gCtls->tetherCtrl.lock, PERM_NETWORK_STACK, PERM_MAINLINE_NETWORK_STACK);
+ for (const auto& requester : gCtls->tetherCtrl.getIpfwdRequesterList()) {
+ requesterList->push_back(requester);
+ }
return binder::Status::ok();
}
diff --git a/server/NetdNativeService.h b/server/NetdNativeService.h
index 09bf712..1bed73d 100644
--- a/server/NetdNativeService.h
+++ b/server/NetdNativeService.h
@@ -235,6 +235,7 @@
// Ipfw-related commands
binder::Status ipfwdEnabled(bool* status) override;
+ binder::Status ipfwdGetRequesterList(std::vector<std::string>* requesterList) override;
binder::Status ipfwdEnableForwarding(const std::string& requester) override;
binder::Status ipfwdDisableForwarding(const std::string& requester) override;
binder::Status ipfwdAddInterfaceForward(const std::string& fromIface,
diff --git a/server/TetherController.cpp b/server/TetherController.cpp
index bf1d177..6ce617d 100644
--- a/server/TetherController.cpp
+++ b/server/TetherController.cpp
@@ -202,8 +202,8 @@
return setIpFwdEnabled();
}
-size_t TetherController::forwardingRequestCount() {
- return mForwardingRequests.size();
+const std::set<std::string>& TetherController::getIpfwdRequesterList() const {
+ return mForwardingRequests;
}
int TetherController::startTethering(int num_addrs, char **dhcp_ranges) {
diff --git a/server/TetherController.h b/server/TetherController.h
index 49c2339..0a04874 100644
--- a/server/TetherController.h
+++ b/server/TetherController.h
@@ -71,7 +71,7 @@
bool enableForwarding(const char* requester);
bool disableForwarding(const char* requester);
- size_t forwardingRequestCount();
+ const std::set<std::string>& getIpfwdRequesterList() const;
int startTethering(int num_addrs, char **dhcp_ranges);
int startTethering(const std::vector<std::string>& dhcpRanges);
diff --git a/server/binder/android/net/INetd.aidl b/server/binder/android/net/INetd.aidl
index 9e8dcb4..4dfa722 100644
--- a/server/binder/android/net/INetd.aidl
+++ b/server/binder/android/net/INetd.aidl
@@ -653,6 +653,13 @@
boolean ipfwdEnabled();
/**
+ * Get requester list of IP forwarding
+ *
+ * @return An array of strings containing requester list of IP forwarding
+ */
+ @utf8InCpp String[] ipfwdGetRequesterList();
+
+ /**
* Enable IP forwarding for specific requester
*
* @param requester requester name to enable IP forwarding. It is a unique name which will be