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
af274a5
..
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
@@
-175,7
+191,7
@@
sub getval
my %args = @_;
my $status;
my %args = @_;
my $status;
- my $fh = $obj->{'sock'} or confess;
+ my $fh = $obj->{'sock'} or confess
('object has no filehandle')
;
my $msg;
my $identifier;
my $msg;
my $identifier;
@@
-183,7
+199,7
@@
sub getval
$identifier = _create_identifier (\%args) or return;
$identifier = _create_identifier (\%args) or return;
- $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: $!");
@@
-236,6
+252,13
@@
sub putval
my $msg;
my $identifier;
my $values;
my $msg;
my $identifier;
my $values;
+ my $interval = "";
+
+ if (defined $args{'interval'})
+ {
+ $interval = ' interval='
+ . _escape_argument ($args{'interval'});
+ }
$identifier = _create_identifier (\%args) or return;
if (!$args{'values'})
$identifier = _create_identifier (\%args) or return;
if (!$args{'values'})
@@
-254,7
+277,10
@@
sub putval
$values = join (':', $time, map { defined ($_) ? $_ : 'U' } (@{$args{'values'}}));
}
$values = join (':', $time, map { defined ($_) ? $_ : 'U' } (@{$args{'values'}}));
}
- $msg = "PUTVAL $identifier $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;
@@
-472,7
+498,7
@@
sub flush
return;
}
return;
}
- $msg .=
" identifier=$ident_str"
;
+ $msg .=
' identifier=' . _escape_argument ($ident_str)
;
}
}
}
}