diff options
| author | Ken Chen <cken@google.com> | 2019-02-20 21:34:14 +0800 |
|---|---|---|
| committer | Luke Huang <huangluke@google.com> | 2019-04-29 23:16:33 +0800 |
| commit | d99022cb6cbf10ce810440bae76905e9d87f7c9f (patch) | |
| tree | f6b284c4e3d642ee8d3d63743f4db4e6a30f34e7 /res_debug.cpp | |
| parent | e3419ce05a4abeb92a0a07f13f1c07b0a47b187b (diff) | |
Add netd binder and resolver API
- Add a path for ConnectivityService to pass log severity to resolver.
- Remove persist system property. No more keep logging severity setting
after reboot.
Bug: 129108902
Test: full build, flash ROM
Test: atest resolv_integration_test
Change-Id: I66a065dcd034c88ed8e0b5f24f53382d355735bd
Diffstat (limited to 'res_debug.cpp')
| -rw-r--r-- | res_debug.cpp | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/res_debug.cpp b/res_debug.cpp index 9427c0a8..9d01cc55 100644 --- a/res_debug.cpp +++ b/res_debug.cpp @@ -105,6 +105,7 @@ #include <arpa/nameser.h> #include <netinet/in.h> +#include <aidl/android/net/IDnsResolver.h> #include <android-base/logging.h> #include <android-base/stringprintf.h> #include <ctype.h> @@ -468,26 +469,34 @@ const char* p_rcode(int rcode) { return (sym_ntos(p_rcode_syms, rcode, (int*) 0)); } -android::base::LogSeverity logSeverityStrToEnum(const std::string& logSeverityStr) { - android::base::LogSeverity logSeverityEnum; - - if (logSeverityStr == "VERBOSE") { - // *** enable verbose logging only when DBG is set. It prints sensitive data *** - logSeverityEnum = - RESOLV_ALLOW_VERBOSE_LOGGING ? android::base::VERBOSE : android::base::DEBUG; - } else if (logSeverityStr == "DEBUG") { - logSeverityEnum = android::base::DEBUG; - } else if (logSeverityStr == "INFO") { - logSeverityEnum = android::base::INFO; - } else if (logSeverityStr == "WARNING") { - logSeverityEnum = android::base::WARNING; - } else if (logSeverityStr == "ERROR") { - logSeverityEnum = android::base::ERROR; - } else { - // Invalid parameter is treated as WARNING (default setting) - LOG(ERROR) << "Invalid parameter is treated as WARNING by default."; - logSeverityEnum = android::base::WARNING; +int resolv_set_log_severity(uint32_t logSeverity) { + switch (logSeverity) { + case aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_VERBOSE: + logSeverity = android::base::VERBOSE; + // *** enable verbose logging only when DBG is set. It prints sensitive data *** + if (RESOLV_ALLOW_VERBOSE_LOGGING == false) { + logSeverity = android::base::DEBUG; + LOG(ERROR) << "Refusing to set VERBOSE logging in non-debuggable build"; + // TODO: Return EACCES then callers could know if the log + // severity is acceptable + } + break; + case aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_DEBUG: + logSeverity = android::base::DEBUG; + break; + case aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_INFO: + logSeverity = android::base::INFO; + break; + case aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_WARNING: + logSeverity = android::base::WARNING; + break; + case aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_ERROR: + logSeverity = android::base::ERROR; + break; + default: + LOG(ERROR) << __func__ << ": invalid log severity: " << logSeverity; + return -EINVAL; } - LOG(INFO) << __func__ << ": " << logSeverityEnum; - return logSeverityEnum; + android::base::SetMinimumLogSeverity(static_cast<android::base::LogSeverity>(logSeverity)); + return 0; } |
