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
1b72f4b7
Commit
1b72f4b7
authored
Mar 05, 2020
by
lifubang
Browse files
add askpass mode
Signed-off-by:
lifubang
<
lifubang@acmcoder.com
>
parent
2b7b74ad
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/redis-cli.c
View file @
1b72f4b7
...
@@ -229,6 +229,7 @@ static struct config {
...
@@ -229,6 +229,7 @@ static struct config {
int
hotkeys
;
int
hotkeys
;
int
stdinarg
;
/* get last arg from stdin. (-x option) */
int
stdinarg
;
/* get last arg from stdin. (-x option) */
char
*
auth
;
char
*
auth
;
int
askpass
;
char
*
user
;
char
*
user
;
int
output
;
/* output mode, see OUTPUT_* defines */
int
output
;
/* output mode, see OUTPUT_* defines */
sds
mb_delim
;
sds
mb_delim
;
...
@@ -1450,6 +1451,8 @@ static int parseOptions(int argc, char **argv) {
...
@@ -1450,6 +1451,8 @@ static int parseOptions(int argc, char **argv) {
config
.
dbnum
=
atoi
(
argv
[
++
i
]);
config
.
dbnum
=
atoi
(
argv
[
++
i
]);
}
else
if
(
!
strcmp
(
argv
[
i
],
"--no-auth-warning"
))
{
}
else
if
(
!
strcmp
(
argv
[
i
],
"--no-auth-warning"
))
{
config
.
no_auth_warning
=
1
;
config
.
no_auth_warning
=
1
;
}
else
if
(
!
strcmp
(
argv
[
i
],
"--askpass"
))
{
config
.
askpass
=
1
;
}
else
if
((
!
strcmp
(
argv
[
i
],
"-a"
)
||
!
strcmp
(
argv
[
i
],
"--pass"
))
}
else
if
((
!
strcmp
(
argv
[
i
],
"-a"
)
||
!
strcmp
(
argv
[
i
],
"--pass"
))
&&
!
lastarg
)
&&
!
lastarg
)
{
{
...
@@ -1690,6 +1693,9 @@ static void usage(void) {
...
@@ -1690,6 +1693,9 @@ static void usage(void) {
" (if both are used, this argument takes predecence).
\n
"
" (if both are used, this argument takes predecence).
\n
"
" --user <username> Used to send ACL style 'AUTH username pass'. Needs -a.
\n
"
" --user <username> Used to send ACL style 'AUTH username pass'. Needs -a.
\n
"
" --pass <password> Alias of -a for consistency with the new --user option.
\n
"
" --pass <password> Alias of -a for consistency with the new --user option.
\n
"
" --askpass Force user to input password with mask from STDIN.
\n
"
" If this argument is used, '-a' and "
REDIS_CLI_AUTH_ENV
"
\n
"
" environment variable will be ignored.
\n
"
" -u <uri> Server URI.
\n
"
" -u <uri> Server URI.
\n
"
" -r <repeat> Execute specified command N times.
\n
"
" -r <repeat> Execute specified command N times.
\n
"
" -i <interval> When -r is used, waits <interval> seconds per command.
\n
"
" -i <interval> When -r is used, waits <interval> seconds per command.
\n
"
...
@@ -7858,6 +7864,13 @@ static void intrinsicLatencyMode(void) {
...
@@ -7858,6 +7864,13 @@ static void intrinsicLatencyMode(void) {
}
}
}
}
static
sds
askPassword
()
{
linenoiseMaskModeEnable
();
sds
auth
=
linenoise
(
"Please input password: "
);
linenoiseMaskModeDisable
();
return
auth
;
}
/*------------------------------------------------------------------------------
/*------------------------------------------------------------------------------
* Program main()
* Program main()
*--------------------------------------------------------------------------- */
*--------------------------------------------------------------------------- */
...
@@ -7894,6 +7907,7 @@ int main(int argc, char **argv) {
...
@@ -7894,6 +7907,7 @@ int main(int argc, char **argv) {
config
.
hotkeys
=
0
;
config
.
hotkeys
=
0
;
config
.
stdinarg
=
0
;
config
.
stdinarg
=
0
;
config
.
auth
=
NULL
;
config
.
auth
=
NULL
;
config
.
askpass
=
0
;
config
.
user
=
NULL
;
config
.
user
=
NULL
;
config
.
eval
=
NULL
;
config
.
eval
=
NULL
;
config
.
eval_ldb
=
0
;
config
.
eval_ldb
=
0
;
...
@@ -7935,6 +7949,10 @@ int main(int argc, char **argv) {
...
@@ -7935,6 +7949,10 @@ int main(int argc, char **argv) {
parseEnv
();
parseEnv
();
if
(
config
.
askpass
)
{
config
.
auth
=
askPassword
();
}
#ifdef USE_OPENSSL
#ifdef USE_OPENSSL
if
(
config
.
tls
)
{
if
(
config
.
tls
)
{
ERR_load_crypto_strings
();
ERR_load_crypto_strings
();
...
@@ -8044,4 +8062,4 @@ int main(int argc, char **argv) {
...
@@ -8044,4 +8062,4 @@ int main(int argc, char **argv) {
}
else
{
}
else
{
return
noninteractive
(
argc
,
convertToSds
(
argc
,
argv
));
return
noninteractive
(
argc
,
convertToSds
(
argc
,
argv
));
}
}
}
}
\ No newline at end of file
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