diff options
author | des <des@FreeBSD.org> | 2005-03-05 15:52:12 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2005-03-05 15:52:12 +0000 |
commit | 92b3a60f355481e2f7f651414819beffca4f4540 (patch) | |
tree | 9dfa45d51dcf547456e84f8d222ee875b86ca14e | |
parent | b061c6f5aed3662b905ede01af917af51fa3a40c (diff) | |
download | FreeBSD-src-92b3a60f355481e2f7f651414819beffca4f4540.zip FreeBSD-src-92b3a60f355481e2f7f651414819beffca4f4540.tar.gz |
Teach getenv_quad() to recognize k/m/g/t suffixes in both lower- and
upper-case. This means (almost) all tunables now support those suffixes.
-rw-r--r-- | sys/kern/kern_environment.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c index bb26b61..550be83 100644 --- a/sys/kern/kern_environment.c +++ b/sys/kern/kern_environment.c @@ -458,11 +458,23 @@ getenv_quad(const char *name, quad_t *data) if (value == NULL) return (0); iv = strtoq(value, &vtp, 0); - if ((vtp == value) || (*vtp != '\0')) { - freeenv(value); + freeenv(value); + if (vtp == value || (vtp[0] != '\0' && vtp[1] != '\0')) + return (0); + switch (vtp[0]) { + case 't': case 'T': + iv *= 1024; + case 'g': case 'G': + iv *= 1024; + case 'm': case 'M': + iv *= 1024; + case 'k': case 'K': + iv *= 1024; + case '\0': + break; + default: return (0); } - freeenv(value); *data = iv; return (1); } |