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
hiredis
Commits
deba8d95
Commit
deba8d95
authored
Dec 06, 2018
by
Mark Nunberg
Browse files
Allow connectWithOptions for async as well
parent
35a0a1f3
Changes
2
Hide whitespace changes
Inline
Side-by-side
async.c
View file @
deba8d95
...
@@ -168,56 +168,52 @@ static void __redisAsyncCopyError(redisAsyncContext *ac) {
...
@@ -168,56 +168,52 @@ static void __redisAsyncCopyError(redisAsyncContext *ac) {
ac
->
errstr
=
c
->
errstr
;
ac
->
errstr
=
c
->
errstr
;
}
}
redisAsyncContext
*
redisAsyncConnect
(
const
char
*
ip
,
int
port
)
{
redisAsyncContext
*
redisAsyncConnectWithOptions
(
const
redisOptions
*
options
)
{
redisOptions
myOptions
=
*
options
;
redisContext
*
c
;
redisContext
*
c
;
redisAsyncContext
*
ac
;
redisAsyncContext
*
ac
;
c
=
redisConnectNonBlock
(
ip
,
port
);
myOptions
.
options
|=
REDIS_OPT_NONBLOCK
;
if
(
c
==
NULL
)
c
=
redisConnectWithOptions
(
&
myOptions
);
if
(
c
==
NULL
)
{
return
NULL
;
return
NULL
;
}
ac
=
redisAsyncInitialize
(
c
);
ac
=
redisAsyncInitialize
(
c
);
if
(
ac
==
NULL
)
{
if
(
ac
==
NULL
)
{
redisFree
(
c
);
redisFree
(
c
);
return
NULL
;
return
NULL
;
}
}
__redisAsyncCopyError
(
ac
);
__redisAsyncCopyError
(
ac
);
return
ac
;
return
ac
;
}
}
redisAsyncContext
*
redisAsyncConnect
(
const
char
*
ip
,
int
port
)
{
redisOptions
options
=
{
0
};
REDIS_OPTIONS_SET_TCP
(
&
options
,
ip
,
port
);
return
redisAsyncConnectWithOptions
(
&
options
);
}
redisAsyncContext
*
redisAsyncConnectBind
(
const
char
*
ip
,
int
port
,
redisAsyncContext
*
redisAsyncConnectBind
(
const
char
*
ip
,
int
port
,
const
char
*
source_addr
)
{
const
char
*
source_addr
)
{
redis
Context
*
c
=
redisConnectBindNonBlock
(
ip
,
port
,
source_addr
)
;
redis
Options
options
=
{
0
}
;
redisAsyncContext
*
ac
=
redisAsyncInitialize
(
c
);
REDIS_OPTIONS_SET_TCP
(
&
options
,
ip
,
port
);
__redisAsyncCopyError
(
ac
)
;
options
.
endpoint
.
tcp
.
source_addr
=
source_addr
;
return
ac
;
return
redisAsyncConnectWithOptions
(
&
options
)
;
}
}
redisAsyncContext
*
redisAsyncConnectBindWithReuse
(
const
char
*
ip
,
int
port
,
redisAsyncContext
*
redisAsyncConnectBindWithReuse
(
const
char
*
ip
,
int
port
,
const
char
*
source_addr
)
{
const
char
*
source_addr
)
{
redisContext
*
c
=
redisConnectBindNonBlockWithReuse
(
ip
,
port
,
source_addr
);
redisOptions
options
=
{
0
};
redisAsyncContext
*
ac
=
redisAsyncInitialize
(
c
);
REDIS_OPTIONS_SET_TCP
(
&
options
,
ip
,
port
);
__redisAsyncCopyError
(
ac
);
options
.
options
|=
REDIS_OPT_REUSEADDR
;
return
ac
;
options
.
endpoint
.
tcp
.
source_addr
=
source_addr
;
return
redisAsyncConnectWithOptions
(
&
options
);
}
}
redisAsyncContext
*
redisAsyncConnectUnix
(
const
char
*
path
)
{
redisAsyncContext
*
redisAsyncConnectUnix
(
const
char
*
path
)
{
redisContext
*
c
;
redisOptions
options
=
{
0
};
redisAsyncContext
*
ac
;
REDIS_OPTIONS_SET_UNIX
(
&
options
,
path
);
return
redisAsyncConnectWithOptions
(
&
options
);
c
=
redisConnectUnixNonBlock
(
path
);
if
(
c
==
NULL
)
return
NULL
;
ac
=
redisAsyncInitialize
(
c
);
if
(
ac
==
NULL
)
{
redisFree
(
c
);
return
NULL
;
}
__redisAsyncCopyError
(
ac
);
return
ac
;
}
}
int
redisAsyncSetConnectCallback
(
redisAsyncContext
*
ac
,
redisConnectCallback
*
fn
)
{
int
redisAsyncSetConnectCallback
(
redisAsyncContext
*
ac
,
redisConnectCallback
*
fn
)
{
...
...
async.h
View file @
deba8d95
...
@@ -108,6 +108,7 @@ typedef struct redisAsyncContext {
...
@@ -108,6 +108,7 @@ typedef struct redisAsyncContext {
}
redisAsyncContext
;
}
redisAsyncContext
;
/* Functions that proxy to hiredis */
/* Functions that proxy to hiredis */
redisAsyncContext
*
redisAsyncConnectWithOptions
(
const
redisOptions
*
options
);
redisAsyncContext
*
redisAsyncConnect
(
const
char
*
ip
,
int
port
);
redisAsyncContext
*
redisAsyncConnect
(
const
char
*
ip
,
int
port
);
redisAsyncContext
*
redisAsyncConnectBind
(
const
char
*
ip
,
int
port
,
const
char
*
source_addr
);
redisAsyncContext
*
redisAsyncConnectBind
(
const
char
*
ip
,
int
port
,
const
char
*
source_addr
);
redisAsyncContext
*
redisAsyncConnectBindWithReuse
(
const
char
*
ip
,
int
port
,
redisAsyncContext
*
redisAsyncConnectBindWithReuse
(
const
char
*
ip
,
int
port
,
...
...
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