Skip to content

Commit

Permalink
adding removeWhitespace transformation
Browse files Browse the repository at this point in the history
  • Loading branch information
bjh7242 authored and zimmerle committed Apr 5, 2016
1 parent 0a60924 commit 883b804
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions src/actions/transformations/remove_whitespace.cc
Expand Up @@ -25,6 +25,7 @@
#include "modsecurity/transaction.h"
#include "actions/transformations/transformation.h"

#define NBSP 160 // non breaking space char

namespace modsecurity {
namespace actions {
Expand All @@ -37,18 +38,27 @@ RemoveWhitespace::RemoveWhitespace(std::string action)

std::string RemoveWhitespace::evaluate(std::string value,
Transaction *transaction) {
/**
* @todo Implement the transformation RemoveWhitespace
*/
if (transaction) {
#ifndef NO_LOGS
transaction->debug(4, "Transformation RemoveWhitespace is " \
"not implemented yet.");
#endif

long int i = 0;

// loop through all the chars
while(i < value.size()) {
// remove whitespaces and non breaking spaces (NBSP)
if (isspace(value[i])||(value[i] == NBSP)) {
value.erase(i, 1);
}
else {
/* if the space is not a whitespace char, increment counter
counter should not be incremented if a character is erased because
the index erased will be replaced by the following character */
i++;
}
}

return value;
}

} // namespace transformations
} // namespace actions
} // namespace modsecurity

0 comments on commit 883b804

Please sign in to comment.