Free a migrate cached connection. */
| 5288 | |
| 5289 | /* Free a migrate cached connection. */ |
| 5290 | void migrateCloseSocket(robj *host, robj *port) { |
| 5291 | sds name = sdsempty(); |
| 5292 | migrateCachedSocket *cs; |
| 5293 | |
| 5294 | name = sdscatlen(name,host->ptr,sdslen(host->ptr)); |
| 5295 | name = sdscatlen(name,":",1); |
| 5296 | name = sdscatlen(name,port->ptr,sdslen(port->ptr)); |
| 5297 | cs = dictFetchValue(server.migrate_cached_sockets,name); |
| 5298 | if (!cs) { |
| 5299 | sdsfree(name); |
| 5300 | return; |
| 5301 | } |
| 5302 | |
| 5303 | connClose(cs->conn); |
| 5304 | zfree(cs); |
| 5305 | dictDelete(server.migrate_cached_sockets,name); |
| 5306 | sdsfree(name); |
| 5307 | } |
| 5308 | |
| 5309 | void migrateCloseTimedoutSockets(void) { |
| 5310 | dictIterator *di = dictGetSafeIterator(server.migrate_cached_sockets); |
no test coverage detected