From 39ebeb725b941323eac13d672eb4f94219b8399d Mon Sep 17 00:00:00 2001 From: l00355512 Date: Fri, 11 May 2018 09:47:49 +0800 Subject: [PATCH] support case ignored suffix for sizes suffix of console max size and console buffer max size Signed-off-by: l00355512 --- doc/lxc.container.conf.sgml.in | 18 ++++++++++-------- src/lxc/utils.c | 6 +++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/lxc.container.conf.sgml.in b/doc/lxc.container.conf.sgml.in index e9a013b8c..50fa76789 100644 --- a/doc/lxc.container.conf.sgml.in +++ b/doc/lxc.container.conf.sgml.in @@ -819,15 +819,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ringbuffer. Note that ringbuffer must be at least as big as a standard page size. When passed a value smaller than a single page size liblxc will allocate a ringbuffer of a single page size. A page - size is usually 4kB. + size is usually 4KB. The keyword 'auto' will cause liblxc to allocate a ringbuffer of - 128kB. + 128KB. When manually specifying a size for the ringbuffer the value should be a power of 2 when converted to bytes. Valid size prefixes are - 'kB', 'MB', 'GB'. (Note that all conversions are based on multiples - of 1024. That means 'kb' == 'KiB', 'MB' == 'MiB', 'GB' == 'GiB'.) + 'KB', 'MB', 'GB'. (Note that all conversions are based on multiples + of 1024. That means 'KB' == 'KiB', 'MB' == 'MiB', 'GB' == 'GiB'. + And ignored case, for example 'kB', 'KB' and 'Kb' is same.) @@ -843,15 +844,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . Note that size of the log file must be at least as big as a standard page size. When passed a value smaller than a single page size liblxc will set the size of log file - to a single page size. A page size is usually 4kB. + to a single page size. A page size is usually 4KB. - The keyword 'auto' will cause liblxc to place a limit of 128kB on + The keyword 'auto' will cause liblxc to place a limit of 128KB on the log file. When manually specifying a size for the log file the value should be a power of 2 when converted to bytes. Valid size prefixes are - 'kB', 'MB', 'GB'. (Note that all conversions are based on multiples - of 1024. That means 'kb' == 'KiB', 'MB' == 'MiB', 'GB' == 'GiB'.) + 'KB', 'MB', 'GB'. (Note that all conversions are based on multiples + of 1024. That means 'KB' == 'KiB', 'MB' == 'MiB', 'GB' == 'GiB'. + And ignored case, for example 'kB', 'KB' and 'Kb' is same.) If users want to mirror the console ringbuffer on disk they should set equal to diff --git a/src/lxc/utils.c b/src/lxc/utils.c index 91bc802b4..b7651d055 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -2450,11 +2450,11 @@ int parse_byte_size_string(const char *s, int64_t *converted) return 0; } - if (!strcmp(suffix, "kB")) + if (!strcasecmp(suffix, "KB")) mltpl = 1024; - else if (!strcmp(suffix, "MB")) + else if (!strcasecmp(suffix, "MB")) mltpl = 1024 * 1024; - else if (!strcmp(suffix, "GB")) + else if (!strcasecmp(suffix, "GB")) mltpl = 1024 * 1024 * 1024; else return -EINVAL;