]> git.saurik.com Git - redis.git/commitdiff
Merge remote branch 'pietern/unixsocket'
authorantirez <antirez@gmail.com>
Tue, 2 Nov 2010 22:47:52 +0000 (23:47 +0100)
committerantirez <antirez@gmail.com>
Tue, 2 Nov 2010 22:47:52 +0000 (23:47 +0100)
1  2 
redis.conf
src/aof.c
src/config.c
src/networking.c
src/redis-benchmark.c
src/redis-cli.c
src/redis.c
src/redis.h

diff --cc redis.conf
Simple merge
diff --cc src/aof.c
Simple merge
diff --cc src/config.c
Simple merge
index 6181799aabf191660858356dcd8d773add450374,d1c6a75add020014e0a7baa44ab2be105d7287da..d2eb25432002ae3ea0408c495fce745575ce2007
@@@ -375,11 -360,47 +363,43 @@@ static void acceptCommonHandler(int fd
      server.stat_numconnections++;
  }
  
+ void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask) {
+     int cport, cfd;
+     char cip[128];
+     REDIS_NOTUSED(el);
+     REDIS_NOTUSED(mask);
+     REDIS_NOTUSED(privdata);
+     cfd = anetTcpAccept(server.neterr, fd, cip, &cport);
+     if (cfd == AE_ERR) {
+         redisLog(REDIS_VERBOSE,"Accepting client connection: %s", server.neterr);
+         return;
+     }
+     redisLog(REDIS_VERBOSE,"Accepted %s:%d", cip, cport);
+     acceptCommonHandler(cfd);
+ }
+ void acceptUnixHandler(aeEventLoop *el, int fd, void *privdata, int mask) {
+     int cfd;
+     REDIS_NOTUSED(el);
+     REDIS_NOTUSED(mask);
+     REDIS_NOTUSED(privdata);
+     cfd = anetUnixAccept(server.neterr, fd);
+     if (cfd == AE_ERR) {
+         redisLog(REDIS_VERBOSE,"Accepting client connection: %s", server.neterr);
+         return;
+     }
+     redisLog(REDIS_VERBOSE,"Accepted connection to %s", server.unixsocket);
+     acceptCommonHandler(cfd);
+ }
  static void freeClientArgv(redisClient *c) {
      int j;
 -
      for (j = 0; j < c->argc; j++)
          decrRefCount(c->argv[j]);
 -    for (j = 0; j < c->mbargc; j++)
 -        decrRefCount(c->mbargv[j]);
      c->argc = 0;
 -    c->mbargc = 0;
  }
  
  void freeClient(redisClient *c) {
Simple merge
diff --cc src/redis-cli.c
Simple merge
diff --cc src/redis.c
index 2cbfc68921499bdece7e7fd1ad61af32d35dbfe8,50cf2f6c275e94abd0d9c16faf9dc9e00443489d..f65901c769eb82f9769acbc6a42fa1c9876415a0
@@@ -824,12 -831,12 +839,14 @@@ void initServer() 
      server.stat_numconnections = 0;
      server.stat_expiredkeys = 0;
      server.stat_starttime = time(NULL);
 +    server.stat_keyspace_misses = 0;
 +    server.stat_keyspace_hits = 0;
      server.unixtime = time(NULL);
      aeCreateTimeEvent(server.el, 1, serverCron, NULL, NULL);
-     if (aeCreateFileEvent(server.el, server.fd, AE_READABLE,
-         acceptHandler, NULL) == AE_ERR) oom("creating file event");
+     if (server.ipfd > 0 && aeCreateFileEvent(server.el,server.ipfd,AE_READABLE,
+         acceptTcpHandler,NULL) == AE_ERR) oom("creating file event");
+     if (server.sofd > 0 && aeCreateFileEvent(server.el,server.sofd,AE_READABLE,
+         acceptUnixHandler,NULL) == AE_ERR) oom("creating file event");
  
      if (server.appendonly) {
          server.appendfd = open(server.appendfilename,O_WRONLY|O_APPEND|O_CREAT,0644);
diff --cc src/redis.h
Simple merge