Release this instance and all its slaves, sentinels, hiredis connections. * This function does not take care of unlinking the instance from the main * masters table (if it is a master) or from its master sentinels/slaves table * if it is a slave or sentinel. */
| 1383 | * masters table (if it is a master) or from its master sentinels/slaves table |
| 1384 | * if it is a slave or sentinel. */ |
| 1385 | void releaseSentinelRedisInstance(sentinelRedisInstance *ri) { |
| 1386 | /* Release all its slaves or sentinels if any. */ |
| 1387 | dictRelease(ri->sentinels); |
| 1388 | dictRelease(ri->slaves); |
| 1389 | |
| 1390 | /* Disconnect the instance. */ |
| 1391 | releaseInstanceLink(ri->link,ri); |
| 1392 | |
| 1393 | /* Free other resources. */ |
| 1394 | sdsfree(ri->name); |
| 1395 | sdsfree(ri->runid); |
| 1396 | sdsfree(ri->notification_script); |
| 1397 | sdsfree(ri->client_reconfig_script); |
| 1398 | sdsfree(ri->slave_master_host); |
| 1399 | sdsfree(ri->leader); |
| 1400 | sdsfree(ri->auth_pass); |
| 1401 | sdsfree(ri->auth_user); |
| 1402 | sdsfree(ri->info); |
| 1403 | releaseSentinelAddr(ri->addr); |
| 1404 | dictRelease(ri->renamed_commands); |
| 1405 | |
| 1406 | /* Clear state into the master if needed. */ |
| 1407 | if ((ri->flags & SRI_SLAVE) && (ri->flags & SRI_PROMOTED) && ri->master) |
| 1408 | ri->master->promoted_slave = NULL; |
| 1409 | |
| 1410 | zfree(ri); |
| 1411 | } |
| 1412 | |
| 1413 | /* Lookup a slave in a master Redis instance, by ip and port. */ |
| 1414 | sentinelRedisInstance *sentinelRedisInstanceLookupSlave( |
no test coverage detected