summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9bb21a2)
raw | patch | inline | side by side (parent: 9bb21a2)
author | Aleksei Zakharov <zakharov.a.g@yandex.ru> | |
Thu, 19 Oct 2017 08:40:28 +0000 (08:40 +0000) | ||
committer | Aleksei Zakharov <zakharov.a.g@yandex.ru> | |
Thu, 19 Oct 2017 08:40:28 +0000 (08:40 +0000) |
src/ceph.c | patch | blob | history |
diff --git a/src/ceph.c b/src/ceph.c
index 0b064de3fe12fd193383344e27732cea7e75aa91..488680aca01ddae277bf1b75c6c930663a8ac877 100644 (file)
--- a/src/ceph.c
+++ b/src/ceph.c
}
static void cut_suffix(char *buffer, size_t buffer_size, char const *str,
- char const *suffix) {
+ char const *suffix) {
size_t str_len = strlen(str);
size_t suffix_len = strlen(suffix);
static int parse_keys(char *buffer, size_t buffer_size, const char *key_str) {
char tmp[2 * buffer_size];
size_t tmp_size = sizeof(tmp);
+ const char *cut_suffixes[] = {".type", ".avgcount", ".sum", ".avgtime"};
if (buffer == NULL || buffer_size == 0 || key_str == NULL ||
strlen(key_str) == 0)
return EINVAL;
+
+ sstrncpy(tmp, key_str, tmp_size);
+
/* Strip suffix if it is ".type" or one of latency metric suffix. */
if (count_parts(key_str) > 2) {
- if (has_suffix(key_str, ".type")) {
- cut_suffix(tmp, tmp_size, key_str, ".type");
- } else if (has_suffix(key_str, ".avgcount")) {
- cut_suffix(tmp, tmp_size, key_str, ".avgcount");
- } else if (has_suffix(key_str, ".sum")) {
- cut_suffix(tmp, tmp_size, key_str, ".sum");
- } else if (has_suffix(key_str, ".avgtime")) {
- cut_suffix(tmp, tmp_size, key_str, ".avgtime");
- } else {
- sstrncpy(tmp, key_str, sizeof(tmp));
+ for (size_t i = 0; i < STATIC_ARRAY_SIZE(cut_suffixes); i++) {
+ if (has_suffix(key_str, cut_suffixes[i])) {
+ cut_suffix(tmp, tmp_size, key_str, cut_suffixes[i]);
+ break;
+ }
}
- } else {
- sstrncpy(tmp, key_str, sizeof(tmp));
}
return compact_ds_name(buffer, buffer_size, tmp);