--- /dev/null
+# Used by cache-logic
+cache {
+ driver = "rlm_cache_redis"
+
+ redis {
+ server = $ENV{REDIS_TEST_SERVER}:30001
+ server = $ENV{REDIS_TEST_SERVER}:30002
+ server = $ENV{REDIS_TEST_SERVER}:30003
+ server = $ENV{REDIS_TEST_SERVER}:30004
+ server = $ENV{REDIS_TEST_SERVER}:30005
+ server = $ENV{REDIS_TEST_SERVER}:30006
+ }
+
+ key = "%{Tmp-String-0}"
+ ttl = 2
+
+ update {
+ &request.Tmp-String-1 := &control.Tmp-String-1[0]
+ &request.Tmp-Integer-0 := &control.Tmp-Integer-0[0]
+ &control += &reply
+ }
+
+ add_stats = yes
+}
+
+cache cache_update {
+ driver = "rlm_cache_redis"
+
+ redis {
+ server = $ENV{REDIS_TEST_SERVER}:30001
+ server = $ENV{REDIS_TEST_SERVER}:30002
+ server = $ENV{REDIS_TEST_SERVER}:30003
+ server = $ENV{REDIS_TEST_SERVER}:30004
+ server = $ENV{REDIS_TEST_SERVER}:30005
+ server = $ENV{REDIS_TEST_SERVER}:30006
+ }
+
+ key = "%{Tmp-String-0}"
+ ttl = 2
+
+ #
+ # Update sections in the cache module use very similar
+ # logic to update sections in unlang, except the result
+ # of evaluating the RHS isn't applied until the cache
+ # entry is merged.
+ #
+ update {
+ # Copy reply to session-state
+ &session-state += &reply
+
+ # Implicit cast between types (and multivalue copy)
+ &Tmp-String-0 += &Tmp-Integer-0[*]
+
+ # Cache the result of an exec
+ &Tmp-String-1 := `/bin/echo 'echo test'`
+
+ # Create three string values and overwrite the middle one
+ &Tmp-String-2 += 'foo'
+ &Tmp-String-2 += 'bar'
+ &Tmp-String-2 += 'baz'
+
+ &Tmp-String-2[1] := 'rab'
+
+ # Create three string values, then remove one
+ &Tmp-String-3 += 'foo'
+ &Tmp-String-3 += 'bar'
+ &Tmp-String-3 += 'baz'
+
+ &Tmp-String-3 -= 'bar'
+ }
+}
+
+#
+# Test some exotic keys
+#
+cache cache_bin_key_octets {
+ driver = "rlm_cache_redis"
+
+ redis {
+ server = $ENV{REDIS_TEST_SERVER}:30001
+ server = $ENV{REDIS_TEST_SERVER}:30002
+ server = $ENV{REDIS_TEST_SERVER}:30003
+ server = $ENV{REDIS_TEST_SERVER}:30004
+ server = $ENV{REDIS_TEST_SERVER}:30005
+ server = $ENV{REDIS_TEST_SERVER}:30006
+ }
+
+ key = &Tmp-Octets-0
+ ttl = 2
+
+ update {
+ &Tmp-String-1 := &Tmp-String-1[0]
+ }
+}
+
+cache cache_bin_key_ipaddr {
+ driver = "rlm_cache_redis"
+
+ redis {
+ server = $ENV{REDIS_TEST_SERVER}:30001
+ server = $ENV{REDIS_TEST_SERVER}:30002
+ server = $ENV{REDIS_TEST_SERVER}:30003
+ server = $ENV{REDIS_TEST_SERVER}:30004
+ server = $ENV{REDIS_TEST_SERVER}:30005
+ server = $ENV{REDIS_TEST_SERVER}:30006
+ }
+
+ key = &Tmp-IP-Address-0
+ ttl = 2
+
+ update {
+ &Tmp-String-1 := &Tmp-String-1[0]
+ }
+}