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. */
| 1389 | * masters table (if it is a master) or from its master sentinels/slaves table |
| 1390 | * if it is a slave or sentinel. */ |
| 1391 | void releaseSentinelRedisInstance(sentinelRedisInstance *ri) { |
| 1392 | /* Release all its slaves or sentinels if any. */ |
| 1393 | dictRelease(ri->sentinels); |
| 1394 | dictRelease(ri->slaves); |
| 1395 | |
| 1396 | /* Disconnect the instance. */ |
| 1397 | releaseInstanceLink(ri->link,ri); |
| 1398 | |
| 1399 | /* Free other resources. */ |
| 1400 | sdsfree(ri->name); |
| 1401 | sdsfree(ri->runid); |
| 1402 | sdsfree(ri->notification_script); |
| 1403 | sdsfree(ri->client_reconfig_script); |
| 1404 | sdsfree(ri->slave_master_host); |
| 1405 | sdsfree(ri->leader); |
| 1406 | sdsfree(ri->auth_pass); |
| 1407 | sdsfree(ri->auth_user); |
| 1408 | sdsfree(ri->info); |
| 1409 | releaseSentinelAddr(ri->addr); |
| 1410 | dictRelease(ri->renamed_commands); |
| 1411 | |
| 1412 | /* Clear state into the master if needed. */ |
| 1413 | if ((ri->flags & SRI_SLAVE) && (ri->flags & SRI_PROMOTED) && ri->master) |
| 1414 | ri->master->promoted_slave = NULL; |
| 1415 | |
| 1416 | zfree(ri); |
| 1417 | } |
| 1418 | |
| 1419 | /* Lookup a slave in a master Redis instance, by ip and port. */ |
| 1420 | sentinelRedisInstance *sentinelRedisInstanceLookupSlave( |
no test coverage detected