mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 17:10:50 +00:00
Use best effort address binding to connect to the master
We usually want to reach the master using the address of the interface Redis is bound to (via the "bind" config option). That's useful since the master will get (and publish) the slave address getting the peer name of the incoming socket connection from the slave. However, when this is not possible, for example because the slave is bound to the loopback interface but repliaces from a master accessed via an external interface, we want to still connect with the master even from a different interface: in this case it is not really important that the master will provide any other address, while it is vital to be able to replicate correctly. Related to issues #2609 and #2612.
This commit is contained in:
parent
a017b7ec0e
commit
8366907bed
@ -1384,7 +1384,7 @@ error:
|
|||||||
int connectWithMaster(void) {
|
int connectWithMaster(void) {
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
fd = anetTcpNonBlockBindConnect(NULL,
|
fd = anetTcpNonBlockBestEffortBindConnect(NULL,
|
||||||
server.masterhost,server.masterport,REDIS_BIND_ADDR);
|
server.masterhost,server.masterport,REDIS_BIND_ADDR);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
redisLog(REDIS_WARNING,"Unable to connect to MASTER: %s",
|
redisLog(REDIS_WARNING,"Unable to connect to MASTER: %s",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user