projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/utils_cmd_putval.[ch]: Allow identifiers to include spaces.
[collectd.git]
/
bindings
/
perl
/
Collectd
/
Unixsock.pm
diff --git
a/bindings/perl/Collectd/Unixsock.pm
b/bindings/perl/Collectd/Unixsock.pm
index
d449924
..
c136221
100644
(file)
--- a/
bindings/perl/Collectd/Unixsock.pm
+++ b/
bindings/perl/Collectd/Unixsock.pm
@@
-134,6
+134,22
@@
sub _parse_identifier
return ($ident);
} # _parse_identifier
return ($ident);
} # _parse_identifier
+sub _escape_argument
+{
+ my $string = shift;
+
+ if ($string =~ m/^\w+$/)
+ {
+ return ("$string");
+ }
+
+ $string =~ s#\\#\\\\#g;
+ $string =~ s#"#\\"#g;
+ $string = "\"$string\"";
+
+ return ($string);
+}
+
=head1 PUBLIC METHODS
=over 4
=head1 PUBLIC METHODS
=over 4
@@
-182,14
+198,8
@@
sub getval
my $ret = {};
$identifier = _create_identifier (\%args) or return;
my $ret = {};
$identifier = _create_identifier (\%args) or return;
- if ($identifier =~ m/[\s"]/)
- {
- $identifier =~ s#\\#\\\\#g;
- $identifier =~ s#"#\\"#g;
- $identifier = "\"$identifier\"";
- }
- $msg =
"GETVAL $identifier
\n";
+ $msg =
'GETVAL ' . _escape_argument ($identifier) . "
\n";
#print "-> $msg";
send ($fh, $msg, 0) or confess ("send: $!");
#print "-> $msg";
send ($fh, $msg, 0) or confess ("send: $!");
@@
-246,7
+256,8
@@
sub putval
if (defined $args{'interval'})
{
if (defined $args{'interval'})
{
- $interval = ' interval=' . $args{'interval'};
+ $interval = ' interval='
+ . _escape_argument ($args{'interval'});
}
$identifier = _create_identifier (\%args) or return;
}
$identifier = _create_identifier (\%args) or return;
@@
-266,7
+277,10
@@
sub putval
$values = join (':', $time, map { defined ($_) ? $_ : 'U' } (@{$args{'values'}}));
}
$values = join (':', $time, map { defined ($_) ? $_ : 'U' } (@{$args{'values'}}));
}
- $msg = "PUTVAL $identifier$interval $values\n";
+ $msg = 'PUTVAL '
+ . _escape_argument ($identifier)
+ . $interval
+ . ' ' . _escape_argument ($values) . "\n";
#print "-> $msg";
send ($fh, $msg, 0) or confess ("send: $!");
$msg = undef;
#print "-> $msg";
send ($fh, $msg, 0) or confess ("send: $!");
$msg = undef;
@@
-483,14
+497,8
@@
sub flush
{
return;
}
{
return;
}
- if ($ident_str =~ m/[\s"]/)
- {
- $ident_str =~ s#\\#\\\\#g;
- $ident_str =~ s#"#\\"#g;
- $ident_str = "\"$ident_str\"";
- }
- $msg .=
" identifier=$ident_str"
;
+ $msg .=
' identifier=' . _escape_argument ($ident_str)
;
}
}
}
}