]> git.saurik.com Git - redis.git/commitdiff
Merge pull request #440 from ErikDubbelboer/spelling
authorSalvatore Sanfilippo <antirez@gmail.com>
Sat, 21 Apr 2012 10:31:06 +0000 (03:31 -0700)
committerSalvatore Sanfilippo <antirez@gmail.com>
Sat, 21 Apr 2012 10:31:06 +0000 (03:31 -0700)
Fixed some spelling errors in comments

1  2 
src/dict.c
src/rdb.c

diff --combined src/dict.c
index 2835de5668f4e7db43d5480c862d08c92a782cbd,e0622197f8d6540f8850ffd66bbe08e4f402d0fe..44073786ea90394368382ef14e31b8681be14612
@@@ -116,8 -116,8 +116,8 @@@ unsigned int dictGenCaseHashFunction(co
  
  /* ----------------------------- API implementation ------------------------- */
  
- /* Reset an hashtable already initialized with ht_init().
-  * NOTE: This function should only called by ht_destroy(). */
+ /* Reset a hash table already initialized with ht_init().
+  * NOTE: This function should only be called by ht_destroy(). */
  static void _dictReset(dictht *ht)
  {
      ht->table = NULL;
@@@ -162,18 -162,18 +162,18 @@@ int dictResize(dict *d
      return dictExpand(d, minimal);
  }
  
- /* Expand or create the hashtable */
+ /* Expand or create the hash table */
  int dictExpand(dict *d, unsigned long size)
  {
-     dictht n; /* the new hashtable */
+     dictht n; /* the new hash table */
      unsigned long realsize = _dictNextPower(size);
  
      /* the size is invalid if it is smaller than the number of
-      * elements already inside the hashtable */
+      * elements already inside the hash table */
      if (dictIsRehashing(d) || d->ht[0].used > size)
          return DICT_ERR;
  
-     /* Allocate the new hashtable and initialize all pointers to NULL */
+     /* Allocate the new hash table and initialize all pointers to NULL */
      n.size = realsize;
      n.sizemask = realsize-1;
      n.table = zcalloc(realsize*sizeof(dictEntry*));
@@@ -280,7 -280,7 +280,7 @@@ int dictAdd(dict *d, void *key, void *v
   * a value returns the dictEntry structure to the user, that will make
   * sure to fill the value field as he wishes.
   *
-  * This function is also directly expoed to user API to be called
+  * This function is also directly exposed to the user API to be called
   * mainly in order to store non-pointers inside the hash value, example:
   *
   * entry = dictAddRaw(dict,mykey);
@@@ -607,7 -607,7 +607,7 @@@ static int _dictKeyIndex(dict *d, cons
      unsigned int h, idx, table;
      dictEntry *he;
  
-     /* Expand the hashtable if needed */
+     /* Expand the hash table if needed */
      if (_dictExpandIfNeeded(d) == DICT_ERR)
          return -1;
      /* Compute the key hash value */
@@@ -633,21 -633,6 +633,21 @@@ void dictEmpty(dict *d) 
      d->iterators = 0;
  }
  
 +void dictEnableResize(void) {
 +    dict_can_resize = 1;
 +}
 +
 +void dictDisableResize(void) {
 +    dict_can_resize = 0;
 +}
 +
 +#if 0
 +
 +The following is code that we don't use for Redis currently, but that is part
 +of the library.
 +
 +/* ----------------------- Debugging ------------------------*/
 +
  #define DICT_STATS_VECTLEN 50
  static void _dictPrintStatsHt(dictht *ht) {
      unsigned long i, slots = 0, chainlen, maxchainlen = 0;
@@@ -701,6 -686,20 +701,6 @@@ void dictPrintStats(dict *d) 
      }
  }
  
 -void dictEnableResize(void) {
 -    dict_can_resize = 1;
 -}
 -
 -void dictDisableResize(void) {
 -    dict_can_resize = 0;
 -}
 -
 -#if 0
 -
 -/* The following are just example hash table types implementations.
 - * Not useful for Redis so they are commented out.
 - */
 -
  /* ----------------------- StringCopy Hash Table Type ------------------------*/
  
  static unsigned int _dictStringCopyHTHashFunction(const void *key)
diff --combined src/rdb.c
index 8ffd2c28f9d331f864d6aeb3be18ff50bc0b8fe3,d6d1fcc6c14e17b86e025660697d5dccd7c03d95..f9ad9f941cdf6a4b8fe8e771f30837cfbb4bf35f
+++ b/src/rdb.c
@@@ -1,7 -1,6 +1,7 @@@
  #include "redis.h"
  #include "lzf.h"    /* LZF compression library */
  #include "zipmap.h"
 +#include "endianconv.h"
  
  #include <math.h>
  #include <sys/types.h>
@@@ -603,7 -602,6 +603,7 @@@ int rdbSave(char *filename) 
      long long now = mstime();
      FILE *fp;
      rio rdb;
 +    uint64_t cksum;
  
      snprintf(tmpfile,256,"temp-%d.rdb", (int) getpid());
      fp = fopen(tmpfile,"w");
      }
  
      rioInitWithFile(&rdb,fp);
 +    if (server.rdb_checksum)
 +        rdb.update_cksum = rioGenericUpdateChecksum;
      snprintf(magic,sizeof(magic),"REDIS%04d",REDIS_RDB_VERSION);
      if (rdbWriteRaw(&rdb,magic,9) == -1) goto werr;
  
          }
          dictReleaseIterator(di);
      }
 +    di = NULL; /* So that we don't release it again on error. */
 +
      /* EOF opcode */
      if (rdbSaveType(&rdb,REDIS_RDB_OPCODE_EOF) == -1) goto werr;
  
 +    /* CRC64 checksum. It will be zero if checksum computation is disabled, the
 +     * loading code skips the check in this case. */
 +    cksum = rdb.cksum;
 +    memrev64ifbe(&cksum);
 +    rioWrite(&rdb,&cksum,8);
 +
      /* Make sure data will not remain on the OS's output buffers */
      fflush(fp);
      fsync(fileno(fp));
@@@ -729,7 -717,7 +729,7 @@@ robj *rdbLoadObject(int rdbtype, rio *r
      size_t len;
      unsigned int i;
  
 -    redisLog(REDIS_DEBUG,"LOADING OBJECT %d (at %d)\n",rdbtype,rdb->tell(rdb));
 +    redisLog(REDIS_DEBUG,"LOADING OBJECT %d (at %d)\n",rdbtype,rioTell(rdb));
      if (rdbtype == REDIS_RDB_TYPE_STRING) {
          /* Read string value */
          if ((o = rdbLoadEncodedStringObject(rdb)) == NULL) return NULL;
              }
  
              /* This will also be called when the set was just converted
-              * to regular hashtable encoded set */
+              * to a regular hash table encoded set */
              if (o->encoding == REDIS_ENCODING_HT) {
                  dictAdd((dict*)o->ptr,ele,NULL);
              } else {
@@@ -1028,8 -1016,6 +1028,8 @@@ int rdbLoad(char *filename) 
          return REDIS_ERR;
      }
      rioInitWithFile(&rdb,fp);
 +    if (server.rdb_checksum)
 +        rdb.update_cksum = rioGenericUpdateChecksum;
      if (rioRead(&rdb,buf,9) == 0) goto eoferr;
      buf[9] = '\0';
      if (memcmp(buf,"REDIS",5) != 0) {
          return REDIS_ERR;
      }
      rdbver = atoi(buf+5);
 -    if (rdbver < 1 || rdbver > 4) {
 +    if (rdbver < 1 || rdbver > 5) {
          fclose(fp);
          redisLog(REDIS_WARNING,"Can't handle RDB format version %d",rdbver);
          errno = EINVAL;
  
          /* Serve the clients from time to time */
          if (!(loops++ % 1000)) {
 -            loadingProgress(rdb.tell(&rdb));
 +            loadingProgress(rioTell(&rdb));
              aeProcessEvents(server.el, AE_FILE_EVENTS|AE_DONT_WAIT);
          }
  
  
          decrRefCount(key);
      }
 +    /* Verify the checksum if RDB version is >= 5 */
 +    if (rdbver >= 5 && server.rdb_checksum) {
 +        uint64_t cksum, expected = rdb.cksum;
 +
 +        if (rioRead(&rdb,&cksum,8) == 0) goto eoferr;
 +        memrev64ifbe(&cksum);
 +        if (cksum == 0) {
 +            redisLog(REDIS_WARNING,"RDB file was saved with checksum disabled: no check performed.");
 +        } else if (cksum != expected) {
 +            redisLog(REDIS_WARNING,"Wrong RDB checksum. Aborting now.");
 +            exit(1);
 +        }
 +    }
 +
      fclose(fp);
      stopLoading();
      return REDIS_OK;