aboutsummaryrefslogtreecommitdiff
path: root/res_debug.cpp
diff options
context:
space:
mode:
authorKen Chen <cken@google.com>2019-02-20 21:34:14 +0800
committerLuke Huang <huangluke@google.com>2019-04-29 23:16:33 +0800
commitd99022cb6cbf10ce810440bae76905e9d87f7c9f (patch)
treef6b284c4e3d642ee8d3d63743f4db4e6a30f34e7 /res_debug.cpp
parente3419ce05a4abeb92a0a07f13f1c07b0a47b187b (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.cpp51
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;
}