From 02150d463100a7a9158e055db1fce90009c4314f Mon Sep 17 00:00:00 2001 From: paulc Date: Tue, 11 Feb 2014 12:43:20 +0000 Subject: [PATCH] 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 git-svn-id: http://voip.null.ro/svn/yate@5773 acf43c95-373e-0410-b603-e72c3f656dc1 --- share/scripts/Yate.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/share/scripts/Yate.pm b/share/scripts/Yate.pm index ef6ae15e..fde104a6 100644 --- a/share/scripts/Yate.pm +++ b/share/scripts/Yate.pm @@ -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, ':'); } }