summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Memcached.pm
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2017-08-28 21:51:00 +0200
committerMary Umoh <umohm12@gmail.com>2017-08-28 21:51:00 +0200
commite34cba8c9c127203e56f3679cd627d2d1d72f54e (patch)
tree177bb3ba6942925ab3a7bd2bfbf1baccd1eafd43 /Bugzilla/Memcached.pm
parent0fdb8be1599283df80ae3b52f2254b847152a60f (diff)
downloadbugzilla-e34cba8c9c127203e56f3679cd627d2d1d72f54e.tar.gz
bugzilla-e34cba8c9c127203e56f3679cd627d2d1d72f54e.tar.xz
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
Diffstat (limited to 'Bugzilla/Memcached.pm')
-rw-r--r--Bugzilla/Memcached.pm39
1 files changed, 39 insertions, 0 deletions
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);