1. 29 Jul, 2020 2 commits
    • michael-grunder's avatar
      Update notes preparing for v1.0.0-rc1 · a8534675
      michael-grunder authored
      a8534675
    • 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
  2. 26 Jul, 2020 2 commits
  3. 21 Jul, 2020 1 commit
    • michael-grunder's avatar
      Fix a static analysis false positive · 3bb98531
      michael-grunder authored
      Static analyzer's can't tell that hi_calloc is calloc-like, and report a
      potential null pointer dereference.  This isn't possible but it's
      probably smarter to make the test anyway in the event code changes.
      3bb98531
  4. 20 Jul, 2020 4 commits
  5. 10 Jul, 2020 1 commit
  6. 09 Jul, 2020 2 commits
  7. 22 Jun, 2020 1 commit
  8. 19 Jun, 2020 1 commit
  9. 07 Jun, 2020 1 commit
  10. 01 Jun, 2020 1 commit
  11. 30 May, 2020 3 commits
  12. 26 May, 2020 1 commit
  13. 25 May, 2020 1 commit
  14. 24 May, 2020 1 commit
  15. 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
  16. 21 May, 2020 1 commit
  17. 20 May, 2020 1 commit
  18. 19 May, 2020 2 commits
  19. 16 May, 2020 1 commit
  20. 04 May, 2020 2 commits
  21. 23 Apr, 2020 2 commits
  22. 13 Apr, 2020 1 commit
  23. 10 Apr, 2020 1 commit
  24. 09 Apr, 2020 2 commits
  25. 07 Apr, 2020 2 commits
  26. 03 Apr, 2020 1 commit
    • Michael Grunder's avatar
      Win32 tests and timeout fix (#776) · cc9d0329
      Michael Grunder authored
      Unit tests in Windows and a Windows timeout fix
      
      This commit gets our unit tests compiling and running on Windows as well as removes a duplicated `timeval` -> `DWORD` conversion logic in sockcompat.c 
      
      There are minor differences in behavior between Linux and Windows to note:
      
      1.  In Windows, opening a non-existent hangs forever in WSAPoll whereas
          it correctly returns with a "Connection refused" error on Linux.
          For that reason, I simply skip this test in Windows.
      
          It may be related to this known issue:
          https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/
      
      2.  Timeouts are handled slightly differently in Windows and Linux.  
          In Linux, we intentionally set REDIS_ERR_IO for connection
          timeouts whereas in Windows we set REDIS_ERR_TIMEOUT.  It may be
          prudent to fix this discrepancy although there are almost certainly
          users relying on the current behavior.
      cc9d0329
  27. 02 Apr, 2020 1 commit