Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
694145bd
Commit
694145bd
authored
May 24, 2018
by
antirez
Browse files
Merge branch 'unstable' of github.com:/antirez/redis into unstable
parents
4e729fcd
b23a5011
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/Makefile
View file @
694145bd
...
...
@@ -39,7 +39,7 @@ endif
endif
# To get ARM stack traces if Redis crashes we need a special C flag.
ifneq
(,$(fi
ndstring
armv,$(uname_M)))
ifneq
(,$(fi
lter aarch64
armv,$(uname_M)))
CFLAGS
+=
-funwind-tables
endif
...
...
src/debug.c
View file @
694145bd
...
...
@@ -688,6 +688,8 @@ static void *getMcontextEip(ucontext_t *uc) {
return
(
void
*
)
uc
->
uc_mcontext
.
sc_ip
;
#elif defined(__arm__)
/* Linux ARM */
return
(
void
*
)
uc
->
uc_mcontext
.
arm_pc
;
#elif defined(__aarch64__)
/* Linux AArch64 */
return
(
void
*
)
uc
->
uc_mcontext
.
pc
;
#endif
#else
return
NULL
;
...
...
src/redis-cli.c
View file @
694145bd
...
...
@@ -1058,7 +1058,7 @@ static int cliReadReply(int output_raw_strings) {
return REDIS_OK;
}
static int cliSendCommand(int argc, char **argv,
int
repeat) {
static int cliSendCommand(int argc, char **argv,
long
repeat) {
char *command = argv[0];
size_t *argvlen;
int j, output_raw;
...
...
@@ -1121,7 +1121,7 @@ static int cliSendCommand(int argc, char **argv, int repeat) {
for (j = 0; j < argc; j++)
argvlen[j] = sdslen(argv[j]);
while(repeat--) {
while(repeat--
> 0
) {
redisAppendCommandArgv(context,argc,(const char**)argv,argvlen);
while (config.monitor_mode) {
if (cliReadReply(output_raw) != REDIS_OK) exit(1);
...
...
@@ -1229,6 +1229,7 @@ static int parseOptions(int argc, char **argv) {
} else if (!strcmp(argv[i],"-n") && !lastarg) {
config.dbnum = atoi(argv[++i]);
} else if (!strcmp(argv[i],"-a") && !lastarg) {
fputs("Warning: Using a password with '-a' option on the command line interface may not be safe.\n", stderr);
config.auth = argv[++i];
} else if (!strcmp(argv[i],"-u") && !lastarg) {
parseRedisUri(argv[++i]);
...
...
@@ -1621,9 +1622,35 @@ static void repl(void) {
cliRefreshPrompt();
while((line = linenoise(context ? config.prompt : "not connected> ")) != NULL) {
if (line[0] != '\0') {
long repeat = 1;
int skipargs = 0;
char *endptr = NULL;
argv = cliSplitArgs(line,&argc);
if (history) linenoiseHistoryAdd(line);
if (historyfile) linenoiseHistorySave(historyfile);
/* check if we have a repeat command option and
* need to skip the first arg */
if (argv && argc > 0) {
errno = 0;
repeat = strtol(argv[0], &endptr, 10);
if (argc > 1 && *endptr == '\0') {
if (errno == ERANGE || errno == EINVAL || repeat <= 0) {
fputs("Invalid redis-cli repeat command option value.\n", stdout);
sdsfreesplitres(argv, argc);
linenoiseFree(line);
continue;
}
skipargs = 1;
} else {
repeat = 1;
}
}
/* Won't save auth command in history file */
if (!(argv && argc > 0 && !strcasecmp(argv[0+skipargs], "auth"))) {
if (history) linenoiseHistoryAdd(line);
if (historyfile) linenoiseHistorySave(historyfile);
}
if (argv == NULL) {
printf("Invalid argument(s)\n");
...
...
@@ -1636,6 +1663,8 @@ static void repl(void) {
exit(0);
} else if (argv[0][0] == ':') {
cliSetPreferences(argv,argc,1);
sdsfreesplitres(argv,argc);
linenoiseFree(line);
continue;
} else if (strcasecmp(argv[0],"restart") == 0) {
if (config.eval) {
...
...
@@ -1655,15 +1684,6 @@ static void repl(void) {
linenoiseClearScreen();
} else {
long long start_time = mstime(), elapsed;
int repeat, skipargs = 0;
char *endptr;
repeat = strtol(argv[0], &endptr, 10);
if (argc > 1 && *endptr == '\0' && repeat) {
skipargs = 1;
} else {
repeat = 1;
}
issueCommandRepeat(argc-skipargs, argv+skipargs, repeat);
...
...
src/t_stream.c
View file @
694145bd
...
...
@@ -1073,7 +1073,7 @@ void xaddCommand(client *c) {
int
field_pos
=
i
+
1
;
/* Check arity. */
if
((
c
->
argc
-
field_pos
)
<
2
||
(
c
->
argc
-
field_pos
%
2
)
==
1
)
{
if
((
c
->
argc
-
field_pos
)
<
2
||
(
(
c
->
argc
-
field_pos
)
%
2
)
==
1
)
{
addReplyError
(
c
,
"wrong number of arguments for XADD"
);
return
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment