mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 00:50:50 +00:00
Use RedisModuleString for OnLoad argv.
This commit is contained in:
parent
2bd13cf0eb
commit
cc58f11ccc
@ -155,13 +155,13 @@ void resetServerSaveParams(void) {
|
|||||||
|
|
||||||
void queueLoadModule(sds path, sds *argv, int argc)
|
void queueLoadModule(sds path, sds *argv, int argc)
|
||||||
{
|
{
|
||||||
struct loadmodule *loadmod = zmalloc(sizeof(struct loadmodule)+sizeof(sds)*argc);
|
struct loadmodule *loadmod = zmalloc(sizeof(struct loadmodule)+sizeof(robj*)*argc);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
loadmod->path = sdsnew(path);
|
loadmod->path = sdsnew(path);
|
||||||
loadmod->argc = argc;
|
loadmod->argc = argc;
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
loadmod->argv[i] = sdsnew(argv[i]);
|
loadmod->argv[i] = createStringObject(argv[i],sdslen(argv[i]));
|
||||||
}
|
}
|
||||||
listAddNodeTail(server.loadmodule_queue,loadmod);
|
listAddNodeTail(server.loadmodule_queue,loadmod);
|
||||||
}
|
}
|
||||||
|
10
src/module.c
10
src/module.c
@ -3011,16 +3011,12 @@ void moduleCommand(client *c) {
|
|||||||
char *subcmd = c->argv[1]->ptr;
|
char *subcmd = c->argv[1]->ptr;
|
||||||
|
|
||||||
if (!strcasecmp(subcmd,"load") && c->argc >= 3) {
|
if (!strcasecmp(subcmd,"load") && c->argc >= 3) {
|
||||||
sds *argv = NULL;
|
robj **argv = NULL;
|
||||||
int argc = 0;
|
int argc = 0;
|
||||||
int i;
|
|
||||||
|
|
||||||
if (c->argc > 3) {
|
if (c->argc > 3) {
|
||||||
argc = c->argc - 3;
|
argc = c->argc - 3;
|
||||||
argv = zmalloc(sizeof(sds)*argc);
|
argv = &c->argv[3];
|
||||||
for (i=0; i<argc; i++) {
|
|
||||||
argv[i] = (sds) c->argv[i+3]->ptr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (moduleLoad(c->argv[2]->ptr,(void **)argv,argc) == C_OK)
|
if (moduleLoad(c->argv[2]->ptr,(void **)argv,argc) == C_OK)
|
||||||
@ -3028,8 +3024,6 @@ void moduleCommand(client *c) {
|
|||||||
else
|
else
|
||||||
addReplyError(c,
|
addReplyError(c,
|
||||||
"Error loading the extension. Please check the server logs.");
|
"Error loading the extension. Please check the server logs.");
|
||||||
if (argv)
|
|
||||||
zfree(argv);
|
|
||||||
} else if (!strcasecmp(subcmd,"unload") && c->argc == 3) {
|
} else if (!strcasecmp(subcmd,"unload") && c->argc == 3) {
|
||||||
if (moduleUnload(c->argv[2]->ptr) == C_OK)
|
if (moduleUnload(c->argv[2]->ptr) == C_OK)
|
||||||
addReply(c,shared.ok);
|
addReply(c,shared.ok);
|
||||||
|
@ -686,7 +686,7 @@ struct saveparam {
|
|||||||
struct loadmodule {
|
struct loadmodule {
|
||||||
sds path;
|
sds path;
|
||||||
int argc;
|
int argc;
|
||||||
sds argv[];
|
robj *argv[];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sharedObjectsStruct {
|
struct sharedObjectsStruct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user