Check if parameters are defined instead of interpreting as booleans.

Fixes bug #359 "Yate.pm removes '0' values from all (even not handled) messages".
Patch by Vasily i. Redkin <vir@ctm.ru>


git-svn-id: http://voip.null.ro/svn/yate@5773 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2014-02-11 12:43:20 +00:00
parent fb687a8986
commit 02150d4631
1 changed files with 5 additions and 5 deletions

View File

@ -189,7 +189,7 @@ sub install($$$;$;$$) {
# filter-name and filter-value are optional.
if ($filter_name) {
$filter_value = '' if (!$filter_value);
$filter_value = '' unless defined $filter_value;
$query .= sprintf(':%s:%s', $self->escape($filter_name, ':'), $self->escape($filter_value, ':'));
}
@ -426,7 +426,7 @@ sub param($$;$) {
return undef;
}
if ($value) {
if (defined $value) {
$self->{'params'}->{$key} = $value;
} elsif (exists($self->{'params'}->{$key})) {
return $self->{'params'}->{$key};
@ -525,7 +525,7 @@ sub return_message($$$) {
if (ref($self->params()) eq 'HASH') {
while (my ($key, $value) = each(%{$self->params()})) {
if ($key) {
$value = '' if (!$value);
$value = '' unless defined $value;
$params .= ':' . $self->escape($key, ':') . '=' . $self->escape($value, ':');
}
@ -590,7 +590,7 @@ sub message($$$;$;@) {
return 0;
}
$return_value = '' if (!$return_value);
$return_value = '' unless defined $return_value;
if (!$id) {
$id = generate_id();
@ -599,7 +599,7 @@ sub message($$$;$;@) {
my $params = '';
while (my ($key, $value) = each(%params)) {
if ($key) {
$value = '' if (!$value);
$value = '' unless defined $value;
$params .= ':' . $self->escape($key, ':') . '=' . $self->escape($value, ':');
}
}