1. 08 Jul, 2013 11 commits
    • Geoff Garside's avatar
      Add missing includes for getpeername. · b39e827d
      Geoff Garside authored
      getpeername(2) requires <sys/socket.h> which on some systems also
      requires <sys/types.h>. Include both to avoid compilation warnings.
      b39e827d
    • Geoff Garside's avatar
      Add macro to define clusterNode.ip buffer size. · 9cfa02fe
      Geoff Garside authored
      Add REDIS_CLUSTER_IPLEN macro to define the size of the clusterNode ip
      character array. Additionally use this macro in inet_ntop(3) calls where
      the size of the array was being defined manually.
      
      The REDIS_CLUSTER_IPLEN is defined as INET_ADDRSTRLEN which defines the
      correct size of a buffer to store an IPv4 address in. The
      INET_ADDRSTRLEN macro itself is defined in the <netinet/in.h> header
      file and should be portable across the majority of systems.
      9cfa02fe
    • Geoff Garside's avatar
      Fix cluster.c inet_ntop use of sizeof(n->ip). · 6e894f02
      Geoff Garside authored
      Using sizeof with an array will only return expected results if the
      array is created in the scope of the function where sizeof is used. This
      commit changes the inet_ntop calls so that they use the fixed buffer
      value as defined in redis.h which is 16.
      6e894f02
    • Geoff Garside's avatar
      Use inet_pton(3) in clusterCommand. · 693b6405
      Geoff Garside authored
      Replace inet_aton(3) call with the more future proof inet_pton(3)
      function which is capable of handling additional address families.
      693b6405
    • Geoff Garside's avatar
      Use inet_ntop(3) in nodeIp2String & clusterCommand · a6ea707c
      Geoff Garside authored
      Replace inet_ntoa(3) calls with the more future proof inet_ntop(3)
      function which is capable of handling additional address families.
      a6ea707c
    • Geoff Garside's avatar
      Update anetTcpAccept & anetPeerToString calls. · f5494a42
      Geoff Garside authored
      Add the additional ip buffer length argument to function calls of
      anetTcpAccept and anetPeerToString in network.c and cluster.c
      f5494a42
    • Geoff Garside's avatar
      Use inet_ntop(3) in anet. #apichange · ef839f90
      Geoff Garside authored
      Replace inet_ntoa(3) calls with the more future proof inet_ntop(3)
      function which is capable of handling additional address families.
      
      API Change: anetTcpAccept() & anetPeerToString() additional argument
        additional argument required to specify the length of the character
        buffer the IP address is written to in order to comply with
        inet_ntop(3) function semantics.
      ef839f90
    • Geoff Garside's avatar
      Use getaddrinfo(3) in a anetTcpServer. · e0cb2435
      Geoff Garside authored
      Change anetTcpServer() function to use getaddrinfo(3) to perform
      address resolution, socket creation and binding. Resolved addresses
      are limited to those reachable by the AF_INET address family.
      e0cb2435
    • Geoff Garside's avatar
      Use getaddrinfo(3) in anetTcpGenericConnect. · 0e01ce1b
      Geoff Garside authored
      Change anetTcpGenericConnect() function to use getaddrinfo(3) to
      perform address resolution, socket creation and connection. Resolved
      addresses are limited to those reachable by the AF_INET family.
      0e01ce1b
    • Geoff Garside's avatar
      Add anetSetReuseAddr(err, fd) static function. · 580b7dce
      Geoff Garside authored
      Extract setting SO_REUSEADDR socket option into separate function
      so the same code can be more easily used by anetCreateSocket and
      other functions.
      580b7dce
    • Geoff Garside's avatar
      Use getaddrinfo(3) in anetResolve. #apichange · 071963c8
      Geoff Garside authored
      Change anetResolve() function to use getaddrinfo(3) to resolve hostnames.
      Resolved hostnames are limited to those reachable by the AF_INET address
      family.
      
      API Change: anetResolve requires additional argument.
        additional argument required to specify the length of the character
        buffer the IP address is written to in order to comply with
        inet_ntop(3) function semantics. inet_ntop(3) replaces inet_ntoa(3)
        as it has been designed to be compatible with more address families.
      071963c8
  2. 05 Jul, 2013 3 commits
  3. 04 Jul, 2013 4 commits
  4. 03 Jul, 2013 2 commits
    • antirez's avatar
      redis-cli: introduced --pipe-timeout. · 1135e9fa
      antirez authored
      When in --pipe mode, after all the data transfer to the server is
      complete, now redis-cli waits at max the specified amount of
      seconds (30 by default, use 0 to wait forever) without receiving any
      reply at all from the server. After this time limit the operation is
      aborted with an error.
      
      That's related to issue #681.
      1135e9fa
    • antirez's avatar
      redis-cli --pipe: send final ECHO in a safer way. · fbb97c6b
      antirez authored
      If the protocol read from stdin happened to contain grabage (invalid
      random chars), in the previous implementation it was possible to end
      with something like:
      
      dksfjdksjflskfjl*2\r\n$4\r\nECHO....
      
      That is invalid as the *2 should start into a new line. Now we prefix
      the ECHO with a CRLF that has no effects on the server but prevents this
      issues most of the times.
      
      Of course if the offending wrong sequence is something like:
      
      $3248772349\r\n
      
      No one is going to save us as Redis will wait for data in the context of
      a big argument, so this fix does not cover all the cases.
      
      This partially fixes issue #681.
      fbb97c6b
  5. 02 Jul, 2013 4 commits
  6. 28 Jun, 2013 2 commits
  7. 27 Jun, 2013 1 commit
  8. 26 Jun, 2013 2 commits
  9. 25 Jun, 2013 3 commits
  10. 24 Jun, 2013 3 commits
  11. 21 Jun, 2013 1 commit
    • antirez's avatar
      New API to force propagation. · 515a26bb
      antirez authored
      The old REDIS_CMD_FORCE_REPLICATION flag was removed from the
      implementation of Redis, now there is a new API to force specific
      executions of a command to be propagated to AOF / Replication link:
      
          void forceCommandPropagation(int flags);
      
      The new API is also compatible with Lua scripting, so a script that will
      execute commands that are forced to be propagated, will also be
      propagated itself accordingly even if no change to data is operated.
      
      As a side effect, this new design fixes the issue with scripts not able
      to propagate PUBLISH to slaves (issue #873).
      515a26bb
  12. 20 Jun, 2013 4 commits