Iterate over modules, and trigger rdb aux saving for the ones modules types * who asked for it. */
| 4987 | /* Iterate over modules, and trigger rdb aux saving for the ones modules types |
| 4988 | * who asked for it. */ |
| 4989 | ssize_t rdbSaveModulesAux(rio *rdb, int when) { |
| 4990 | size_t total_written = 0; |
| 4991 | dictIterator *di = dictGetIterator(modules); |
| 4992 | dictEntry *de; |
| 4993 | |
| 4994 | while ((de = dictNext(di)) != NULL) { |
| 4995 | struct RedisModule *module = (RedisModule*)dictGetVal(de); |
| 4996 | listIter li; |
| 4997 | listNode *ln; |
| 4998 | |
| 4999 | listRewind(module->types,&li); |
| 5000 | while((ln = listNext(&li))) { |
| 5001 | moduleType *mt = (moduleType*)ln->value; |
| 5002 | if (!mt->aux_save || !(mt->aux_save_triggers & when)) |
| 5003 | continue; |
| 5004 | ssize_t ret = rdbSaveSingleModuleAux(rdb, when, mt); |
| 5005 | if (ret==-1) { |
| 5006 | dictReleaseIterator(di); |
| 5007 | return -1; |
| 5008 | } |
| 5009 | total_written += ret; |
| 5010 | } |
| 5011 | } |
| 5012 | |
| 5013 | dictReleaseIterator(di); |
| 5014 | return total_written; |
| 5015 | } |
| 5016 | |
| 5017 | /* -------------------------------------------------------------------------- |
| 5018 | * ## Key digest API (DEBUG DIGEST interface for modules types) |
no test coverage detected