From e34cba8c9c127203e56f3679cd627d2d1d72f54e Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Mon, 28 Aug 2017 15:51:00 -0400 Subject: Bug 1393643 - Add whitelist to rate limiting code (#220) * Bug 1393643 - Add whitelist to rate limiting code * use version that has new module * add memcache to bloomfilter loading --- Bugzilla/Memcached.pm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'Bugzilla/Memcached.pm') diff --git a/Bugzilla/Memcached.pm b/Bugzilla/Memcached.pm index 233db31f2..1623296f8 100644 --- a/Bugzilla/Memcached.pm +++ b/Bugzilla/Memcached.pm @@ -127,6 +127,41 @@ sub get_config { } } +sub set_bloomfilter { + my ($self, $args) = @_; + return unless $self->{memcached}; + if (exists $args->{name}) { + return $self->_set($self->_bloomfilter_prefix . '.' . $args->{name}, $args->{filter}); + } + else { + ThrowCodeError('params_required', { function => "Bugzilla::Memcached::set_bloomfilter", + params => [ 'name' ] }); + } +} + +sub get_bloomfilter { + my ($self, $args) = @_; + return unless $self->{memcached}; + if (exists $args->{name}) { + return $self->_get($self->_bloomfilter_prefix . '.' . $args->{name}); + } + else { + ThrowCodeError('params_required', { function => "Bugzilla::Memcached::set_bloomfilter", + params => [ 'name' ] }); + } +} + +sub clear_bloomfilter { + my ($self, $args) = @_; + return unless $self->{memcached}; + if ($args && exists $args->{name}) { + $self->_delete($self->_config_prefix . '.' . $args->{name}); + } + else { + $self->_inc_prefix("bloomfilter"); + } +} + sub clear { my ($self, $args) = @_; return unless $self->{memcached}; @@ -244,6 +279,10 @@ sub _config_prefix { return $_[0]->_prefix("config"); } +sub _bloomfilter_prefix { + return $_[0]->_prefix("bloomfilter"); +} + sub _encode_key { my ($self, $key) = @_; $key = $self->_global_prefix . '.' . uri_escape_utf8($key); -- cgit v1.2.3-24-g4f1b