This commit is contained in:
Adam Dubiel 2014-10-27 13:27:07 +01:00
Родитель 5e56e42ee5
Коммит 8ddd61b34d
2 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -11,6 +11,15 @@ function isNumber(str) {
return Boolean(str && !isNaN(str)); return Boolean(str && !isNaN(str));
} }
function isValidSampleRate(str) {
var validSampleRate = false;
if(str.length > 1 && str[0] === '@') {
var numberStr = str.substring(1);
validSampleRate = isNumber(numberStr) && numberStr[0] != '-';
}
return validSampleRate;
}
function is_valid_packet(fields) { function is_valid_packet(fields) {
// test for existing metrics type // test for existing metrics type
@ -19,8 +28,8 @@ function is_valid_packet(fields) {
} }
// filter out malformed sample rates // filter out malformed sample rates
if (fields[2] !== undefined) { if(fields[2] !== undefined) {
if (fields[2].length <= 1 || fields[2][0] != '@' || !isNumber(fields[2].substring(1))) { if(!isValidSampleRate(fields[2])) {
return false; return false;
} }
} }

Просмотреть файл

@ -112,6 +112,7 @@ module.exports = {
test.equals(helpers.is_valid_packet(['345345', 'ms', '@.']), false); test.equals(helpers.is_valid_packet(['345345', 'ms', '@.']), false);
test.equals(helpers.is_valid_packet(['345345', 'ms', '@.1.']), false); test.equals(helpers.is_valid_packet(['345345', 'ms', '@.1.']), false);
test.equals(helpers.is_valid_packet(['345345', 'ms', '@.1.2.3']), false); test.equals(helpers.is_valid_packet(['345345', 'ms', '@.1.2.3']), false);
test.equals(helpers.is_valid_packet(['345345', 'ms', '@-1.0']), false);
test.done(); test.done();
}, },