1. 15 Aug, 2020 1 commit
    • michael-grunder's avatar
      Rename sds calls so they don't conflict in Redis. · 00272d66
      michael-grunder authored
      Hiredis and Redis both contain the sds library which can cause hard to
      debug issues when there are ABI mismatches between the two copies.
      
      This recently happened when merging v1.0.0 into Redis because Hiredis
      updated sdsrange to return a value.  When called from within Redis, this
      abi mismatch caused random failures.
      
      It's not the prettiest fix, but this commit simply renames the sds
      types/functions in hiredis so they can't conflict with those built in
      redis.
      
      Additionally we create an 'sdscompat.h' helper header to map the old
      symbol names to their hi_ variants.
      00272d66
  2. 29 Jul, 2020 1 commit
    • Michael Grunder's avatar
      Move SSL management to a distinct private pointer. (#855) · d8ff7238
      Michael Grunder authored
      We need to allow our users to use redisContext->privdata as context
      for any RESP3 PUSH messages, which means we can't use it for managing
      SSL connections.
      
      Bulletpoints:
      
      * Create a secondary redisContext member for internal use only called
        privctx and rename the redisContextFuncs->free_privdata accordingly.
      
      * Adds a `free_privdata` function pointer so the user can tie allocated
        memory to the lifetime of a redisContext (like they can already do
        with redisAsyncContext)
      
      * Enables SSL tests in .travis.yml
      d8ff7238
  3. 09 Jul, 2020 1 commit
  4. 07 Jun, 2020 1 commit
  5. 30 May, 2020 1 commit
  6. 24 May, 2020 1 commit
  7. 22 May, 2020 1 commit
    • Michael Grunder's avatar
      Allow users to replace allocator and handle OOM everywhere. (#800) · 8e0264cf
      Michael Grunder authored
      * Adds an indirection to every allocation/deallocation to allow users to 
        plug in ones of their choosing (use custom functions, jemalloc, etc).
      
      * Gracefully handle OOM everywhere in hiredis.  This should make it possible
        for users of the library to have more flexibility in how they handle such situations.
      
      * Changes `redisReaderTask->elements` from an `int` to a `long long` to prevent
        a possible overflow when transferring the task elements into a `redisReply`.
      
      * Adds a configurable `max elements` member to `redisReader` that defaults to
        2^32 - 1.  This can be set to "unlimited" by setting the value to zero.
      8e0264cf
  8. 09 Apr, 2020 1 commit
  9. 28 Jan, 2020 1 commit
  10. 25 Nov, 2019 1 commit
  11. 16 Sep, 2019 1 commit
  12. 01 Sep, 2019 1 commit
  13. 29 Aug, 2019 2 commits
  14. 25 Aug, 2019 1 commit
  15. 22 Aug, 2019 1 commit
  16. 13 Aug, 2019 1 commit
  17. 11 Apr, 2019 1 commit
  18. 20 Feb, 2019 6 commits