diff --git a/.github/.codespellrc b/.github/.codespellrc new file mode 100644 index 000000000..88146bef7 --- /dev/null +++ b/.github/.codespellrc @@ -0,0 +1,5 @@ +[codespell] +quiet-level = 2 +count = +skip = ./deps,./src/crc16_slottable.h +ignore-words = ./.github/wordlist.txt diff --git a/.github/ISSUE_TEMPLATE/crash_report.md b/.github/ISSUE_TEMPLATE/crash_report.md index c608ccdc1..0b0350a12 100644 --- a/.github/ISSUE_TEMPLATE/crash_report.md +++ b/.github/ISSUE_TEMPLATE/crash_report.md @@ -14,7 +14,7 @@ Paste the complete crash log between the quotes below. Please include a few line ``` ``` -**Aditional information** +**Additional information** 1. OS distribution and version 2. Steps to reproduce (if any) diff --git a/.github/wordlist.txt b/.github/wordlist.txt new file mode 100644 index 000000000..119291b82 --- /dev/null +++ b/.github/wordlist.txt @@ -0,0 +1,15 @@ +ake +bale +fle +fo +gameboy +mutli +nd +nees +oll +optin +ot +smove +te +tre +cancelability \ No newline at end of file diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml new file mode 100644 index 000000000..7aaa9ffa8 --- /dev/null +++ b/.github/workflows/spell-check.yml @@ -0,0 +1,25 @@ +# A CI action that using codespell to check spell. +# .github/.codespellrc is a config file. +# .github/wordlist.txt is a list of words that will ignore word checks. +# More details please check the following link: +# https://github.com/codespell-project/codespell +name: Spellcheck + +on: + push: + pull_request: + +jobs: + build: + name: Spellcheck + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install prerequisites + run: sudo pip install codespell==2.0.0 + + - name: Spell check + run: codespell --config=./.github/.codespellrc diff --git a/CONTRIBUTING b/CONTRIBUTING index 22b8efe48..56b71834d 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -18,7 +18,7 @@ all the support in the mailing list. There is also an active community of Redis users at Stack Overflow: - http://stackoverflow.com/questions/tagged/redis + https://stackoverflow.com/questions/tagged/redis Issues and pull requests for documentation belong on the redis-doc repo: @@ -38,10 +38,10 @@ Here you'll see if there is consensus about your idea. 2. If in step 1 you get an acknowledgment from the project leaders, use the following procedure to submit a patch: - a. Fork Redis on github ( http://help.github.com/fork-a-repo/ ) + a. Fork Redis on github ( https://docs.github.com/en/github/getting-started-with-github/fork-a-repo ) b. Create a topic branch (git checkout -b my_branch) c. Push to your branch (git push origin my_branch) - d. Initiate a pull request on github ( https://help.github.com/articles/creating-a-pull-request/ ) + d. Initiate a pull request on github ( https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request ) e. Done :) 3. Keep in mind that we are very overloaded, so issues and PRs sometimes wait diff --git a/README.md b/README.md index eecb61daa..8de38df38 100644 --- a/README.md +++ b/README.md @@ -380,8 +380,8 @@ aof.c and rdb.c As you can guess from the names, these files implement the RDB and AOF persistence for Redis. Redis uses a persistence model based on the `fork()` -system call in order to create a thread with the same (shared) memory -content of the main Redis thread. This secondary thread dumps the content +system call in order to create a process with the same (shared) memory +content of the main Redis process. This secondary process dumps the content of the memory on disk. This is used by `rdb.c` to create the snapshots on disk and by `aof.c` in order to perform the AOF rewrite when the append only file gets too big. diff --git a/sentinel.conf b/sentinel.conf index 1b0b4cadc..c5341168e 100644 --- a/sentinel.conf +++ b/sentinel.conf @@ -178,7 +178,7 @@ acllog-max-len 128 # incoming connections (via ACL), and for outgoing connections (via # sentinel-user and sentinel-pass) # -# The requirepass is not compatable with aclfile option and the ACL LOAD +# The requirepass is not compatible with aclfile option and the ACL LOAD # command, these will cause requirepass to be ignored. # sentinel sentinel-user diff --git a/src/acl.c b/src/acl.c index 86f73fe7e..32c1f5dc3 100644 --- a/src/acl.c +++ b/src/acl.c @@ -1363,7 +1363,7 @@ int ACLCheckPubsubPerm(client *c, int idx, int count, int literal, int *idxptr) } -/* Check whether the command is ready to be exceuted by ACLCheckCommandPerm. +/* Check whether the command is ready to be executed by ACLCheckCommandPerm. * If check passes, then check whether pub/sub channels of the command is * ready to be executed by ACLCheckPubsubPerm */ int ACLCheckAllPerm(client *c, int *idxptr) { @@ -2254,8 +2254,8 @@ void authCommand(client *c) { * will just use "default" as username. */ robj *username, *password; if (c->argc == 2) { - /* Mimic the old behavior of giving an error for the two commands - * from if no password is configured. */ + /* Mimic the old behavior of giving an error for the two argument + * form if no password is configured. */ if (DefaultUser->flags & USER_FLAG_NOPASS) { addReplyError(c,"AUTH called without any password " "configured for the default user. Are you sure " diff --git a/src/aof.c b/src/aof.c index 38da4bf31..4d842e519 100644 --- a/src/aof.c +++ b/src/aof.c @@ -419,7 +419,7 @@ void flushAppendOnlyFile(int force) { * than two seconds this is still ok. Postpone again. */ return; } - /* Otherwise fall trough, and go write since we can't wait + /* Otherwise fall through, and go write since we can't wait * over two seconds. */ server.aof_delayed_fsync++; serverLog(LL_NOTICE,"Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis."); @@ -1745,7 +1745,7 @@ int rewriteAppendOnlyFileBackground(void) { server.aof_rewrite_scheduled = 0; server.aof_rewrite_time_start = time(NULL); - /* We set appendseldb to -1 in order to force the next call to the + /* We set aof_selected_db to -1 in order to force the next call to the * feedAppendOnlyFile() to issue a SELECT command, so the differences * accumulated by the parent into server.aof_rewrite_buf will start * with a SELECT statement and it will be safe to merge. */ @@ -1885,7 +1885,7 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) { oldfd = open(server.aof_filename,O_RDONLY|O_NONBLOCK); } else { /* AOF enabled */ - oldfd = -1; /* We'll set this to the current AOF filedes later. */ + oldfd = -1; /* We'll set this to the current AOF file descriptor later. */ } /* Rename the temporary file. This will not unlink the target file if diff --git a/src/bitops.c b/src/bitops.c index afd79ad88..3994b01c6 100644 --- a/src/bitops.c +++ b/src/bitops.c @@ -472,7 +472,7 @@ int getBitfieldTypeFromArgument(client *c, robj *o, int *sign, int *bits) { return C_OK; } -/* This is an helper function for commands implementations that need to write +/* This is a helper function for commands implementations that need to write * bits to a string object. The command creates or pad with zeroes the string * so that the 'maxbit' bit can be addressed. The object is finally * returned. Otherwise if the key holds a wrong type NULL is returned and @@ -1025,7 +1025,7 @@ void bitfieldGeneric(client *c, int flags) { return; } - /* Lookup by making room up to the farest bit reached by + /* Lookup by making room up to the farthest bit reached by * this operation. */ if ((o = lookupStringForBitCommand(c, highest_write_offset)) == NULL) { diff --git a/src/cli_common.c b/src/cli_common.c index e88327ace..8ec7de70f 100644 --- a/src/cli_common.c +++ b/src/cli_common.c @@ -166,7 +166,7 @@ ssize_t cliWriteConn(redisContext *c, const char *buf, size_t buf_len) * * Do we still have data that was there prior to our buf? If so, * restore buffer to it's original state and report no new data was - * writen. + * written. */ if (sdslen(c->obuf) > buf_len) { sdsrange(c->obuf, 0, -(buf_len+1)); diff --git a/src/cli_common.h b/src/cli_common.h index 16d6ec2a9..e7f2e10e7 100644 --- a/src/cli_common.h +++ b/src/cli_common.h @@ -16,9 +16,9 @@ typedef struct cliSSLconfig { char *cert; /* Private key file to authenticate with, or NULL */ char *key; - /* Prefered cipher list, or NULL (applies only to <= TLSv1.2) */ + /* Preferred cipher list, or NULL (applies only to <= TLSv1.2) */ char* ciphers; - /* Prefered ciphersuites list, or NULL (applies only to TLSv1.3) */ + /* Preferred ciphersuites list, or NULL (applies only to TLSv1.3) */ char* ciphersuites; } cliSSLconfig; diff --git a/src/cluster.c b/src/cluster.c index f34c33162..cd4def90f 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -1185,7 +1185,7 @@ void clusterHandleConfigEpochCollision(clusterNode *sender) { * CLUSTER nodes blacklist * * The nodes blacklist is just a way to ensure that a given node with a given - * Node ID is not readded before some time elapsed (this time is specified + * Node ID is not re-added before some time elapsed (this time is specified * in seconds in CLUSTER_BLACKLIST_TTL). * * This is useful when we want to remove a node from the cluster completely: @@ -4203,7 +4203,7 @@ sds clusterGenNodeDescription(clusterNode *node, int use_pport) { "connected" : "disconnected"); /* Slots served by this instance. If we already have slots info, - * append it diretly, otherwise, generate slots only if it has. */ + * append it directly, otherwise, generate slots only if it has. */ if (node->slots_info) { ci = sdscatsds(ci, node->slots_info); } else if (node->numslots > 0) { diff --git a/src/config.c b/src/config.c index d9fa5da2a..ed1f81fd4 100644 --- a/src/config.c +++ b/src/config.c @@ -581,7 +581,7 @@ void loadServerConfigFromString(char *config) { int flags = keyspaceEventsStringToFlags(argv[1]); if (flags == -1) { - err = "Invalid event class character. Use 'g$lshzxeA'."; + err = "Invalid event class character. Use 'Ag$lshzxeKEtmd'."; goto loaderr; } server.notify_keyspace_events = flags; diff --git a/src/connhelpers.h b/src/connhelpers.h index 86250d09e..b32e44dba 100644 --- a/src/connhelpers.h +++ b/src/connhelpers.h @@ -41,7 +41,7 @@ * of connections from within a handler. */ -/* Incremenet connection references. +/* Increment connection references. * * Inside a connection handler, we guarantee refs >= 1 so it is always * safe to connClose(). diff --git a/src/crcspeed.c b/src/crcspeed.c index 67cb8fd9f..9682d8e0b 100644 --- a/src/crcspeed.c +++ b/src/crcspeed.c @@ -248,7 +248,7 @@ uint16_t crcspeed16big(uint16_t big_table[8][256], uint16_t crc_in, void *buf, /* Return the CRC of buf[0..len-1] with initial crc, processing eight bytes at a time using passed-in lookup table. - This selects one of two routines depending on the endianess of + This selects one of two routines depending on the endianness of the architecture. */ uint64_t crcspeed64native(uint64_t table[8][256], uint64_t crc, void *buf, size_t len) { diff --git a/src/db.c b/src/db.c index 8a65f0ffb..5a71d7fd1 100644 --- a/src/db.c +++ b/src/db.c @@ -295,7 +295,7 @@ robj *dbRandomKey(redisDb *db) { * it could happen that all the keys are already logically * expired in the slave, so the function cannot stop because * expireIfNeeded() is false, nor it can stop because - * dictGetRandomKey() returns NULL (there are keys to return). + * dictGetFairRandomKey() returns NULL (there are keys to return). * To prevent the infinite loop we do some tries, but if there * are the conditions for an infinite loop, eventually we * return a key name that may be already expired. */ diff --git a/src/debug.c b/src/debug.c index 098ce6ef7..0ec4e3b97 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1980,7 +1980,7 @@ void disableWatchdog(void) { * of microseconds, i.e. -10 means 100 nanoseconds. */ void debugDelay(int usec) { /* Since even the shortest sleep results in context switch and system call, - * the way we achive short sleeps is by statistically sleeping less often. */ + * the way we achieve short sleeps is by statistically sleeping less often. */ if (usec < 0) usec = (rand() % -usec) == 0 ? 1: 0; if (usec) usleep(usec); } diff --git a/src/evict.c b/src/evict.c index 227e15a8d..9f0aac1af 100644 --- a/src/evict.c +++ b/src/evict.c @@ -133,7 +133,7 @@ void evictionPoolAlloc(void) { EvictionPoolLRU = ep; } -/* This is an helper function for performEvictions(), it is used in order +/* This is a helper function for performEvictions(), it is used in order * to populate the evictionPool with a few entries every time we want to * expire a key. Keys with idle time bigger than one of the current * keys are added. Keys are always added if there are free entries. diff --git a/src/geo.c b/src/geo.c index efb622b36..b7eebfd7a 100644 --- a/src/geo.c +++ b/src/geo.c @@ -213,7 +213,7 @@ void addReplyDoubleDistance(client *c, double d) { * representing a point, and a GeoShape, appends this entry as a geoPoint * into the specified geoArray only if the point is within the search area. * - * returns C_OK if the point is included, or REIDS_ERR if it is outside. */ + * returns C_OK if the point is included, or C_ERR if it is outside. */ int geoAppendIfWithinShape(geoArray *ga, GeoShape *shape, double score, sds member) { double distance = 0, xy[2]; @@ -241,10 +241,10 @@ int geoAppendIfWithinShape(geoArray *ga, GeoShape *shape, double score, sds memb } /* Query a Redis sorted set to extract all the elements between 'min' and - * 'max', appending them into the array of geoPoint structures 'gparray'. + * 'max', appending them into the array of geoPoint structures 'geoArray'. * The command returns the number of elements added to the array. * - * Elements which are farest than 'radius' from the specified 'x' and 'y' + * Elements which are farther than 'radius' from the specified 'x' and 'y' * coordinates are not included. * * The ability of this function to append to an existing set of points is @@ -330,7 +330,7 @@ void scoresOfGeoHashBox(GeoHashBits hash, GeoHashFix52Bits *min, GeoHashFix52Bit * * To get the min score we just use the initial hash value left * shifted enough to get the 52 bit value. Later we increment the - * 6 bit prefis (see the hash.bits++ statement), and get the new + * 6 bit prefix (see the hash.bits++ statement), and get the new * prefix: 101011, which we align again to 52 bits to get the maximum * value (which is excluded from the search). So we get everything * between the two following scores (represented in binary): diff --git a/src/geohash_helper.c b/src/geohash_helper.c index fec193e8b..ec4dbd23a 100644 --- a/src/geohash_helper.c +++ b/src/geohash_helper.c @@ -216,7 +216,7 @@ GeoHashFix52Bits geohashAlign52Bits(const GeoHashBits hash) { return bits; } -/* Calculate distance using haversin great circle distance formula. */ +/* Calculate distance using haversine great circle distance formula. */ double geohashGetDistance(double lon1d, double lat1d, double lon2d, double lat2d) { double lat1r, lon1r, lat2r, lon2r, u, v; lat1r = deg_rad(lat1d); diff --git a/src/hyperloglog.c b/src/hyperloglog.c index 94ae2a85b..3620d2d4a 100644 --- a/src/hyperloglog.c +++ b/src/hyperloglog.c @@ -899,7 +899,7 @@ promote: /* Promote to dense representation. */ * the element belongs to is incremented if needed. * * This function is actually a wrapper for hllSparseSet(), it only performs - * the hashshing of the element to obtain the index and zeros run length. */ + * the hashing of the element to obtain the index and zeros run length. */ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) { long index; uint8_t count = hllPatLen(ele,elesize,&index); diff --git a/src/intset.c b/src/intset.c index 9ba13898d..4a9214864 100644 --- a/src/intset.c +++ b/src/intset.c @@ -306,7 +306,7 @@ int intsetValidateIntegrity(const unsigned char *p, size_t size, int deep) { return 0; } - /* check that the size matchies (all records are inside the buffer). */ + /* check that the size matches (all records are inside the buffer). */ uint32_t count = intrev32ifbe(is->length); if (sizeof(*is) + count*record_size != size) return 0; diff --git a/src/listpack.c b/src/listpack.c index db3518bb8..b15b1acdd 100644 --- a/src/listpack.c +++ b/src/listpack.c @@ -116,7 +116,7 @@ (p)[5] = ((v)>>8)&0xff; \ } while(0) -/* Validates that 'p' is not ouside the listpack. +/* Validates that 'p' is not outside the listpack. * All function that return a pointer to an element in the listpack will assert * that this element is valid, so it can be freely used. * Generally functions such lpNext and lpDelete assume the input pointer is @@ -125,7 +125,7 @@ assert((p) >= (lp)+LP_HDR_SIZE && (p) < (lp)+lpGetTotalBytes((lp))); \ } while (0) -/* Similar to the above, but validates the entire element lenth rather than just +/* Similar to the above, but validates the entire element length rather than just * it's pointer. */ #define ASSERT_INTEGRITY_LEN(lp, p, len) do { \ assert((p) >= (lp)+LP_HDR_SIZE && (p)+(len) < (lp)+lpGetTotalBytes((lp))); \ @@ -218,7 +218,7 @@ int lpStringToInt64(const char *s, unsigned long slen, int64_t *value) { /* Create a new, empty listpack. * On success the new listpack is returned, otherwise an error is returned. * Pre-allocate at least `capacity` bytes of memory, - * over-allocated memory can be shrinked by `lpShrinkToFit`. + * over-allocated memory can be shrunk by `lpShrinkToFit`. * */ unsigned char *lpNew(size_t capacity) { unsigned char *lp = lp_malloc(capacity > LP_HDR_SIZE+1 ? capacity : LP_HDR_SIZE+1); @@ -416,7 +416,7 @@ uint32_t lpCurrentEncodedSizeUnsafe(unsigned char *p) { } /* Return bytes needed to encode the length of the listpack element pointed by 'p'. - * This includes just the encodign byte, and the bytes needed to encode the length + * This includes just the encoding byte, and the bytes needed to encode the length * of the element (excluding the element data itself) * If the element encoding is wrong then 0 is returned. */ uint32_t lpCurrentEncodedSizeBytes(unsigned char *p) { @@ -641,7 +641,7 @@ unsigned char *lpGet(unsigned char *p, int64_t *count, unsigned char *intbuf) { * * If 'newp' is not NULL, at the end of a successful call '*newp' will be set * to the address of the element just added, so that it will be possible to - * continue an interation with lpNext() and lpPrev(). + * continue an interaction with lpNext() and lpPrev(). * * For deletion operations ('ele' set to NULL) 'newp' is set to the next * element, on the right of the deleted one, or to NULL if the deleted element @@ -879,7 +879,7 @@ int lpValidateNext(unsigned char *lp, unsigned char **pp, size_t lpbytes) { if (!lenbytes) return 0; - /* make sure the encoded entry length doesn't rech outside the edge of the listpack */ + /* make sure the encoded entry length doesn't reach outside the edge of the listpack */ if (OUT_OF_RANGE(p + lenbytes)) return 0; @@ -888,7 +888,7 @@ int lpValidateNext(unsigned char *lp, unsigned char **pp, size_t lpbytes) { unsigned long encodedBacklen = lpEncodeBacklen(NULL,entrylen); entrylen += encodedBacklen; - /* make sure the entry doesn't rech outside the edge of the listpack */ + /* make sure the entry doesn't reach outside the edge of the listpack */ if (OUT_OF_RANGE(p + entrylen)) return 0; @@ -925,7 +925,7 @@ int lpValidateIntegrity(unsigned char *lp, size_t size, int deep){ if (!deep) return 1; - /* Validate the invividual entries. */ + /* Validate the individual entries. */ uint32_t count = 0; unsigned char *p = lpFirst(lp); while(p) { diff --git a/src/lolwut.c b/src/lolwut.c index 931f311cd..c014840e9 100644 --- a/src/lolwut.c +++ b/src/lolwut.c @@ -84,7 +84,7 @@ void lolwutCommand(client *c) { } } -/* ========================== LOLWUT Canvase =============================== +/* ========================== LOLWUT Canvas =============================== * Many LOLWUT versions will likely print some computer art to the screen. * This is the case with LOLWUT 5 and LOLWUT 6, so here there is a generic * canvas implementation that can be reused. */ diff --git a/src/lolwut5.c b/src/lolwut5.c index d864888ba..1240168d0 100644 --- a/src/lolwut5.c +++ b/src/lolwut5.c @@ -102,7 +102,7 @@ lwCanvas *lwDrawSchotter(int console_cols, int squares_per_row, int squares_per_ } /* Converts the canvas to an SDS string representing the UTF8 characters to - * print to the terminal in order to obtain a graphical representaiton of the + * print to the terminal in order to obtain a graphical representation of the * logical canvas. The actual returned string will require a terminal that is * width/2 large and height/4 tall in order to hold the whole image without * overflowing or scrolling, since each Barille character is 2x4. */ diff --git a/src/lolwut6.c b/src/lolwut6.c index 471bf66c8..1ba111c2d 100644 --- a/src/lolwut6.c +++ b/src/lolwut6.c @@ -32,7 +32,7 @@ * fun and interesting, and should be replaced by a new implementation at * each new version of Redis. * - * Thanks to Michele Hiki Falcone for the original image that ispired + * Thanks to Michele Hiki Falcone for the original image that inspired * the image, part of his game, Plaguemon. * * Thanks to the Shhh computer art collective for the help in tuning the @@ -180,7 +180,7 @@ void lolwut6Command(client *c) { return; /* Limits. We want LOLWUT to be always reasonably fast and cheap to execute - * so we have maximum number of columns, rows, and output resulution. */ + * so we have maximum number of columns, rows, and output resolution. */ if (cols < 1) cols = 1; if (cols > 1000) cols = 1000; if (rows < 1) rows = 1; diff --git a/src/module.c b/src/module.c index 2b2c44555..e04a60b48 100644 --- a/src/module.c +++ b/src/module.c @@ -851,7 +851,7 @@ int64_t commandFlagsFromString(char *s) { * other reason. * * **"no-auth"**: This command can be run by an un-authenticated client. * Normally this is used by a command that is used - * to authenticate a client. + * to authenticate a client. * * **"may-replicate"**: This command may generate replication traffic, even * though it's not a write command. * @@ -962,7 +962,7 @@ long long RM_Milliseconds(void) { * the elapsed execution time when RM_BlockedClientMeasureTimeEnd() is called. * Within the same command, you can call multiple times * RM_BlockedClientMeasureTimeStart() and RM_BlockedClientMeasureTimeEnd() - * to accummulate indepedent time intervals to the background duration. + * to accumulate independent time intervals to the background duration. * This method always return REDISMODULE_OK. */ int RM_BlockedClientMeasureTimeStart(RedisModuleBlockedClient *bc) { elapsedStart(&(bc->background_timer)); @@ -1277,19 +1277,19 @@ void RM_RetainString(RedisModuleCtx *ctx, RedisModuleString *str) { * The main difference between the two is that this function will always * succeed, whereas RedisModule_RetainString() may fail because of an * assertion. -* +* * The function returns a pointer to RedisModuleString, which is owned * by the caller. It requires a call to RedisModule_FreeString() to free * the string when automatic memory management is disabled for the context. * When automatic memory management is enabled, you can either call * RedisModule_FreeString() or let the automation free it. -* +* * This function is more efficient than RedisModule_CreateStringFromString() * because whenever possible, it avoids copying the underlying * RedisModuleString. The disadvantage of using this function is that it * might not be possible to use RedisModule_StringAppendBuffer() on the * returned RedisModuleString. -* +* * It is possible to call this function with a NULL context. */ RedisModuleString* RM_HoldString(RedisModuleCtx *ctx, RedisModuleString *str) { @@ -1555,7 +1555,7 @@ int RM_ReplyWithArray(RedisModuleCtx *ctx, long len) { return REDISMODULE_OK; } -/* Reply to the client with a null array, simply null in RESP3 +/* Reply to the client with a null array, simply null in RESP3 * null array in RESP2. * * The function always returns REDISMODULE_OK. */ @@ -1566,7 +1566,7 @@ int RM_ReplyWithNullArray(RedisModuleCtx *ctx) { return REDISMODULE_OK; } -/* Reply to the client with an empty array. +/* Reply to the client with an empty array. * * The function always returns REDISMODULE_OK. */ int RM_ReplyWithEmptyArray(RedisModuleCtx *ctx) { @@ -1664,7 +1664,7 @@ int RM_ReplyWithEmptyString(RedisModuleCtx *ctx) { return REDISMODULE_OK; } -/* Reply with a binary safe string, which should not be escaped or filtered +/* Reply with a binary safe string, which should not be escaped or filtered * taking in input a C buffer pointer and length. * * The function always returns REDISMODULE_OK. */ @@ -1882,7 +1882,7 @@ unsigned long long RM_GetClientId(RedisModuleCtx *ctx) { /* Return the ACL user name used by the client with the specified client ID. * Client ID can be obtained with RM_GetClientId() API. If the client does not - * exist, NULL is returned and errno is set to ENOENT. If the client isn't + * exist, NULL is returned and errno is set to ENOENT. If the client isn't * using an ACL user, NULL is returned and errno is set to ENOTSUP */ RedisModuleString *RM_GetClientUserNameById(RedisModuleCtx *ctx, uint64_t id) { client *client = lookupClientByID(id); @@ -1902,7 +1902,7 @@ RedisModuleString *RM_GetClientUserNameById(RedisModuleCtx *ctx, uint64_t id) { return str; } -/* This is an helper for RM_GetClientInfoById() and other functions: given +/* This is a helper for RM_GetClientInfoById() and other functions: given * a client, it populates the client info structure with the appropriate * fields depending on the version provided. If the version is not valid * then REDISMODULE_ERR is returned. Otherwise the function returns @@ -1935,7 +1935,7 @@ int modulePopulateClientInfoStructure(void *ci, client *client, int structver) { return REDISMODULE_OK; } -/* This is an helper for moduleFireServerEvent() and other functions: +/* This is a helper for moduleFireServerEvent() and other functions: * It populates the replication info structure with the appropriate * fields depending on the version provided. If the version is not valid * then REDISMODULE_ERR is returned. Otherwise the function returns @@ -2354,7 +2354,7 @@ int RM_UnlinkKey(RedisModuleKey *key) { * REDISMODULE_NO_EXPIRE is returned. */ mstime_t RM_GetExpire(RedisModuleKey *key) { mstime_t expire = getExpire(key->db,key->key); - if (expire == -1 || key->value == NULL) + if (expire == -1 || key->value == NULL) return REDISMODULE_NO_EXPIRE; expire -= mstime(); return expire >= 0 ? expire : 0; @@ -2386,7 +2386,7 @@ int RM_SetExpire(RedisModuleKey *key, mstime_t expire) { * REDISMODULE_NO_EXPIRE is returned. */ mstime_t RM_GetAbsExpire(RedisModuleKey *key) { mstime_t expire = getExpire(key->db,key->key); - if (expire == -1 || key->value == NULL) + if (expire == -1 || key->value == NULL) return REDISMODULE_NO_EXPIRE; return expire; } @@ -3049,8 +3049,8 @@ int RM_ZsetRangePrev(RedisModuleKey *key) { * * The function is variadic and the user must specify pairs of field * names and values, both as RedisModuleString pointers (unless the - * CFIELD option is set, see later). At the end of the field/value-ptr pairs, - * NULL must be specified as last argument to signal the end of the arguments + * CFIELD option is set, see later). At the end of the field/value-ptr pairs, + * NULL must be specified as last argument to signal the end of the arguments * in the variadic function. * * Example to set the hash argv[1] to the value argv[2]: @@ -3093,7 +3093,7 @@ int RM_ZsetRangePrev(RedisModuleKey *key) { * * The number of fields existing in the hash prior to the call, which have been * updated (its old value has been replaced by a new value) or deleted. If the - * flag REDISMODULE_HASH_COUNT_ALL is set, insterted fields not previously + * flag REDISMODULE_HASH_COUNT_ALL is set, inserted fields not previously * existing in the hash are also counted. * * If the return value is zero, `errno` is set (since Redis 6.2) as follows: @@ -3333,7 +3333,7 @@ int RM_StreamAdd(RedisModuleKey *key, int flags, RedisModuleStreamID *id, RedisM return REDISMODULE_ERR; } - /* Create key if necessery */ + /* Create key if necessary */ int created = 0; if (key->value == NULL) { moduleCreateEmptyKey(key, REDISMODULE_KEYTYPE_STREAM); @@ -4147,9 +4147,9 @@ RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, const ch if (getNodeByQuery(c,c->cmd,c->argv,c->argc,NULL,&error_code) != server.cluster->myself) { - if (error_code == CLUSTER_REDIR_DOWN_RO_STATE) { + if (error_code == CLUSTER_REDIR_DOWN_RO_STATE) { errno = EROFS; - } else if (error_code == CLUSTER_REDIR_DOWN_STATE) { + } else if (error_code == CLUSTER_REDIR_DOWN_STATE) { errno = ENETDOWN; } else { errno = EPERM; @@ -4470,7 +4470,7 @@ robj *moduleTypeDupOrReply(client *c, robj *fromkey, robj *tokey, robj *value) { * to have significant internal complexity. To determine this, the defrag mechanism * uses the free_effort callback and the 'active-defrag-max-scan-fields' config directive. * NOTE: The value is passed as a `void**` and the function is expected to update the - * pointer if the top-level value pointer is defragmented and consequentially changes. + * pointer if the top-level value pointer is defragmented and consequently changes. * * Note: the module name "AAAAAAAAA" is reserved and produces an error, it * happens to be pretty lame as well. @@ -4925,7 +4925,7 @@ ssize_t rdbSaveModulesAux(rio *rdb, int when) { * foreach key,value { * AddElement(key); * AddElement(value); - * EndSquence(); + * EndSequence(); * } * * Because the key and value will be always in the above order, while instead @@ -5832,7 +5832,7 @@ void moduleReleaseGIL(void) { * etc), and the subscriber callback receives only events that match a specific * mask of event types. * - * When subscribing to notifications with RedisModule_SubscribeToKeyspaceEvents + * When subscribing to notifications with RedisModule_SubscribeToKeyspaceEvents * the module must provide an event type-mask, denoting the events the subscriber * is interested in. This can be an ORed mask of any of the following flags: * @@ -6058,13 +6058,13 @@ int RM_SendClusterMessage(RedisModuleCtx *ctx, char *target_id, uint8_t type, un } /* Return an array of string pointers, each string pointer points to a cluster - * node ID of exactly REDISMODULE_NODE_ID_SIZE bytes (without any null term). + * node ID of exactly REDISMODULE_NODE_ID_LEN bytes (without any null term). * The number of returned node IDs is stored into `*numnodes`. * However if this function is called by a module not running an a Redis * instance with Redis Cluster enabled, NULL is returned instead. * * The IDs returned can be used with RedisModule_GetClusterNodeInfo() in order - * to get more information about single nodes. + * to get more information about single node. * * The array returned by this function must be freed using the function * RedisModule_FreeClusterNodesList(). @@ -6074,7 +6074,7 @@ int RM_SendClusterMessage(RedisModuleCtx *ctx, char *target_id, uint8_t type, un * size_t count, j; * char **ids = RedisModule_GetClusterNodesList(ctx,&count); * for (j = 0; j < count; j++) { - * RedisModule_Log("notice","Node %.*s", + * RedisModule_Log(ctx,"notice","Node %.*s", * REDISMODULE_NODE_ID_LEN,ids[j]); * } * RedisModule_FreeClusterNodesList(ids); @@ -6386,20 +6386,20 @@ int RM_GetTimerInfo(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remain /* -------------------------------------------------------------------------- * ## Modules ACL API * - * Implements a hook into the authentication and authorization within Redis. + * Implements a hook into the authentication and authorization within Redis. * --------------------------------------------------------------------------*/ /* This function is called when a client's user has changed and invokes the * client's user changed callback if it was set. This callback should - * cleanup any state the module was tracking about this client. - * - * A client's user can be changed through the AUTH command, module + * cleanup any state the module was tracking about this client. + * + * A client's user can be changed through the AUTH command, module * authentication, and when a client is freed. */ void moduleNotifyUserChanged(client *c) { if (c->auth_callback) { c->auth_callback(c->id, c->auth_callback_privdata); - /* The callback will fire exactly once, even if the user remains + /* The callback will fire exactly once, even if the user remains * the same. It is expected to completely clean up the state * so all references are cleared here. */ c->auth_callback = NULL; @@ -6439,7 +6439,7 @@ static void moduleFreeAuthenticatedClients(RedisModule *module) { if (!c->auth_module) continue; RedisModule *auth_module = (RedisModule *) c->auth_module; - if (auth_module == module) { + if (auth_module == module) { revokeClientAuthentication(c); } } @@ -6483,37 +6483,37 @@ int RM_FreeModuleUser(RedisModuleUser *user) { return REDISMODULE_OK; } -/* Sets the permissions of a user created through the redis module - * interface. The syntax is the same as ACL SETUSER, so refer to the +/* Sets the permissions of a user created through the redis module + * interface. The syntax is the same as ACL SETUSER, so refer to the * documentation in acl.c for more information. See RM_CreateModuleUser * for detailed usage. - * + * * Returns REDISMODULE_OK on success and REDISMODULE_ERR on failure * and will set an errno describing why the operation failed. */ int RM_SetModuleUserACL(RedisModuleUser *user, const char* acl) { return ACLSetUser(user->user, acl, -1); } -/* Authenticate the client associated with the context with +/* Authenticate the client associated with the context with * the provided user. Returns REDISMODULE_OK on success and * REDISMODULE_ERR on error. - * + * * This authentication can be tracked with the optional callback and private * data fields. The callback will be called whenever the user of the client * changes. This callback should be used to cleanup any state that is being * kept in the module related to the client authentication. It will only be * called once, even when the user hasn't changed, in order to allow for a * new callback to be specified. If this authentication does not need to be - * tracked, pass in NULL for the callback and privdata. - * + * tracked, pass in NULL for the callback and privdata. + * * If client_id is not NULL, it will be filled with the id of the client - * that was authenticated. This can be used with the - * RM_DeauthenticateAndCloseClient() API in order to deauthenticate a - * previously authenticated client if the authentication is no longer valid. - * + * that was authenticated. This can be used with the + * RM_DeauthenticateAndCloseClient() API in order to deauthenticate a + * previously authenticated client if the authentication is no longer valid. + * * For expensive authentication operations, it is recommended to block the * client and do the authentication in the background and then attach the user - * to the client in a threadsafe context. */ + * to the client in a threadsafe context. */ static int authenticateClientWithUser(RedisModuleCtx *ctx, user *user, RedisModuleUserChangedFunc callback, void *privdata, uint64_t *client_id) { if (user->flags & USER_FLAG_DISABLED) { return REDISMODULE_ERR; @@ -6543,18 +6543,18 @@ static int authenticateClientWithUser(RedisModuleCtx *ctx, user *user, RedisModu } -/* Authenticate the current context's user with the provided redis acl user. +/* Authenticate the current context's user with the provided redis acl user. * Returns REDISMODULE_ERR if the user is disabled. - * + * * See authenticateClientWithUser for information about callback, client_id, * and general usage for authentication. */ int RM_AuthenticateClientWithUser(RedisModuleCtx *ctx, RedisModuleUser *module_user, RedisModuleUserChangedFunc callback, void *privdata, uint64_t *client_id) { return authenticateClientWithUser(ctx, module_user->user, callback, privdata, client_id); } -/* Authenticate the current context's user with the provided redis acl user. +/* Authenticate the current context's user with the provided redis acl user. * Returns REDISMODULE_ERR if the user is disabled or the user does not exist. - * + * * See authenticateClientWithUser for information about callback, client_id, * and general usage for authentication. */ int RM_AuthenticateClientWithACLUser(RedisModuleCtx *ctx, const char *name, size_t len, RedisModuleUserChangedFunc callback, void *privdata, uint64_t *client_id) { @@ -6567,15 +6567,15 @@ int RM_AuthenticateClientWithACLUser(RedisModuleCtx *ctx, const char *name, size } /* Deauthenticate and close the client. The client resources will not be - * be immediately freed, but will be cleaned up in a background job. This is - * the recommended way to deauthenicate a client since most clients can't + * be immediately freed, but will be cleaned up in a background job. This is + * the recommended way to deauthenticate a client since most clients can't * handle users becoming deauthenticated. Returns REDISMODULE_ERR when the - * client doesn't exist and REDISMODULE_OK when the operation was successful. - * + * client doesn't exist and REDISMODULE_OK when the operation was successful. + * * The client ID is returned from the RM_AuthenticateClientWithUser and * RM_AuthenticateClientWithACLUser APIs, but can be obtained through - * the CLIENT api or through server events. - * + * the CLIENT api or through server events. + * * This function is not thread safe, and must be executed within the context * of a command or thread safe context. */ int RM_DeauthenticateAndCloseClient(RedisModuleCtx *ctx, uint64_t client_id) { @@ -6598,7 +6598,7 @@ int RM_DeauthenticateAndCloseClient(RedisModuleCtx *ctx, uint64_t client_id) { * * - Connection ID does not exist * - Connection is not a TLS connection - * - Connection is a TLS connection but no client ceritifcate was used + * - Connection is a TLS connection but no client certificate was used */ RedisModuleString *RM_GetClientCertificate(RedisModuleCtx *ctx, uint64_t client_id) { client *c = lookupClientByID(client_id); @@ -6698,7 +6698,7 @@ void *RM_DictGet(RedisModuleDict *d, RedisModuleString *key, int *nokey) { } /* Remove the specified key from the dictionary, returning REDISMODULE_OK if - * the key was found and delted, or REDISMODULE_ERR if instead there was + * the key was found and deleted, or REDISMODULE_ERR if instead there was * no such key in the dictionary. When the operation is successful, if * 'oldval' is not NULL, then '*oldval' is set to the value stored at the * key before it was deleted. Using this feature it is possible to get @@ -6720,7 +6720,7 @@ int RM_DictDel(RedisModuleDict *d, RedisModuleString *key, void *oldval) { * operators available are: * * * `^` -- Seek the first (lexicographically smaller) key. - * * `$` -- Seek the last (lexicographically biffer) key. + * * `$` -- Seek the last (lexicographically bigger) key. * * `>` -- Seek the first element greater than the specified key. * * `>=` -- Seek the first element greater or equal than the specified key. * * `<` -- Seek the first element smaller than the specified key. @@ -6806,7 +6806,7 @@ void *RM_DictNextC(RedisModuleDictIter *di, size_t *keylen, void **dataptr) { /* This function is exactly like RedisModule_DictNext() but after returning * the currently selected element in the iterator, it selects the previous - * element (laxicographically smaller) instead of the next one. */ + * element (lexicographically smaller) instead of the next one. */ void *RM_DictPrevC(RedisModuleDictIter *di, size_t *keylen, void **dataptr) { if (!raxPrev(&di->ri)) return NULL; if (keylen) *keylen = di->ri.key_len; @@ -6829,7 +6829,7 @@ RedisModuleString *RM_DictNext(RedisModuleCtx *ctx, RedisModuleDictIter *di, voi } /* Like RedisModule_DictNext() but after returning the currently selected - * element in the iterator, it selects the previous element (laxicographically + * element in the iterator, it selects the previous element (lexicographically * smaller) instead of the next one. */ RedisModuleString *RM_DictPrev(RedisModuleCtx *ctx, RedisModuleDictIter *di, void **dataptr) { size_t keylen; @@ -6841,7 +6841,7 @@ RedisModuleString *RM_DictPrev(RedisModuleCtx *ctx, RedisModuleDictIter *di, voi /* Compare the element currently pointed by the iterator to the specified * element given by key/keylen, according to the operator 'op' (the set of * valid operators are the same valid for RedisModule_DictIteratorStart). - * If the comparision is successful the command returns REDISMODULE_OK + * If the comparison is successful the command returns REDISMODULE_OK * otherwise REDISMODULE_ERR is returned. * * This is useful when we want to just emit a lexicographical range, so @@ -7308,7 +7308,7 @@ int moduleUnregisterUsedAPI(RedisModule *module) { /* Unregister all filters registered by a module. * This is called when a module is being unloaded. - * + * * Returns the number of filters unregistered. */ int moduleUnregisterFilters(RedisModule *module) { listIter li; @@ -7614,7 +7614,7 @@ void RM_ScanCursorDestroy(RedisModuleScanCursor *cursor) { * RedisModule_ScanCursorDestroy(c); * * It is also possible to use this API from another thread while the lock - * is acquired during the actuall call to RM_Scan: + * is acquired during the actual call to RM_Scan: * * RedisModuleCursor *c = RedisModule_ScanCursorCreate(); * RedisModule_ThreadSafeContextLock(ctx); @@ -7711,7 +7711,7 @@ static void moduleScanKeyCallback(void *privdata, const dictEntry *de) { * RedisModule_ScanCursorDestroy(c); * * It is also possible to use this API from another thread while the lock is acquired during - * the actuall call to RM_ScanKey, and re-opening the key each time: + * the actual call to RM_ScanKey, and re-opening the key each time: * * RedisModuleCursor *c = RedisModule_ScanCursorCreate(); * RedisModule_ThreadSafeContextLock(ctx); @@ -7813,7 +7813,7 @@ int RM_ScanKey(RedisModuleKey *key, RedisModuleScanCursor *cursor, RedisModuleSc * ## Module fork API * -------------------------------------------------------------------------- */ -/* Create a background child process with the current frozen snaphost of the +/* Create a background child process with the current frozen snapshot of the * main process where you can do some processing in the background without * affecting / freezing the traffic and no need for threads and GIL locking. * Note that Redis allows for only one concurrent fork. @@ -7973,7 +7973,7 @@ void ModuleForkDoneHandler(int exitcode, int bysignal) { * The above events are triggered not just when the user calls the * relevant commands like BGSAVE, but also when a saving operation * or AOF rewriting occurs because of internal server triggers. - * The SYNC_RDB_START sub events are happening in the forground due to + * The SYNC_RDB_START sub events are happening in the foreground due to * SAVE command, FLUSHALL, or server shutdown, and the other RDB and * AOF sub events are executed in a background fork child, so any * action the module takes can only affect the generated AOF or RDB, @@ -8001,7 +8001,7 @@ void ModuleForkDoneHandler(int exitcode, int bysignal) { * int32_t dbnum; // Flushed database number, -1 for all the DBs * // in the case of the FLUSHALL operation. * - * The start event is called *before* the operation is initated, thus + * The start event is called *before* the operation is initiated, thus * allowing the callback to call DBSIZE or other operation on the * yet-to-free keyspace. * @@ -8093,7 +8093,7 @@ void ModuleForkDoneHandler(int exitcode, int bysignal) { * * This event is called repeatedly called while an RDB or AOF file * is being loaded. - * The following sub events are availble: + * The following sub events are available: * * * `REDISMODULE_SUBEVENT_LOADING_PROGRESS_RDB` * * `REDISMODULE_SUBEVENT_LOADING_PROGRESS_AOF` @@ -8219,7 +8219,7 @@ int RM_IsSubEventSupported(RedisModuleEvent event, int64_t subevent) { } /* This is called by the Redis internals every time we want to fire an - * event that can be interceppted by some module. The pointer 'data' is useful + * event that can be intercepted by some module. The pointer 'data' is useful * in order to populate the event-specific structure when needed, in order * to return the structure with more information to the callback. * @@ -8963,11 +8963,11 @@ int RM_ModuleTypeReplaceValue(RedisModuleKey *key, moduleType *mt, void *new_val /* For a specified command, parse its arguments and return an array that * contains the indexes of all key name arguments. This function is - * essnetially a more efficient way to do COMMAND GETKEYS. + * essentially a more efficient way to do COMMAND GETKEYS. * * A NULL return value indicates the specified command has no keys, or * an error condition. Error conditions are indicated by setting errno - * as folllows: + * as follows: * * * ENOENT: Specified command does not exist. * * EINVAL: Invalid command arity specified. diff --git a/src/modules/hellodict.c b/src/modules/hellodict.c index 1428a1381..3725e432a 100644 --- a/src/modules/hellodict.c +++ b/src/modules/hellodict.c @@ -88,7 +88,7 @@ int cmd_KEYRANGE(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { /* Reply with the matching items. */ char *key; size_t keylen; - long long replylen = 0; /* Keep track of the amitted array len. */ + long long replylen = 0; /* Keep track of the emitted array len. */ RedisModule_ReplyWithArray(ctx,REDISMODULE_POSTPONED_ARRAY_LEN); while((key = RedisModule_DictNextC(iter,&keylen,NULL)) != NULL) { if (replylen >= count) break; diff --git a/src/modules/hellotype.c b/src/modules/hellotype.c index 4f2d1d730..4a251f888 100644 --- a/src/modules/hellotype.c +++ b/src/modules/hellotype.c @@ -229,7 +229,7 @@ void HelloBlock_FreeData(RedisModuleCtx *ctx, void *privdata) { RedisModule_Free(privdata); } -/* HELLOTYPE.BRANGE key first count timeout -- This is a blocking verison of +/* HELLOTYPE.BRANGE key first count timeout -- This is a blocking version of * the RANGE operation, in order to show how to use the API * RedisModule_BlockClientOnKeys(). */ int HelloTypeBRange_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { diff --git a/src/networking.c b/src/networking.c index 70bafb5ea..6cd48cccc 100644 --- a/src/networking.c +++ b/src/networking.c @@ -302,7 +302,7 @@ void _addReplyProtoToList(client *c, const char *s, size_t len) { /* Note that 'tail' may be NULL even if we have a tail node, because when * addReplyDeferredLen() is used, it sets a dummy node to NULL just - * fo fill it later, when the size of the bulk length is set. */ + * to fill it later, when the size of the bulk length is set. */ /* Append to tail string when possible. */ if (tail) { @@ -1752,7 +1752,7 @@ int processInlineBuffer(client *c) { /* Masters should never send us inline protocol to run actual * commands. If this happens, it is likely due to a bug in Redis where * we got some desynchronization in the protocol, for example - * beause of a PSYNC gone bad. + * because of a PSYNC gone bad. * * However the is an exception: masters may send us just a newline * to keep the connection active. */ @@ -1783,7 +1783,7 @@ int processInlineBuffer(client *c) { return C_OK; } -/* Helper function. Record protocol erro details in server log, +/* Helper function. Record protocol error details in server log, * and set the client as CLIENT_CLOSE_AFTER_REPLY and * CLIENT_PROTOCOL_ERROR. */ #define PROTO_DUMP_LEN 128 @@ -2367,7 +2367,7 @@ sds getAllClientsInfoString(int type) { /* This function implements CLIENT SETNAME, including replying to the * user with an error if the charset is wrong (in that case C_ERR is - * returned). If the function succeeeded C_OK is returned, and it's up + * returned). If the function succeeded C_OK is returned, and it's up * to the caller to send a reply if needed. * * Setting an empty string as name has the effect of unsetting the @@ -2484,7 +2484,7 @@ void clientCommand(client *c) { "UNPAUSE", " Stop the current client pause, resuming traffic.", "PAUSE [WRITE|ALL]", -" Suspend all, or just write, clients for milliseconds.", +" Suspend all, or just write, clients for milliseconds.", "REPLY (ON|OFF|SKIP)", " Control the replies sent to the current connection.", "SETNAME ", @@ -3312,7 +3312,7 @@ void flushSlavesOutputBuffers(void) { * * A main use case of this function is to allow pausing replication traffic * so that a failover without data loss to occur. Replicas will continue to receive - * traffic to faciliate this functionality. + * traffic to facilitate this functionality. * * This function is also internally used by Redis Cluster for the manual * failover procedure implemented by CLUSTER FAILOVER. @@ -3401,7 +3401,7 @@ void processEventsWhileBlocked(void) { AE_FILE_EVENTS|AE_DONT_WAIT| AE_CALL_BEFORE_SLEEP|AE_CALL_AFTER_SLEEP); /* Note that server.events_processed_while_blocked will also get - * incremeted by callbacks called by the event loop handlers. */ + * incremented by callbacks called by the event loop handlers. */ server.events_processed_while_blocked += ae_events; long long events = server.events_processed_while_blocked - startval; if (!events) break; diff --git a/src/notify.c b/src/notify.c index afaddbfca..28c0048cb 100644 --- a/src/notify.c +++ b/src/notify.c @@ -93,8 +93,9 @@ sds keyspaceEventsFlagsToString(int flags) { /* The API provided to the rest of the Redis core is a simple function: * - * notifyKeyspaceEvent(char *event, robj *key, int dbid); + * notifyKeyspaceEvent(int type, char *event, robj *key, int dbid); * + * 'type' is the notification class we define in `server.h`. * 'event' is a C string representing the event name. * 'key' is a Redis object representing the key name. * 'dbid' is the database ID where the key lives. */ diff --git a/src/object.c b/src/object.c index 8e8ba7785..0f63d980a 100644 --- a/src/object.c +++ b/src/object.c @@ -762,7 +762,7 @@ char *strEncoding(int encoding) { /* =========================== Memory introspection ========================= */ -/* This is an helper function with the goal of estimating the memory +/* This is a helper function with the goal of estimating the memory * size of a radix tree that is used to store Stream IDs. * * Note: to guess the size of the radix tree is not trivial, so we @@ -1208,9 +1208,9 @@ int objectSetLRUOrLFU(robj *val, long long lfu_freq, long long lru_idle, * below statement will expand to lru_idle*1000/1000. */ lru_idle = lru_idle*lru_multiplier/LRU_CLOCK_RESOLUTION; long lru_abs = lru_clock - lru_idle; /* Absolute access time. */ - /* If the LRU field underflows (since LRU it is a wrapping + /* If the LRU field underflow (since LRU it is a wrapping * clock), the best we can do is to provide a large enough LRU - * that is half-way in the circlular LRU clock we use: this way + * that is half-way in the circular LRU clock we use: this way * the computed idle time for this object will stay high for quite * some time. */ if (lru_abs < 0) diff --git a/src/pubsub.c b/src/pubsub.c index 3409deac2..6d58e1b89 100644 --- a/src/pubsub.c +++ b/src/pubsub.c @@ -344,7 +344,7 @@ void subscribeCommand(client *c) { * expect a reply per command and so can not execute subscribe. * * Notice that we have a special treatment for multi because of - * backword compatibility + * backward compatibility */ addReplyError(c, "SUBSCRIBE isn't allowed for a DENY BLOCKING client"); return; @@ -377,7 +377,7 @@ void psubscribeCommand(client *c) { * expect a reply per command and so can not execute subscribe. * * Notice that we have a special treatment for multi because of - * backword compatibility + * backward compatibility */ addReplyError(c, "PSUBSCRIBE isn't allowed for a DENY BLOCKING client"); return; diff --git a/src/rax.c b/src/rax.c index 0826b974a..a82b2e7ee 100644 --- a/src/rax.c +++ b/src/rax.c @@ -182,7 +182,7 @@ static inline void raxStackFree(raxStack *ts) { ) /* Allocate a new non compressed node with the specified number of children. - * If datafiled is true, the allocation is made large enough to hold the + * If datafield is true, the allocation is made large enough to hold the * associated data pointer. * Returns the new node pointer. On out of memory NULL is returned. */ raxNode *raxNewNode(size_t children, int datafield) { @@ -259,7 +259,7 @@ raxNode *raxAddChild(raxNode *n, unsigned char c, raxNode **childptr, raxNode ** size_t curlen = raxNodeCurrentLength(n); n->size++; size_t newlen = raxNodeCurrentLength(n); - n->size--; /* For now restore the orignal size. We'll update it only on + n->size--; /* For now restore the original size. We'll update it only on success at the end. */ /* Alloc the new child we will link to 'n'. */ @@ -352,8 +352,8 @@ raxNode *raxAddChild(raxNode *n, unsigned char c, raxNode **childptr, raxNode ** * we don't need to do anything if there was already some padding to use. In * that case the final destination of the pointers will be the same, however * in our example there was no pre-existing padding, so we added one byte - * plus thre bytes of padding. After the next memmove() things will look - * like thata: + * plus there bytes of padding. After the next memmove() things will look + * like that: * * [HDR*][abde][....][Aptr][Bptr][....][Dptr][Eptr]|AUXP| */ @@ -653,7 +653,7 @@ int raxGenericInsert(rax *rax, unsigned char *s, size_t len, void *data, void ** * Let $SPLITPOS be the zero-based index at which, in the * compressed node array of characters, we stopped iterating because * there were no more keys character to match. So in the example of - * the node "ANNIBALE", addig the string "ANNI", the $SPLITPOS is 4. + * the node "ANNIBALE", adding the string "ANNI", the $SPLITPOS is 4. * * 1. Save the current compressed node $NEXT pointer (the pointer to the * child element, that is always present in compressed nodes). @@ -666,7 +666,7 @@ int raxGenericInsert(rax *rax, unsigned char *s, size_t len, void *data, void ** * * 3. Trim the current node to contain the first $SPLITPOS characters. * As usually if the new node length is just 1, set iscompr to 0. - * Take the iskey / associated value as it was in the orignal node. + * Take the iskey / associated value as it was in the original node. * Fix the parent's reference. * * 4. Set the postfix node as the only child pointer of the trimmed @@ -1102,9 +1102,9 @@ int raxRemove(rax *rax, unsigned char *s, size_t len, void **old) { * We try to navigate upward till there are other nodes that can be * compressed, when we reach the upper node which is not a key and has * a single child, we scan the chain of children to collect the - * compressable part of the tree, and replace the current node with the + * compressible part of the tree, and replace the current node with the * new one, fixing the child pointer to reference the first non - * compressable node. + * compressible node. * * Example of case "1". A tree stores the keys "FOO" = 1 and * "FOOBAR" = 2: @@ -1341,7 +1341,7 @@ int raxIteratorNextStep(raxIterator *it, int noup) { if (it->node_cb && it->node_cb(&it->node)) memcpy(cp,&it->node,sizeof(it->node)); /* For "next" step, stop every time we find a key along the - * way, since the key is lexicograhically smaller compared to + * way, since the key is lexicographically smaller compared to * what follows in the sub-children. */ if (it->node->iskey) { it->data = raxGetData(it->node); @@ -1409,7 +1409,7 @@ int raxIteratorNextStep(raxIterator *it, int noup) { } /* Seek the greatest key in the subtree at the current node. Return 0 on - * out of memory, otherwise 1. This is an helper function for different + * out of memory, otherwise 1. This is a helper function for different * iteration functions below. */ int raxSeekGreatest(raxIterator *it) { while(it->node->size) { diff --git a/src/rdb.c b/src/rdb.c index 5f9989f77..dfc08afcd 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -699,7 +699,7 @@ int rdbLoadObjectType(rio *rdb) { /* This helper function serializes a consumer group Pending Entries List (PEL) * into the RDB file. The 'nacks' argument tells the function if also persist - * the informations about the not acknowledged message, or if to persist + * the information about the not acknowledged message, or if to persist * just the IDs: this is useful because for the global consumer group PEL * we serialized the NACKs as well, but when serializing the local consumer * PELs we just add the ID, that will be resolved inside the global PEL to @@ -1446,13 +1446,13 @@ int rdbSaveBackground(char *filename, rdbSaveInfo *rsi) { /* Note that we may call this function in signal handle 'sigShutdownHandler', * so we need guarantee all functions we call are async-signal-safe. - * If we call this function from signal handle, we won't call bg_unlink that + * If we call this function from signal handle, we won't call bg_unlink that * is not async-signal-safe. */ void rdbRemoveTempFile(pid_t childpid, int from_signal) { char tmpfile[256]; char pid[32]; - /* Generate temp rdb file name using aync-signal safe functions. */ + /* Generate temp rdb file name using async-signal safe functions. */ int pid_len = ll2string(pid, sizeof(pid), childpid); strcpy(tmpfile, "temp-"); strncpy(tmpfile+5, pid, pid_len); @@ -1614,7 +1614,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb, sds key) { } } } else if (rdbtype == RDB_TYPE_ZSET_2 || rdbtype == RDB_TYPE_ZSET) { - /* Read list/set value. */ + /* Read sorted set value. */ uint64_t zsetlen; size_t maxelelen = 0; zset *zs; @@ -2625,7 +2625,7 @@ eoferr: * to do the actual loading. Moreover the ETA displayed in the INFO * output is initialized and finalized. * - * If you pass an 'rsi' structure initialied with RDB_SAVE_OPTION_INIT, the + * If you pass an 'rsi' structure initialized with RDB_SAVE_OPTION_INIT, the * loading code will fill the information fields in the structure. */ int rdbLoad(char *filename, rdbSaveInfo *rsi, int rdbflags) { FILE *fp; @@ -2901,7 +2901,7 @@ void bgsaveCommand(client *c) { * information inside the RDB file. Currently the structure explicitly * contains just the currently selected DB from the master stream, however * if the rdbSave*() family functions receive a NULL rsi structure also - * the Replication ID/offset is not saved. The function popultes 'rsi' + * the Replication ID/offset is not saved. The function populates 'rsi' * that is normally stack-allocated in the caller, returns the populated * pointer if the instance has a valid master client, otherwise NULL * is returned, and the RDB saving will not persist any replication related diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c index d124bc0dd..6761ee6f3 100644 --- a/src/redis-benchmark.c +++ b/src/redis-benchmark.c @@ -1466,7 +1466,7 @@ int parseOptions(int argc, const char **argv) { config.idlemode = 1; } else if (!strcmp(argv[i],"-e")) { printf("WARNING: -e option has been deprecated. " - "We now immediatly exit on error to avoid false results.\n"); + "We now immediately exit on error to avoid false results.\n"); } else if (!strcmp(argv[i],"-t")) { if (lastarg) goto invalid; /* We get the list of tests to run as a string in the form @@ -1586,11 +1586,11 @@ usage: " --insecure Allow insecure TLS connection by skipping cert validation.\n" " --cert Client certificate to authenticate with.\n" " --key Private key file to authenticate with.\n" -" --tls-ciphers Sets the list of prefered ciphers (TLSv1.2 and below)\n" +" --tls-ciphers Sets the list of preferred ciphers (TLSv1.2 and below)\n" " in order of preference from highest to lowest separated by colon (\":\").\n" " See the ciphers(1ssl) manpage for more information about the syntax of this string.\n" #ifdef TLS1_3_VERSION -" --tls-ciphersuites Sets the list of prefered ciphersuites (TLSv1.3)\n" +" --tls-ciphersuites Sets the list of preferred ciphersuites (TLSv1.3)\n" " in order of preference from highest to lowest separated by colon (\":\").\n" " See the ciphers(1ssl) manpage for more information about the syntax of this string,\n" " and specifically for TLSv1.3 ciphersuites.\n" diff --git a/src/redis-check-rdb.c b/src/redis-check-rdb.c index 6ddfda7ff..8f57fa4d4 100644 --- a/src/redis-check-rdb.c +++ b/src/redis-check-rdb.c @@ -128,7 +128,7 @@ void rdbCheckError(const char *fmt, ...) { rdbShowGenericInfo(); } -/* Print informations during RDB checking. */ +/* Print information during RDB checking. */ void rdbCheckInfo(const char *fmt, ...) { char msg[1024]; va_list ap; @@ -265,7 +265,7 @@ int redis_check_rdb(char *rdbfilename, FILE *fp) { } else if (type == RDB_OPCODE_AUX) { /* AUX: generic string-string fields. Use to add state to RDB * which is backward compatible. Implementations of RDB loading - * are requierd to skip AUX fields they don't understand. + * are required to skip AUX fields they don't understand. * * An AUX field is composed of two strings: key and value. */ robj *auxkey, *auxval; diff --git a/src/redis-cli.c b/src/redis-cli.c index 39535a9e0..b1d2d13ed 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -1077,7 +1077,7 @@ int isColorTerm(void) { return t != NULL && strstr(t,"xterm") != NULL; } -/* Helper function for sdsCatColorizedLdbReply() appending colorize strings +/* Helper function for sdsCatColorizedLdbReply() appending colorize strings * to an SDS string. */ sds sdscatcolor(sds o, char *s, size_t len, char *color) { if (!isColorTerm()) return sdscatlen(o,s,len); @@ -1893,11 +1893,11 @@ static void usage(void) { " --insecure Allow insecure TLS connection by skipping cert validation.\n" " --cert Client certificate to authenticate with.\n" " --key Private key file to authenticate with.\n" -" --tls-ciphers Sets the list of prefered ciphers (TLSv1.2 and below)\n" +" --tls-ciphers Sets the list of preferred ciphers (TLSv1.2 and below)\n" " in order of preference from highest to lowest separated by colon (\":\").\n" " See the ciphers(1ssl) manpage for more information about the syntax of this string.\n" #ifdef TLS1_3_VERSION -" --tls-ciphersuites Sets the list of prefered ciphersuites (TLSv1.3)\n" +" --tls-ciphersuites Sets the list of preferred ciphersuites (TLSv1.3)\n" " in order of preference from highest to lowest separated by colon (\":\").\n" " See the ciphers(1ssl) manpage for more information about the syntax of this string,\n" " and specifically for TLSv1.3 ciphersuites.\n" @@ -1909,7 +1909,7 @@ static void usage(void) { " --quoted-input Force input to be handled as quoted strings.\n" " --csv Output in CSV format.\n" " --show-pushes Whether to print RESP3 PUSH messages. Enabled by default when\n" -" STDOUT is a tty but can be overriden with --show-pushes no.\n" +" STDOUT is a tty but can be overridden with --show-pushes no.\n" " --stat Print rolling stats about server: mem, clients, ...\n" " --latency Enter a special mode continuously sampling latency.\n" " If you use this mode in an interactive session it runs\n" @@ -2639,7 +2639,7 @@ static int parseClusterNodeAddress(char *addr, char **ip_ptr, int *port_ptr, * been provided it must be in the form of 'ip:port', elsewhere * the first argument must be the ip and the second one the port. * If host and port can be detected, it returns 1 and it stores host and - * port into variables referenced by'ip_ptr' and 'port_ptr' pointers, + * port into variables referenced by 'ip_ptr' and 'port_ptr' pointers, * elsewhere it returns 0. */ static int getClusterHostFromCmdArgs(int argc, char **argv, char **ip_ptr, int *port_ptr) { @@ -2992,7 +2992,7 @@ result: * So a greater score means a worse anti-affinity level, while zero * means perfect anti-affinity. * - * The anti affinity optimizator will try to get a score as low as + * The anti affinity optimization will try to get a score as low as * possible. Since we do not want to sacrifice the fact that slaves should * not be in the same host as the master, we assign 10000 times the score * to this violation, so that we'll optimize for the second factor only @@ -8183,7 +8183,7 @@ static void LRUTestMode(void) { } /*------------------------------------------------------------------------------ - * Intrisic latency mode. + * Intrinsic latency mode. * * Measure max latency of a running process that does not result from * syscalls. Basically this software should provide a hint about how much diff --git a/src/replication.c b/src/replication.c index bd0c6ca8c..7e27a9b56 100644 --- a/src/replication.c +++ b/src/replication.c @@ -789,7 +789,7 @@ void syncCommand(client *c) { /* Increment stats for failed PSYNCs, but only if the * replid is not "?", as this is used by slaves to force a full - * resync on purpose when they are not albe to partially + * resync on purpose when they are not able to partially * resync. */ if (master_replid[0] != '?') server.stat_sync_partial_err++; } @@ -870,7 +870,7 @@ void syncCommand(client *c) { * in order to synchronize. */ serverLog(LL_NOTICE,"Current BGSAVE has socket target. Waiting for next BGSAVE for SYNC"); - /* CASE 3: There is no BGSAVE is progress. */ + /* CASE 3: There is no BGSAVE is in progress. */ } else { if (server.repl_diskless_sync && (c->slave_capa & SLAVE_CAPA_EOF) && server.repl_diskless_sync_delay) @@ -1234,7 +1234,7 @@ void rdbPipeReadHandler(struct aeEventLoop *eventLoop, int fd, void *clientData, } serverLog(LL_WARNING,"Diskless rdb transfer, done reading from pipe, %d replicas still up.", stillUp); /* Now that the replicas have finished reading, notify the child that it's safe to exit. - * When the server detectes the child has exited, it can mark the replica as online, and + * When the server detects the child has exited, it can mark the replica as online, and * start streaming the replication buffers. */ close(server.rdb_child_exit_pipe); server.rdb_child_exit_pipe = -1; @@ -1336,7 +1336,7 @@ void updateSlavesWaitingBgsave(int bgsaveerr, int type) { * * So things work like that: * - * 1. We end trasnferring the RDB file via socket. + * 1. We end transferring the RDB file via socket. * 2. The replica is put ONLINE but the write handler * is not installed. * 3. The replica however goes really online, and pings us @@ -1351,7 +1351,7 @@ void updateSlavesWaitingBgsave(int bgsaveerr, int type) { * in advance). Detecting such final EOF string is much * simpler and less CPU intensive if no more data is sent * after such final EOF. So we don't want to glue the end of - * the RDB trasfer with the start of the other replication + * the RDB transfer with the start of the other replication * data. */ slave->replstate = SLAVE_STATE_ONLINE; slave->repl_put_online_on_ack = 1; @@ -1717,7 +1717,7 @@ void readSyncBulkPayload(connection *conn) { * such case we want just to read the RDB file in memory. */ serverLog(LL_NOTICE, "MASTER <-> REPLICA sync: Flushing old data"); - /* We need to stop any AOF rewriting child before flusing and parsing + /* We need to stop any AOF rewriting child before flushing and parsing * the RDB, otherwise we'll create a copy-on-write disaster. */ if (server.aof_state != AOF_OFF) stopAppendOnly(); @@ -2408,7 +2408,7 @@ void syncWithMaster(connection *conn) { server.repl_state = REPL_STATE_SEND_PSYNC; } - /* Try a partial resynchonization. If we don't have a cached master + /* Try a partial resynchronization. If we don't have a cached master * slaveTryPartialResynchronization() will at least try to use PSYNC * to start a full resynchronization so that we get the master replid * and the global offset, to try a partial resync at the next @@ -2901,7 +2901,7 @@ void replicationCacheMaster(client *c) { unlinkClient(c); /* Reset the master client so that's ready to accept new commands: - * we want to discard te non processed query buffers and non processed + * we want to discard the non processed query buffers and non processed * offsets, including pending transactions, already populated arguments, * pending outputs to the master. */ sdsclear(server.master->querybuf); @@ -2935,13 +2935,13 @@ void replicationCacheMaster(client *c) { replicationHandleMasterDisconnection(); } -/* This function is called when a master is turend into a slave, in order to +/* This function is called when a master is turned into a slave, in order to * create from scratch a cached master for the new client, that will allow * to PSYNC with the slave that was promoted as the new master after a * failover. * * Assuming this instance was previously the master instance of the new master, - * the new master will accept its replication ID, and potentiall also the + * the new master will accept its replication ID, and potential also the * current offset if no data was lost during the failover. So we use our * current replication ID and offset in order to synthesize a cached master. */ void replicationCacheMasterUsingMyself(void) { diff --git a/src/rio.c b/src/rio.c index 0d107708f..529f0aeb9 100644 --- a/src/rio.c +++ b/src/rio.c @@ -310,7 +310,7 @@ static size_t rioFdWrite(rio *r, const void *buf, size_t len) { if (!doflush) return 1; } - /* Flusing the buffered data. set 'p' and 'len' accordintly. */ + /* Flushing the buffered data. set 'p' and 'len' accordingly. */ p = (unsigned char*) r->io.fd.buf; len = sdslen(r->io.fd.buf); } diff --git a/src/scripting.c b/src/scripting.c index 740ef2766..73f40e3f9 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -1667,7 +1667,7 @@ void evalGenericCommand(client *c, int evalsha) { * To do so we use a cache of SHA1s of scripts that we already propagated * as full EVAL, that's called the Replication Script Cache. * - * For replication, everytime a new slave attaches to the master, we need to + * For replication, every time a new slave attaches to the master, we need to * flush our cache of scripts that can be replicated as EVALSHA, while * for AOF we need to do so every time we rewrite the AOF file. */ if (evalsha && !server.lua_replicate_commands) { @@ -2275,7 +2275,7 @@ sds ldbCatStackValue(sds s, lua_State *lua, int idx) { } /* Produce a debugger log entry representing the value of the Lua object - * currently on the top of the stack. The element is ot popped nor modified. + * currently on the top of the stack. The element is not popped nor modified. * Check ldbCatStackValue() for the actual implementation. */ void ldbLogStackValue(lua_State *lua, char *prefix) { sds s = sdsnew(prefix); diff --git a/src/sds.c b/src/sds.c index 2addd56a5..17cd6ae69 100644 --- a/src/sds.c +++ b/src/sds.c @@ -92,7 +92,7 @@ static inline size_t sdsTypeMaxSize(char type) { * If NULL is used for 'init' the string is initialized with zero bytes. * If SDS_NOINIT is used, the buffer is left uninitialized; * - * The string is always null-termined (all the sds strings are, always) so + * The string is always null-terminated (all the sds strings are, always) so * even if you create an sds string with: * * mystring = sdsnewlen("abc",3); @@ -469,7 +469,7 @@ sds sdscpylen(sds s, const char *t, size_t len) { return s; } -/* Like sdscpylen() but 't' must be a null-termined string so that the length +/* Like sdscpylen() but 't' must be a null-terminated string so that the length * of the string is obtained with strlen(). */ sds sdscpy(sds s, const char *t) { return sdscpylen(s, t, strlen(t)); @@ -731,7 +731,7 @@ sds sdscatfmt(sds s, char const *fmt, ...) { } /* Remove the part of the string from left and from right composed just of - * contiguous characters found in 'cset', that is a null terminted C string. + * contiguous characters found in 'cset', that is a null terminated C string. * * After the call, the modified sds string is no longer valid and all the * references must be substituted with the new pointer returned by the call. @@ -1179,7 +1179,7 @@ sds sdstemplate(const char *template, sdstemplate_callback_t cb_func, void *cb_a res = sdscat(res, p); break; } else if (sv > p) { - /* Found: copy anything up to the begining of the variable */ + /* Found: copy anything up to the beginning of the variable */ res = sdscatlen(res, p, sv - p); } diff --git a/src/sentinel.c b/src/sentinel.c index 662909d4a..060e499ad 100644 --- a/src/sentinel.c +++ b/src/sentinel.c @@ -1422,7 +1422,7 @@ sentinelRedisInstance *sentinelRedisInstanceLookupSlave( /* We need to handle a slave_addr that is potentially a hostname. * If that is the case, depending on configuration we either resolve - * it and use the IP addres or fail. + * it and use the IP address or fail. */ addr = createSentinelAddr(slave_addr, port); if (!addr) return NULL; @@ -3550,7 +3550,7 @@ void sentinelCommand(client *c) { "SENTINELS ", " Show a list of Sentinel instances for this master and their state.", "SET