Salvatore Sanfilippo
9f31e02a79
Merge pull request #6495 from oranagra/rm_call_argv
...
Module api RM_CallArgv and test
2019-10-29 10:07:05 +01:00
Oran Agra
d725788873
Module api tests for RM_Call
...
Adding a test for coverage for RM_Call in a new "misc" unit
to be used for various short simple tests
also solves compilation warnings in redismodule.h and fork.c
2019-10-28 12:39:57 +02:00
Guy Benoish
5d01f01beb
Modules: Allow notifying custom keyspace events
...
Also, add an API for getting server.notify_keyspace_events
Other (unrelated) changes:
Add RM_GetKeynameFromModuleKey
2019-10-28 15:53:35 +05:30
Oran Agra
6700a2dc66
Module API for explicit SignalModifiedKey instead of implicit one.
...
This commit also fixes an uninitialized module struct member (that luckily never got released)
2019-10-28 12:09:25 +02:00
Salvatore Sanfilippo
79e670d6ad
Merge pull request #6498 from oranagra/rm_latency_add_sample
...
Module API for LatencyAddSample
2019-10-28 09:59:26 +01:00
Salvatore Sanfilippo
847dd92ef0
Merge pull request #6505 from swilly22/replaywith-module-API-additions
...
Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNull…
2019-10-28 09:56:56 +01:00
swilly22
29827d37a5
Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNullArray and ReplyWithEmptyString to redis module API
2019-10-28 08:50:25 +02:00
zhaozhao.zz
18c4ccf898
Modules: make unloading module more safe
...
As we know if a module exports module-side data types,
unload it is not allowed. This rule is the same with
blocked clients in module, because we use background
threads to implement module blocked clients, and it's
not safe to unload a module if there are background
threads running. So it's necessary to check if any
blocked clients running in this module when unload it.
Moreover, after that we can ensure that if no modules,
then no module blocked clients even module unloaded.
So, we can call moduleHandleBlockedClients only when
we have installed modules.
2019-10-28 11:31:58 +08:00
Oran Agra
5ba6fe50c7
Module API for LatencyAddSample
2019-10-24 14:24:55 +03:00
antirez
3bd7f715c8
Modules hooks: test flush event.
2019-10-24 10:51:03 +02:00
antirez
a398066625
Modules hooks: select DB zero by default.
2019-10-23 18:51:44 +02:00
antirez
938dafa9e3
Modules hooks: for nested calls, create new fake clients.
...
We can't use the same client at the same time when re-entering the hook.
2019-10-23 18:39:53 +02:00
antirez
d6739df4fc
Modules hooks: do not re-enter in hooks.
...
Calling a module hook callback may result in callback operations in turn
triggering other events the module is subscribed too. We don't want to
trigger those, it's unsafe and quite confusing, and to do it correcly we
would need to maintain an event list: quite a more complex
implementation.
2019-10-23 18:39:53 +02:00
antirez
9d10d62003
Modules hooks: select the right DB for FLUSHDB events.
2019-10-23 18:39:53 +02:00
antirez
77a37cafd5
Modules hooks: FLUSHDB event example.
2019-10-23 18:39:53 +02:00
antirez
581c9133e5
Modules hooks: implement the FLUSHDB event.
2019-10-23 18:39:53 +02:00
antirez
6cd26b3db3
Modules hooks: unify structures definitions.
2019-10-23 18:39:53 +02:00
antirez
4866552961
Modules hooks: document what yet to implement WIP 2.
2019-10-23 18:39:53 +02:00
antirez
d41d09d474
Modules hooks: document what yet to implement WIP 1.
2019-10-23 18:39:53 +02:00
antirez
7379bb76f2
Module hooks: fixes and an example module.
2019-10-23 18:39:53 +02:00
antirez
f3e4f24f68
Modules hooks: fix define / linker issues. Implement one test event.
2019-10-23 18:39:53 +02:00
antirez
98a0d95965
Modules hooks: handle module unloading + API export.
2019-10-23 18:39:53 +02:00
antirez
30d8dce935
Modules hooks: fix a leak and a few more issues.
2019-10-23 18:39:53 +02:00
antirez
aa9b870db3
Modules hooks: event firing logic.
2019-10-23 18:39:53 +02:00
antirez
e9f6e9306b
Modules: refactoring of RM_GetClientInfoById().
2019-10-23 18:39:53 +02:00
antirez
482cf667aa
Modules: fix RedisModule_GetClientInfoById() example.
2019-10-23 18:39:53 +02:00
antirez
16af0381d5
Modules: export GetClientInfoById().
2019-10-23 18:39:53 +02:00
antirez
23ec02d161
Modules: add the client ID to the client info structure.
2019-10-23 18:39:53 +02:00
antirez
35c8b8969e
Modules: RM_GetClientInfoById() draft.
2019-10-23 18:39:53 +02:00
antirez
1f1d25b5a9
Modules hooks: a first version of events and some API.
2019-10-23 18:39:53 +02:00
antirez
7333e5c5a8
Modules hooks: initial design of data structures.
2019-10-23 18:39:53 +02:00
antirez
58a0ef3020
Modules: fix moduleCreateArgvFromUserFormat() casting bug.
...
In 32 bit systems casting to "long" will cut the result to 32 bit.
2019-10-23 18:39:14 +02:00
antirez
7414be69c8
module: fix propagation API bug.
2019-10-17 18:28:34 +02:00
antirez
ea85cda320
Modules: allow to check for AOF loading client.
2019-10-17 18:10:50 +02:00
antirez
34961ddee8
Modules: add new flags to context, replica state + more.
2019-10-17 17:49:33 +02:00
Yossi Gottlieb
85d7f38136
Merge remote-tracking branch 'upstream/unstable' into tls
2019-10-16 17:08:07 +03:00
Salvatore Sanfilippo
d3bfd0ed88
Merge pull request #5926 from JimB123/unstable
...
Addition of RedisModule_OnUnload hook
2019-10-16 11:13:12 +02:00
Yossi Gottlieb
10ffeb03e4
TLS: Connections refactoring and TLS support.
...
* Introduce a connection abstraction layer for all socket operations and
integrate it across the code base.
* Provide an optional TLS connections implementation based on OpenSSL.
* Pull a newer version of hiredis with TLS support.
* Tests, redis-cli updates for TLS support.
2019-10-07 21:06:13 +03:00
antirez
124493582b
Modules: RM_Call(): give pointer to documentation.
2019-10-04 11:46:53 +02:00
antirez
9f2a31368c
Modules: RM_Call/Replicate() ability to exclude AOF/replicas.
2019-10-04 11:44:53 +02:00
antirez
414f633962
Modules: RM_Replicate() in thread safe contexts.
2019-10-03 11:03:46 +02:00
antirez
67cdd03efa
Modules: implement RM_Replicate() from async callbacks.
2019-10-03 10:56:37 +02:00
antirez
5526c0b9cb
Modules: handle propagation when ctx is freed. Flag modules commands ctx.
2019-10-02 18:33:40 +02:00
Oran Agra
3556b6109c
Use sdscatfmt instead of sdscatprintf in module info
...
sdscatfmt is faster
2019-09-30 21:13:13 +03:00
Oran Agra
bd49c4679b
Merge remote-tracking branch 'antirez/unstable' into modules_info
2019-09-30 20:47:35 +03:00
antirez
0660ff3696
Change a bit the style of #6385 .
2019-09-30 10:58:15 +02:00
Salvatore Sanfilippo
d69ff13992
Merge pull request #6385 from filipecosta90/perf-reply-ss-error
...
Improve performance of RM_ReplyWithSimpleString and RM_ReplyWi…
2019-09-30 10:57:05 +02:00
antirez
9ec77b6a7a
moduleRDBLoadError(): io->ctx may be NULL.
...
The correct way to access the module about a given IO context is to
deference io->type->module, since io->ctx is only populated if the user
requests an explicit context from an IO object.
2019-09-27 18:42:38 +02:00
antirez
bd0ddcdc3b
Fix memory leak in moduleLoadFromQueue().
2019-09-27 18:33:21 +02:00
antirez
795d1029b4
Fix memory leak in RM_UnregisterCommandFilter().
2019-09-27 18:33:05 +02:00