aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/cache/driver/redis.php
blob: 960735b6737b286602c700732ccc429b92201c68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Diffstat (limited to 'lib')
-rw-r--r--lib/network/connection_manager.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/network/connection_manager.pm b/lib/network/connection_manager.pm
index e7a8401..58c4e6a 100644
--- a/lib/network/connection_manager.pm
+++ b/lib/network/connection_manager.pm
@@ -267,7 +267,8 @@ sub update_on_status_change {
if $cmanager->{gui}{buttons}{connect_stop};
#- allow to configure only if a network is selected
- $cmanager->{gui}{buttons}{configure}->set_sensitive($cmanager->{connection} && $cmanager->{connection}{network})
+ my $may_have_network = !$cmanager->{connection}->can('get_networks') || $cmanager->{connection}{network};
+ $cmanager->{gui}{buttons}{configure}->set_sensitive($cmanager->{connection} && $may_have_network)
if $cmanager->{gui}{buttons}{configure};
}
an> * @ignore */ if (!defined('IN_PHPBB')) { exit; } if (!defined('PHPBB_ACM_REDIS_PORT')) { define('PHPBB_ACM_REDIS_PORT', 6379); } if (!defined('PHPBB_ACM_REDIS_HOST')) { define('PHPBB_ACM_REDIS_HOST', 'localhost'); } /** * ACM for Redis * * Compatible with the php extension phpredis available * at https://github.com/nicolasff/phpredis * * @package acm */ class phpbb_cache_driver_redis extends phpbb_cache_driver_memory { var $extension = 'redis'; var $redis; /** * Creates a redis cache driver. * * The following global constants affect operation: * * PHPBB_ACM_REDIS_HOST * PHPBB_ACM_REDIS_PORT * PHPBB_ACM_REDIS_PASSWORD * PHPBB_ACM_REDIS_DB * * There are no publicly documented constructor parameters. */ function __construct() { // Call the parent constructor parent::__construct(); $this->redis = new Redis(); $args = func_get_args(); if (!empty($args)) { $ok = call_user_func_array(array($this->redis, 'connect'), $args); } else { $ok = $this->redis->connect(PHPBB_ACM_REDIS_HOST, PHPBB_ACM_REDIS_PORT); } if (!$ok) { trigger_error('Could not connect to redis server'); } if (defined('PHPBB_ACM_REDIS_PASSWORD')) { if (!$this->redis->auth(PHPBB_ACM_REDIS_PASSWORD)) { global $acm_type; trigger_error("Incorrect password for the ACM module $acm_type.", E_USER_ERROR); } } $this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); $this->redis->setOption(Redis::OPT_PREFIX, $this->key_prefix); if (defined('PHPBB_ACM_REDIS_DB')) { if (!$this->redis->select(PHPBB_ACM_REDIS_DB)) { global $acm_type; trigger_error("Incorrect database for the ACM module $acm_type.", E_USER_ERROR); } } } /** * Unload the cache resources * * @return null */ function unload() { parent::unload(); $this->redis->close(); } /** * Purge cache data * * @return null */ function purge() { $this->redis->flushDB(); parent::purge(); } /** * Fetch an item from the cache * * @access protected * @param string $var Cache key * @return mixed Cached data */ function _read($var) { return $this->redis->get($var); } /** * Store data in the cache * * @access protected * @param string $var Cache key * @param mixed $data Data to store * @param int $ttl Time-to-live of cached data * @return bool True if the operation succeeded */ function _write($var, $data, $ttl = 2592000) { return $this->redis->setex($var, $ttl, $data); } /** * Remove an item from the cache * * @access protected * @param string $var Cache key * @return bool True if the operation succeeded */ function _delete($var) { if ($this->redis->delete($var) > 0) { return true; } return false; } }