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

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

#include <strutil.h>

Public Member Functions

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

Detailed Description

Implements a regular expression based string scrubber.

The implementation uses C++11 regex IF the environemnt supports it (tested in configure.ac). If not it falls back to C lib regcomp/regexec. Older compilers, such as pre Gnu g++ 4.9.0, provided only experimental implementations of regex which are recognized as buggy.

Definition at line 268 of file strutil.h.

Constructor & Destructor Documentation

◆ StringSanitizer()

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

Constructor.

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.

Parameters
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.
Exceptions
BadValueif given an invalid regular expression

Definition at line 395 of file strutil.cc.

◆ ~StringSanitizer()

isc::util::str::StringSanitizer::~StringSanitizer ( )

Destructor.

Destroys the implementation instance.

Definition at line 400 of file strutil.cc.

Member Function Documentation

◆ scrub()

std::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.

Parameters
originalthe string to scrub
Exceptions
Unexpectedif an error occurs during scrubbing

Definition at line 405 of file strutil.cc.

References isc::util::str::StringSanitizerImpl::scrub().

+ Here is the call graph for this function:

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