Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-01-05 | Improve redisAppendCommandArgv performance | michael-grunder | |
OK, perhaps the second time is a charm. I forgot that I had hiredis forked from a long time ago, so the initial pull request was hosed. :) * Pulled in sdscatfmt() from Redis, and modified it to accept a size_t (%T) style format specifier. * Pulled in sdsll2str() and sdsull2str() from Redis (needed by sdscatfmt). * Added a new method, redisFormatSdsCommandArgv() which takes and sds* as the target, rather than char* (and uses sdscatfmt instead of sprintf for the construction). I get roughly the following improvement: Old: 1.044806 New: 0.481620 The benchmark code itself can be found here: https://gist.github.com/michael-grunder/c92ef31bb632b3d0ad81 Closes #260 | |||
2015-01-05 | Use stricter function argument types | Hang Su | |
'const' where we can. Closes #268 | |||
2015-01-05 | Free string if it is unused | Jan-Erik Rediger | |
If the string is already in the dict, we need to free this. Original fix by @tt33415366. Fixes #256 Closes #286 | |||
2014-04-09 | Fix const correctness | Pieter Noordhuis | |
2014-04-08 | Add ability to bind source address on connect | Matt Stancliff | |
Some environments require binding to specific source addresses instead of letting the system determine which IP a connection should originate from. Closes #233 | |||
2014-04-08 | Fix potential undefined struct read | Matt Stancliff | |
All the assignments to cb are inside conditionals, so it's vaguely possible it never gets initialized before we try to read from it with (cb.fn == NULL). Condition discovered with scan-build. Closes #229 | |||
2014-04-08 | Remove possiblity of multiple close on same fd | Matt Stancliff | |
With all the async connects and disconnects and error handling going on in hiredis, we need to centralize how we close our fd and set it so it doesn't get re-closed. Prior to this commit, sometimes we'd close(fd), run an async error handler, then call close(fd) again. To stop multiple closes, we now set fd to -1 after we free it, but that requires not passing fd as an independent argument to functions. This commit moves all fd usage to c->fd. Since the context has a fd field and all functions receive the context, it makes more sense to use the fd inside of c instead of passing along fd as an independent argument. Also, by only using c->fd, we can set c->fd after we close it to signify we shouldn't re-close the same fd again. This does change one semi-public interface function redisCheckSocketError() to only take (context) instead of (context, fd). A search on github returned zero occasions of people using redisCheckSocketError() outside of net.{c,h} in hiredis itself. Commit inspired by the bug report at: https://groups.google.com/forum/#!topic/redis-db/mQm46XkIPOY Thanks go out to Thijs for trying high-frequency reconnects on a host that isn't there. Closes #230 | |||
2014-01-15 | async.c: avoid a NULL deref when redisAsyncInitialize returns NULL | Charlie Somerville | |
2013-07-10 | Fix const-related compiler errors | Pieter Noordhuis | |
2013-07-10 | Merge pull request #132 from nwmcsween/constify | Pieter Noordhuis | |
constify: constify some variables / functions | |||
2013-01-22 | Prevent AsyncConnect from crashing on memory allocation failures. | Henri Doreau | |
2013-01-22 | Made connect functions return NULL on alloc failures. | Henri Doreau | |
Updated documentation and examples accordingly. | |||
2012-11-12 | constify: constify some variables / functions | Nathan McSween | |
2012-07-31 | Spontaneous error reply can always happen | Pieter Noordhuis | |
2012-07-11 | async: support for determining monitor mode, if so, repush replies callback ↵ | Alex Leverington | |
in expectation of another reply. | |||
2011-07-10 | Include stdlib.h in async.c for free(3), realloc(3) and strtol(3) support | R. Tyler Croy | |
2011-06-27 | Change prototype of connect callback | Pieter Noordhuis | |
This commit adds a status argument to the connect callback. It will be called in the event of an unsuccessful connection as well, where the status argument is set to REDIS_ERR. It is set to REDIS_OK otherwise. | |||
2011-06-27 | Use macro's for event loop hooks | Pieter Noordhuis | |
2011-06-18 | Remove private feature macros for Solaris from compiler flags | Pieter Noordhuis | |
2011-05-29 | Clarify rationale behind issue #43 | Pieter Noordhuis | |
2011-05-24 | Make sure subscribe is still respected | Blake Matheny | |
2011-05-24 | Fix the case where an error reply is received before any callbacks are ↵ | Blake Matheny | |
registered | |||
2011-04-21 | Update license | Pieter Noordhuis | |
2011-04-21 | Let the async API segfault on OOM for now | Pieter Noordhuis | |
2011-04-21 | Create protocol reader when creating context | Pieter Noordhuis | |
2011-01-14 | Make dictionary functions static and include the .c file | Pieter Noordhuis | |
2011-01-10 | strcasecmp and strncasecmp are defined in strings.h | Pierre Riteau | |
2010-12-31 | Unsubscribe messages always have 3 elements | Pieter Noordhuis | |
2010-12-31 | Clean up dictionaries on free | Pieter Noordhuis | |
2010-12-31 | Delegate pub/sub replies to the right callback | Pieter Noordhuis | |
2010-12-31 | Add callbacks to channel/pattern dictionaries | Pieter Noordhuis | |
2010-12-31 | Add fields for subscribed channel/pattern names | Pieter Noordhuis | |
2010-12-31 | Change reply processing code to prepare for pub/sub | Pieter Noordhuis | |
2010-12-31 | Copy entire callback in one call | Pieter Noordhuis | |
2010-12-29 | Scope event library related data and hooks to a struct | Pieter Noordhuis | |
2010-12-28 | Run pending callbacks with a NULL reply on redisAsyncFree() | Pieter Noordhuis | |
2010-12-28 | Fix the async free() and disconnect() functions | Pieter Noordhuis | |
To make sure that these functions can also be called from functions other than command callbacks, the flag IN_CALLBACK is introduced that holds whether the context is currently executing a callback. If so, redisAsyncFree() and redisAsyncDisconnect() should delegate their task to the reply processor to avoid segfaults. | |||
2010-12-28 | Only check REDIS_FREEING when a callback was executed | Pieter Noordhuis | |
2010-12-28 | Add function to explicitly free an async context | Pieter Noordhuis | |
2010-12-28 | Add write event after setting connect callback | Pieter Noordhuis | |
2010-12-16 | Add myself to license in some files | Pieter Noordhuis | |
2010-12-07 | Fire onConnect callback on the first write event | Pieter Noordhuis | |
2010-12-01 | Use extra field for adapter-specific data | Pieter Noordhuis | |
This makes sure that the "data" field on the asynchronous context can be used for user-specific data. | |||
2010-11-15 | Explicitly initialize struct fields to NULL | Pieter Noordhuis | |
2010-11-03 | Allow to connect using a unix socket from hiredis | Pieter Noordhuis | |
2010-11-02 | Change error reporting to have an explicit type | Pieter Noordhuis | |
When there is an I/O error, errno should be used to find out what is wrong. In other cases, errno cannot be used. So, use an explicit type in Hiredis to define the different error scenarios that can occur. | |||
2010-11-01 | Use existing function to append to the output buffer | Pieter Noordhuis | |
2010-11-01 | Only copy relevant fields from callback ptr to avoid copying garbage | Pieter Noordhuis | |
2010-11-01 | Make push/shift functions for callbacks responsible for malloc/free | Pieter Noordhuis | |
2010-11-01 | Run pending callbacks with NULL reply on error | Pieter Noordhuis | |