]> git.saurik.com Git - redis.git/commitdiff
Merge master with resolved conflict in src/redis-cli.c
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Wed, 13 Oct 2010 16:55:46 +0000 (18:55 +0200)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Wed, 13 Oct 2010 16:55:46 +0000 (18:55 +0200)
1  2 
src/aof.c
src/config.c
src/networking.c
src/rdb.c
src/redis-benchmark.c
src/redis-cli.c
src/redis.c
src/redis.h

diff --cc src/aof.c
Simple merge
diff --cc src/config.c
Simple merge
Simple merge
diff --cc src/rdb.c
Simple merge
Simple merge
diff --cc src/redis-cli.c
index 4dafba325905544ec03e5dbf63b3f2f7e34d8b35,5071604b871112b23b0acdb3a7abd40881dc89b1..8866678b206c1876d4709905188a4dd9f4d4b6c9
  static struct config {
      char *hostip;
      int hostport;
 +    char *hostsocket;
      long repeat;
      int dbnum;
-     int argn_from_stdin;
      int interactive;
      int shutdown;
      int monitor_mode;
@@@ -72,22 -77,11 +78,19 @@@ static int cliConnect(int force) 
      char err[ANET_ERR_LEN];
      static int fd = ANET_ERR;
  
-     if (fd == ANET_ERR) {
+     if (fd == ANET_ERR || force) {
+         if (force) close(fd);
 -        fd = anetTcpConnect(err,config.hostip,config.hostport);
 +        if (config.hostsocket == NULL) {
 +            fd = anetTcpConnect(err,config.hostip,config.hostport);
 +        } else {
 +            fd = anetUnixConnect(err,config.hostsocket);
-             if (fd == ANET_ERR) {
-                 fprintf(stderr, "Could not connect to Redis at %s: %s", config.hostsocket, err);
-                 return -1;
-             }
 +        }
          if (fd == ANET_ERR) {
 -            fprintf(stderr, "Could not connect to Redis at %s:%d: %s", config.hostip, config.hostport, err);
 +            fprintf(stderr,"Could not connect to Redis at ");
 +            if (config.hostsocket == NULL)
 +                fprintf(stderr,"%s:%d: %s",config.hostip,config.hostport,err);
 +            else
 +                fprintf(stderr,"%s: %s",config.hostsocket,err);
              return -1;
          }
          anetTcpNoDelay(NULL,fd);
@@@ -361,10 -391,9 +403,9 @@@ static sds readArgFromStdin(void) 
  }
  
  static void usage() {
 -    fprintf(stderr, "usage: redis-cli [-iv] [-h host] [-p port] [-a authpw] [-r repeat_times] [-n db_num] cmd arg1 arg2 arg3 ... argN\n");
 +    fprintf(stderr, "usage: redis-cli [-iv] [-h host] [-p port] [-s /path/to/socket] [-a authpw] [-r repeat_times] [-n db_num] cmd arg1 arg2 arg3 ... argN\n");
-     fprintf(stderr, "usage: echo \"argN\" | redis-cli -c [-h host] [-p port] [-s /path/to/socket] [-a authpw] [-r repeat_times] [-n db_num] cmd arg1 arg2 ... arg(N-1)\n");
-     fprintf(stderr, "\nIf a pipe from standard input is detected this data is used as last argument.\n\n");
-     fprintf(stderr, "example: cat /etc/passwd | redis-cli set my_passwd\n");
+     fprintf(stderr, "usage: echo \"argN\" | redis-cli -x [options] cmd arg1 arg2 ... arg(N-1)\n\n");
+     fprintf(stderr, "example: cat /etc/passwd | redis-cli -x set my_passwd\n");
      fprintf(stderr, "example: redis-cli get my_passwd\n");
      fprintf(stderr, "example: redis-cli -r 100 lpush mylist x\n");
      fprintf(stderr, "\nRun in interactive mode: redis-cli -i or just don't pass any command\n");
@@@ -480,13 -474,10 +486,11 @@@ int main(int argc, char **argv) 
  
      config.hostip = "127.0.0.1";
      config.hostport = 6379;
 +    config.hostsocket = NULL;
      config.repeat = 1;
      config.dbnum = 0;
-     config.argn_from_stdin = 0;
-     config.shutdown = 0;
      config.interactive = 0;
+     config.shutdown = 0;
      config.monitor_mode = 0;
      config.pubsub_mode = 0;
      config.raw_output = 0;
diff --cc src/redis.c
Simple merge
diff --cc src/redis.h
index 38f0c140c5feaa3a505fb7f11765fa16e715c92e,3e9fc2369cdfacf9f3f3536be582b22c34791fba..8e05a4d4e826a1ad1a1b74defed63dee2653a798
@@@ -329,12 -338,10 +338,13 @@@ struct sharedObjectsStruct 
  struct redisServer {
      pthread_t mainthread;
      int port;
 -    int fd;
 +    char *bindaddr;
 +    char *unixsocket;
 +    int ipfd;
 +    int sofd;
      redisDb *db;
      long long dirty;            /* changes to DB from the last save */
+     long long dirty_before_bgsave; /* used to restore dirty on failed BGSAVE */
      list *clients;
      list *slaves, *monitors;
      char neterr[ANET_ERR_LEN];
@@@ -577,10 -595,11 +597,12 @@@ void resetClient(redisClient *c)
  void sendReplyToClient(aeEventLoop *el, int fd, void *privdata, int mask);
  void sendReplyToClientWritev(aeEventLoop *el, int fd, void *privdata, int mask);
  void addReply(redisClient *c, robj *obj);
+ void *addDeferredMultiBulkLength(redisClient *c);
+ void setDeferredMultiBulkLength(redisClient *c, void *node, long length);
  void addReplySds(redisClient *c, sds s);
  void processInputBuffer(redisClient *c);
 -void acceptHandler(aeEventLoop *el, int fd, void *privdata, int mask);
 +void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask);
 +void acceptUnixHandler(aeEventLoop *el, int fd, void *privdata, int mask);
  void readQueryFromClient(aeEventLoop *el, int fd, void *privdata, int mask);
  void addReplyBulk(redisClient *c, robj *obj);
  void addReplyBulkCString(redisClient *c, char *s);