Switch RebootType to an enum class.
RebootType's shutdown enumerator collides with the shutdown socket
function, which causes problems when <sys/socket.h> gets included
transitively. Switch RebootType into an enum class, to namespace its
enumerators.
Test: treehugger
Change-Id: Ib5e8667df363acb28771430fd43000d381dc8620
diff --git a/cryptfs.cpp b/cryptfs.cpp
index f2f0f18..78295f8 100644
--- a/cryptfs.cpp
+++ b/cryptfs.cpp
@@ -193,19 +193,19 @@
extern struct fstab *fstab;
-enum RebootType {reboot, recovery, shutdown};
-static void cryptfs_reboot(enum RebootType rt)
+enum class RebootType {reboot, recovery, shutdown};
+static void cryptfs_reboot(RebootType rt)
{
- switch(rt) {
- case reboot:
+ switch (rt) {
+ case RebootType::reboot:
property_set(ANDROID_RB_PROPERTY, "reboot");
break;
- case recovery:
+ case RebootType::recovery:
property_set(ANDROID_RB_PROPERTY, "reboot,recovery");
break;
- case shutdown:
+ case RebootType::shutdown:
property_set(ANDROID_RB_PROPERTY, "shutdown");
break;
}
@@ -1455,7 +1455,7 @@
} else {
/* Let's hope that a reboot clears away whatever is keeping
the mount busy */
- cryptfs_reboot(reboot);
+ cryptfs_reboot(RebootType::reboot);
}
} else {
SLOGE("Failed to mount decrypted data");
@@ -2656,7 +2656,7 @@
if (rc == ENABLE_INPLACE_ERR_DEV) {
/* Hack for b/17898962 */
SLOGE("cryptfs_enable: crypto block dev failure. Must reboot...\n");
- cryptfs_reboot(reboot);
+ cryptfs_reboot(RebootType::reboot);
}
if (!rc) {
@@ -2891,7 +2891,7 @@
if (onlyCreateHeader) {
sleep(2);
- cryptfs_reboot(reboot);
+ cryptfs_reboot(RebootType::reboot);
}
if (how == CRYPTO_ENABLE_INPLACE && (!no_ui || rebootEncryption)) {
@@ -2978,11 +2978,11 @@
return 0;
} else {
sleep(2); /* Give the UI a chance to show 100% progress */
- cryptfs_reboot(reboot);
+ cryptfs_reboot(RebootType::reboot);
}
} else {
sleep(2); /* Partially encrypted, ensure writes flushed to ssd */
- cryptfs_reboot(shutdown);
+ cryptfs_reboot(RebootType::shutdown);
}
} else {
char value[PROPERTY_VALUE_MAX];
@@ -2998,7 +2998,7 @@
if (!write_bootloader_message(options, &err)) {
SLOGE("could not write bootloader message: %s", err.c_str());
}
- cryptfs_reboot(recovery);
+ cryptfs_reboot(RebootType::recovery);
} else {
/* set property to trigger dialog */
property_set("vold.encrypt_progress", "error_partially_encrypted");
@@ -3028,7 +3028,7 @@
* vold to restart the system.
*/
SLOGE("Error enabling encryption after framework is shutdown, no data changed, restarting system");
- cryptfs_reboot(reboot);
+ cryptfs_reboot(RebootType::reboot);
/* shouldn't get here */
property_set("vold.encrypt_progress", "error_shutting_down");