Allow connectWithOptions for async as well
This commit is contained in:
parent
35a0a1f369
commit
deba8d956d
52
async.c
52
async.c
@ -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) {
|
||||||
redisContext *c = redisConnectBindNonBlock(ip,port,source_addr);
|
redisOptions 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) {
|
||||||
|
1
async.h
1
async.h
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user