diff options
-rw-r--r-- | include/Permission.h | 10 | ||||
-rw-r--r-- | server/NetworkController.cpp | 9 |
2 files changed, 18 insertions, 1 deletions
diff --git a/include/Permission.h b/include/Permission.h index aa5ae811..19881df6 100644 --- a/include/Permission.h +++ b/include/Permission.h @@ -39,4 +39,14 @@ enum Permission { PERMISSION_SYSTEM = 0x3, // Includes PERMISSION_NETWORK. }; +inline const char *permissionToName(Permission permission) { + switch (permission) { + case PERMISSION_NONE: return "NONE"; + case PERMISSION_NETWORK: return "NETWORK"; + case PERMISSION_SYSTEM: return "SYSTEM"; + // No default statement. We want to see errors of the form: + // "enumeration value 'PERMISSION_SYSTEM' not handled in switch [-Werror,-Wswitch]". + } +} + #endif // NETD_INCLUDE_PERMISSION_H diff --git a/server/NetworkController.cpp b/server/NetworkController.cpp index aaf8b292..c891391d 100644 --- a/server/NetworkController.cpp +++ b/server/NetworkController.cpp @@ -536,7 +536,14 @@ void NetworkController::dump(DumpWriter& dw) { dw.println("Networks:"); dw.incIndent(); for (const auto& i : mNetworks) { - dw.println(i.second->toString().c_str()); + Network* network = i.second; + dw.println(network->toString().c_str()); + if (network->getType() == Network::PHYSICAL) { + dw.incIndent(); + Permission permission = reinterpret_cast<PhysicalNetwork*>(network)->getPermission(); + dw.println("Required permission: %s", permissionToName(permission)); + dw.decIndent(); + } android::net::gCtls->resolverCtrl.dump(dw, i.first); dw.blankline(); } |