Networking: add more outbound IP binding fixes

Same as the original bind fixes (we just missed these the
first time around).

This helps Redis not automatically send
connections from the first IP on an interface if we are bound
to a specific IP address (e.g. with multiple IP aliases on one
interface, you want to send from _your_ IP, not from the first IP
on the interface).
This commit is contained in:
Matt Stancliff
2014-10-28 12:25:16 -04:00
committed by antirez
parent e8f7899ae2
commit f1a6f78024
2 changed files with 4 additions and 3 deletions

View File

@ -4307,8 +4307,8 @@ int migrateGetSocket(redisClient *c, robj *host, robj *port, long timeout) {
} }
/* Create the socket */ /* Create the socket */
fd = anetTcpNonBlockConnect(server.neterr,c->argv[1]->ptr, fd = anetTcpNonBlockBindConnect(server.neterr,c->argv[1]->ptr,
atoi(c->argv[2]->ptr)); atoi(c->argv[2]->ptr),REDIS_BIND_ADDR);
if (fd == -1) { if (fd == -1) {
sdsfree(name); sdsfree(name);
addReplyErrorFormat(c,"Can't connect to target node: %s", addReplyErrorFormat(c,"Can't connect to target node: %s",

View File

@ -1357,7 +1357,8 @@ error:
int connectWithMaster(void) { int connectWithMaster(void) {
int fd; int fd;
fd = anetTcpNonBlockConnect(NULL,server.masterhost,server.masterport); fd = anetTcpNonBlockBindConnect(NULL,
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",
strerror(errno)); strerror(errno));