1. 07 9月, 2014 1 次提交
  2. 30 7月, 2014 1 次提交
  3. 25 6月, 2014 1 次提交
  4. 21 6月, 2014 1 次提交
    • A
      Client types generalized. · b6a26b52
      antirez 提交于
      Because of output buffer limits Redis internals had this idea of type of
      clients: normal, pubsub, slave. It is possible to set different output
      buffer limits for the three kinds of clients.
      
      However all the macros and API were named after output buffer limit
      classes, while the idea of a client type is a generic one that can be
      reused.
      
      This commit does two things:
      
      1) Rename the API and defines with more general names.
      2) Change the class of clients executing the MONITOR command from "slave"
         to "normal".
      
      "2" is a good idea because you want to have very special settings for
      slaves, that are not a good idea for MONITOR clients that are instead
      normal clients even if they are conceptually slave-alike (since it is a
      push protocol).
      
      The backward-compatibility breakage resulting from "2" is considered to
      be minimal to care, since MONITOR is a debugging command, and because
      anyway this change is not going to break the format or the behavior, but
      just when a connection is closed on big output buffer issues.
      b6a26b52
  5. 12 6月, 2014 1 次提交
  6. 17 4月, 2014 1 次提交
  7. 16 4月, 2014 1 次提交
  8. 25 3月, 2014 1 次提交
    • M
      Fix maxclients error handling · 611372fa
      Matt Stancliff 提交于
      Everywhere in the Redis code base, maxclients is treated
      as an int with (int)maxclients or `maxclients = atoi(source)`,
      so let's make maxclients an int.
      
      This fixes a bug where someone could specify a negative maxclients
      on startup and it would work (as well as set maxclients very high)
      because:
      
          unsigned int maxclients;
          char *update = "-300";
          maxclients = atoi(update);
          if (maxclients < 1) goto fail;
      
      But, (maxclients < 1) can only catch the case when maxclients
      is exactly 0.  maxclients happily sets itself to -300, which isn't
      -300, but rather 4294966996, which isn't < 1, so... everything
      "worked."
      
      maxclients config parsing checks for the case of < 1, but maxclients
      CONFIG SET parsing was checking for case of < 0 (allowing
      maxclients to be set to 0).  CONFIG SET parsing is now updated to
      match config parsing of < 1.
      
      It's tempting to add a MINIMUM_CLIENTS define, but... I didn't.
      
      These changes were inspired by antirez#356, but this doesn't
      fix that issue.
      611372fa
  9. 21 3月, 2014 1 次提交
  10. 11 3月, 2014 1 次提交
  11. 08 3月, 2014 1 次提交
  12. 05 3月, 2014 2 次提交
  13. 26 2月, 2014 1 次提交
  14. 18 2月, 2014 1 次提交
  15. 13 2月, 2014 1 次提交
  16. 06 2月, 2014 1 次提交
  17. 31 1月, 2014 2 次提交
  18. 28 1月, 2014 1 次提交
  19. 23 12月, 2013 1 次提交
    • A
      Fix CONFIG REWRITE handling of unknown options. · 4ad219ad
      antirez 提交于
      There were two problems with the implementation.
      
      1) "save" was not correctly processed when no save point was configured,
         as reported in issue #1416.
      2) The way the code checked if an option existed in the "processed"
         dictionary was wrong, as we add the element with as a key associated
         with a NULL value, so dictFetchValue() can't be used to check for
         existance, but dictFind() must be used, that returns NULL only if the
         entry does not exist at all.
      4ad219ad
  20. 19 12月, 2013 4 次提交
  21. 21 11月, 2013 3 次提交
  22. 04 10月, 2013 2 次提交
  23. 22 7月, 2013 1 次提交
  24. 18 7月, 2013 1 次提交
  25. 08 7月, 2013 1 次提交
  26. 02 7月, 2013 1 次提交
  27. 01 7月, 2013 1 次提交
  28. 26 6月, 2013 1 次提交
  29. 20 6月, 2013 1 次提交
  30. 01 6月, 2013 1 次提交
  31. 31 5月, 2013 1 次提交
  32. 30 5月, 2013 1 次提交