1. 07 Oct, 2019 1 commit
    • Yossi Gottlieb's avatar
      TLS: Connections refactoring and TLS support. · b087dd1d
      Yossi Gottlieb authored
      * Introduce a connection abstraction layer for all socket operations and
      integrate it across the code base.
      * Provide an optional TLS connections implementation based on OpenSSL.
      * Pull a newer version of hiredis with TLS support.
      * Tests, redis-cli updates for TLS support.
      b087dd1d
  2. 07 Jul, 2019 1 commit
  3. 29 Jun, 2019 1 commit
  4. 07 May, 2019 1 commit
  5. 06 May, 2019 1 commit
  6. 07 Mar, 2019 1 commit
    • Brad Solomon's avatar
      Provide an uninstall target in Makefile · d5b24d31
      Brad Solomon authored
      On `make uninstall`, removes:
      
      - /usr/local/bin/redis-benchmark
      - /usr/local/bin/redis-check-aof
      - /usr/local/bin/redis-check-rdb
      - /usr/local/bin/redis-cli
      - /usr/local/bin/redis-sentinel
      - /usr/local/bin/redis-server
      
      (Only the src/ versions are removed in `make clean`)
      d5b24d31
  7. 01 Mar, 2019 1 commit
  8. 21 Feb, 2019 1 commit
  9. 09 Jan, 2019 1 commit
  10. 25 Nov, 2018 2 commits
  11. 11 Nov, 2018 1 commit
  12. 08 Nov, 2018 1 commit
  13. 31 Oct, 2018 1 commit
  14. 30 Oct, 2018 3 commits
  15. 19 Oct, 2018 1 commit
  16. 14 Sep, 2018 1 commit
  17. 12 Sep, 2018 1 commit
  18. 04 Jul, 2018 1 commit
  19. 25 May, 2018 2 commits
  20. 23 Apr, 2018 2 commits
  21. 10 Apr, 2018 1 commit
  22. 15 Mar, 2018 1 commit
  23. 22 Feb, 2018 1 commit
  24. 01 Dec, 2017 1 commit
  25. 10 Jul, 2017 1 commit
  26. 05 Jul, 2017 1 commit
  27. 03 Jul, 2017 1 commit
  28. 26 Jun, 2017 1 commit
  29. 10 May, 2017 1 commit
    • antirez's avatar
      Modules TSC: use atomic var for server.unixtime. · 1f598fc2
      antirez authored
      This avoids Helgrind complaining, but we are actually not using
      atomicGet() to get the unixtime value for now: too many places where it
      is used and given tha time_t is word-sized it should be safe in all the
      archs we support as it is.
      
      On the other hand, Helgrind, when Redis is compiled with "make helgrind"
      in order to force the __sync macros, will detect the write in
      updateCachedTime() as a read (because atomic functions are used) and
      will not complain about races.
      
      This commit also includes minor refactoring of mutex initializations and
      a "helgrind" target in the Makefile.
      1f598fc2
  30. 17 Apr, 2017 1 commit
  31. 27 Mar, 2017 1 commit
  32. 23 Feb, 2017 1 commit
  33. 20 Feb, 2017 2 commits
    • antirez's avatar
      84fa8230
    • antirez's avatar
      Use SipHash hash function to mitigate HashDos attempts. · adeed29a
      antirez authored
      This change attempts to switch to an hash function which mitigates
      the effects of the HashDoS attack (denial of service attack trying
      to force data structures to worst case behavior) while at the same time
      providing Redis with an hash function that does not expect the input
      data to be word aligned, a condition no longer true now that sds.c
      strings have a varialbe length header.
      
      Note that it is possible sometimes that even using an hash function
      for which collisions cannot be generated without knowing the seed,
      special implementation details or the exposure of the seed in an
      indirect way (for example the ability to add elements to a Set and
      check the return in which Redis returns them with SMEMBERS) may
      make the attacker's life simpler in the process of trying to guess
      the correct seed, however the next step would be to switch to a
      log(N) data structure when too many items in a single bucket are
      detected: this seems like an overkill in the case of Redis.
      
      SPEED REGRESION TESTS:
      
      In order to verify that switching from MurmurHash to SipHash had
      no impact on speed, a set of benchmarks involving fast insertion
      of 5 million of keys were performed.
      
      The result shows Redis with SipHash in high pipelining conditions
      to be about 4% slower compared to using the previous hash function.
      However this could partially be related to the fact that the current
      implementation does not attempt to hash whole words at a time but
      reads single bytes, in order to have an output which is endian-netural
      and at the same time working on systems where unaligned memory accesses
      are a problem.
      
      Further X86 specific optimizations should be tested, the function
      may easily get at the same level of MurMurHash2 if a few optimizations
      are performed.
      adeed29a
  34. 19 Feb, 2017 1 commit
    • Salvatore Sanfilippo's avatar
      ARM: Use libc malloc by default. · 4e9cf4cc
      Salvatore Sanfilippo authored
      I'm not sure how much test Jemalloc gets on ARM, moreover
      compiling Redis with Jemalloc support in not very powerful
      devices, like most ARMs people will build Redis on, is extremely
      slow. It is possible to enable Jemalloc build anyway if needed
      by using "make MALLOC=jemalloc".
      4e9cf4cc