Kea 2.7.1
isc::util::str::StringSanitizer Class Reference

Implements a regular expression based string scrubber. More...

#include <str.h>

Public Member Functions

 StringSanitizer (const std::string &char_set, const std::string &char_replacement)
std::string scrub (const std::string &original)
 Returns a scrubbed copy of a given string.

Static Public Attributes

static const uint32_t MAX_DATA_SIZE = 4096
 The maximum size for regex parameters.

Detailed Description

Implements a regular expression based string scrubber.

Definition at line 222 of file str.h.

Constructor & Destructor Documentation

◆ StringSanitizer()

isc::util::str::StringSanitizer::StringSanitizer ( const std::string & char_set,
const std::string & char_replacement )


Compiles the given character set into a regular expression, and retains the given character replacement. Thereafter, the instance may be used to scrub an arbitrary number of strings.

char_setstring containing a regular expression (POSIX extended syntax) that describes the characters to replace. If you wanted to sanitize hostnames for example, you could specify the inversion of valid characters "[^A-Za-z0-9_-]".
char_replacementstring of one or more characters to use as the replacement for invalid characters.
BadValueif given an invalid regular expression.

Definition at line 300 of file

Member Function Documentation

◆ scrub()

string isc::util::str::StringSanitizer::scrub ( const std::string & original)

Returns a scrubbed copy of a given string.

Replaces all occurrences of characters described by the regular expression with the character replacement.

originalThe string to be scrubbed.
Unexpectedif an error occurs during scrubbing.

Definition at line 305 of file

Member Data Documentation


const uint32_t isc::util::str::StringSanitizer::MAX_DATA_SIZE = 4096

The maximum size for regex parameters.

The regex engine is implemented using recursion and can cause stack overflow if the input data is too large. An arbitrary size of 4096 should be enough for all cases.

Definition at line 255 of file str.h.

Referenced by isc::util::str::StringSanitizerImpl::StringSanitizerImpl().

The documentation for this class was generated from the following files: