diff --git a/src/api/encryption_remove_post.c b/src/api/encryption_remove_post.c index e76e357bff5302490fa13f05e660f32dc432930f..452a223aee1e79d826eb76dd41cdd5202ff6df75 100644 --- a/src/api/encryption_remove_post.c +++ b/src/api/encryption_remove_post.c @@ -73,22 +73,8 @@ int callback_encryption_remove_post(const struct _u_request * request, } // Determine the filesystem usage of the encrypted data partition. - unsigned long size = filesystem_usage(DATA_TMP_MOUNTPOINT); - if (size < 0) - { - // Something went wrong in determining the filesystem usage. - printf("determining filesystem usage failed: return code %lu\n", size); - return send_simple_response(response, 500, "error", - "determining filesystem usage failed"); - } - printf("root device usage: %lu bytes\n", size); - - // Determine the available memory. - unsigned long memory = available_memory(); - - double projected_usage = (double)size / (double)memory; - printf("projected memory usage: %.3f\n", projected_usage); - if (projected_usage > MEMORY_USAGE) + bool fits = filesystem_fits_in_memory(DATA_TMP_MOUNTPOINT, MEMORY_USAGE); + if (! fits) { // Projected memory usage is really high, so abort. return send_simple_response(response, 500, "error", diff --git a/src/includes/settings.h b/src/includes/settings.h index 5d29b2bc9d50f3c6a3e51b839ff0852603a7be82..8035b1024dfa8b91d5fb4c76c4f878f682ad9266 100644 --- a/src/includes/settings.h +++ b/src/includes/settings.h @@ -1,24 +1,31 @@ +// Web interface settings. #define PREFIX "/cryptops/v0" #define PORT 8000 #define BIND_ADDRESS "127.0.0.1" +// Device paths. #define ROOT_DEVICE "/dev/xvda" #define INFO_PARTITION_DEVICE ROOT_DEVICE "1" #define DATA_PARTITION_DEVICE ROOT_DEVICE "2" #define MAPPED_DEVICE_NAME "xvda1_crypt" #define MAPPED_DEVICE_PATH "/dev/mapper/" MAPPED_DEVICE_NAME +// Filesystem parameters. #define FILESYSTEM_TYPE "xfs" +// Mountpoint paths. +#define INFO_MOUNTPOINT "/conf/persistent" + +// Resource usage. #define MEMORY_USAGE 0.9 +// Temporary mountpoints. #define UNENCRYPTED_TMP_MOUNTPOINT "/tmp/mnt-plain" #define INFO_TMP_MOUNTPOINT "/tmp/mnt-info" #define DATA_TMP_MOUNTPOINT "/tmp/mnt-data" #define TMP_LOCATION "/tmp/" MAPPED_DEVICE_NAME -#define INFO_MOUNTPOINT "/conf/persistent" - +// Ssh configuration file locations. #define AUTHORIZED_KEYS_DIR "/root/.ssh" #define AUTHORIZED_KEYS_PATH AUTHORIZED_KEYS_DIR "/authorized_keys" #define SSH_HOST_KEY_DIR "/dropbear"