There is no longer need for a separate redisDisconnect

This commit is contained in:
Pieter Noordhuis 2010-11-01 14:20:51 +01:00
parent 30a9f8f271
commit 5fa8d30599
3 changed files with 10 additions and 7 deletions

View File

@ -107,6 +107,15 @@ Note that this function will take care of freeing sub-replies objects
contained in arrays and nested arrays, so there is no need for the user to contained in arrays and nested arrays, so there is no need for the user to
free the sub replies (it is actually harmful and will corrupt the memory). free the sub replies (it is actually harmful and will corrupt the memory).
### Cleaning up
To disconnect and free the context the following function can be used:
void redisFree(redisContext *c);
This function immediately closes the socket and then free's the allocations done in
creating the context.
### Sending commands (cont'd) ### Sending commands (cont'd)
Together with `redisCommand`, the function `redisCommandArgv` can be used to issue commands. Together with `redisCommand`, the function `redisCommandArgv` can be used to issue commands.

View File

@ -642,15 +642,10 @@ static redisContext *redisContextInit() {
return c; return c;
} }
void redisDisconnect(redisContext *c) {
close(c->fd);
c->flags &= ~REDIS_CONNECTED;
}
void redisFree(redisContext *c) { void redisFree(redisContext *c) {
/* Disconnect before free'ing if not yet disconnected. */ /* Disconnect before free'ing if not yet disconnected. */
if (c->flags & REDIS_CONNECTED) if (c->flags & REDIS_CONNECTED)
redisDisconnect(c); close(c->fd);
if (c->error != NULL) if (c->error != NULL)
sdsfree(c->error); sdsfree(c->error);
if (c->obuf != NULL) if (c->obuf != NULL)

View File

@ -112,7 +112,6 @@ int redisFormatCommandArgv(char **target, int argc, const char **argv, const siz
redisContext *redisConnect(const char *ip, int port); redisContext *redisConnect(const char *ip, int port);
redisContext *redisConnectNonBlock(const char *ip, int port); redisContext *redisConnectNonBlock(const char *ip, int port);
int redisSetReplyObjectFunctions(redisContext *c, redisReplyObjectFunctions *fn); int redisSetReplyObjectFunctions(redisContext *c, redisReplyObjectFunctions *fn);
void redisDisconnect(redisContext *c);
void redisFree(redisContext *c); void redisFree(redisContext *c);
int redisBufferRead(redisContext *c); int redisBufferRead(redisContext *c);
int redisBufferWrite(redisContext *c, int *done); int redisBufferWrite(redisContext *c, int *done);