From 8334dceadb748a93effda4828db2439554fb532f Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Fri, 15 Jun 2012 22:19:51 -0400 Subject: [PATCH] Changed the escaping method. --- src/logging/writers/ElasticSearch.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/logging/writers/ElasticSearch.cc b/src/logging/writers/ElasticSearch.cc index 5e1efa504e..a2019df9fe 100644 --- a/src/logging/writers/ElasticSearch.cc +++ b/src/logging/writers/ElasticSearch.cc @@ -122,9 +122,13 @@ bool ElasticSearch::AddFieldValueToBuffer(Value* val, const Field* field) // HTML entity encode special characters. if ( c < 32 || c > 126 || c == '\n' || c == '"' || c == '\'' || c == '\\' || c == '&' ) { - buffer.AddRaw("&#", 2); - buffer.Add((uint8_t) c); - buffer.AddRaw(";", 1); + static const char hex_chars[] = "0123456789abcdef"; + buffer.AddRaw("\\u00", 4); + buffer.AddRaw(&hex_chars[(c & 0xf0) >> 4], 1); + buffer.AddRaw(&hex_chars[c & 0x0f], 1); + //buffer.AddRaw("&#//", 2); + //buffer.Add((uint8_t) c); + //buffer.AddRaw(";", 1); } else buffer.AddRaw(&c, 1);