OSDN Git Service

Add tetherApplyDnsInterfaces() binder interface.
authorErik Kline <ek@google.com>
Sun, 17 Jul 2016 19:02:07 +0000 (04:02 +0900)
committerErik Kline <ek@google.com>
Tue, 19 Jul 2016 17:31:53 +0000 (02:31 +0900)
Bug: 9580643
Change-Id: I781a422c969deb153bc8370edda4578612af6dc6

server/NetdNativeService.cpp
server/NetdNativeService.h
server/TetherController.h
server/binder/android/net/INetd.aidl

index 5ee8202..10629ef 100644 (file)
@@ -201,5 +201,12 @@ binder::Status NetdNativeService::getResolverInfo(int32_t netId,
     return binder::Status::ok();
 }
 
+binder::Status NetdNativeService::tetherApplyDnsInterfaces(bool *ret) {
+    NETD_BIG_LOCK_RPC(CONNECTIVITY_INTERNAL);
+
+    *ret = gCtls->tetherCtrl.applyDnsInterfaces();
+    return binder::Status::ok();
+}
+
 }  // namespace net
 }  // namespace android
index b5c8f69..c5d9114 100644 (file)
@@ -47,6 +47,9 @@ class NetdNativeService : public BinderService<NetdNativeService>, public BnNetd
     binder::Status getResolverInfo(int32_t netId, std::vector<std::string>* servers,
             std::vector<std::string>* domains, std::vector<int32_t>* params,
             std::vector<int32_t>* stats) override;
+
+    // Tethering-related commands.
+    binder::Status tetherApplyDnsInterfaces(bool *ret) override;
 };
 
 }  // namespace net
index 6035c25..3769890 100644 (file)
@@ -54,9 +54,9 @@ public:
     int tetherInterface(const char *interface);
     int untetherInterface(const char *interface);
     const std::list<std::string> &getTetheredInterfaceList() const;
+    bool applyDnsInterfaces();
 
 private:
-    bool applyDnsInterfaces();
     bool setIpFwdEnabled();
 };
 
index 097f98a..1b901b8 100644 (file)
@@ -145,4 +145,14 @@ interface INetd {
      */
     void getResolverInfo(int netId, out @utf8InCpp String[] servers,
             out @utf8InCpp String[] domains, out int[] params, out int[] stats);
+
+    /**
+     * Instruct the tethering DNS server to reevaluated serving interfaces.
+     * This is needed to for the DNS server to observe changes in the set
+     * of potential listening IP addresses. (Listening on wildcard addresses
+     * can turn the device into an open resolver; b/7530468)
+     *
+     * TODO: Return something richer than just a boolean.
+     */
+    boolean tetherApplyDnsInterfaces();
 }