diff options
author | antirez <antirez@gmail.com> | 2013-07-05 11:07:55 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-07-05 11:07:55 +0200 |
commit | c978b864f74a86dcffc54d66873f7eae6c2c7121 (patch) | |
tree | e84f24a023b2e52e73e95492206eba666169fdeb /src/anet.c | |
parent | 90b0d66cce97aaac3a6437ac77b5dad9064136d1 (diff) | |
download | redis-c978b864f74a86dcffc54d66873f7eae6c2c7121.tar.gz |
Revert "anet.c: Allow creation of TCP listening sockets bound to N addresses."
Bind() can't be called multiple times against the same socket, multiple
sockets are required to bind multiple interfaces, silly me.
This reverts commit bd234d62bbfe9feb735fd6d1cdb8f5ce811f54b4.
Diffstat (limited to 'src/anet.c')
-rw-r--r-- | src/anet.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/anet.c b/src/anet.c index 7a6b7d4bf..963b6688e 100644 --- a/src/anet.c +++ b/src/anet.c @@ -331,9 +331,9 @@ static int anetListen(char *err, int s, struct sockaddr *sa, socklen_t len) { return ANET_OK; } -int anetTcpServer(char *err, int port, char **bindaddr, int bindaddr_count) +int anetTcpServer(char *err, int port, char *bindaddr) { - int s, j; + int s; struct sockaddr_in sa; if ((s = anetCreateSocket(err,AF_INET)) == ANET_ERR) @@ -343,20 +343,13 @@ int anetTcpServer(char *err, int port, char **bindaddr, int bindaddr_count) sa.sin_family = AF_INET; sa.sin_port = htons(port); sa.sin_addr.s_addr = htonl(INADDR_ANY); - if (bindaddr_count) { - for (j = 0; j < bindaddr_count; j++) { - if (inet_aton(bindaddr[j], &sa.sin_addr) == 0) { - anetSetError(err, "invalid bind address"); - close(s); - return ANET_ERR; - } - if (anetListen(err,s,(struct sockaddr*)&sa,sizeof(sa)) == ANET_ERR) - return ANET_ERR; - } - } else { - if (anetListen(err,s,(struct sockaddr*)&sa,sizeof(sa)) == ANET_ERR) - return ANET_ERR; + if (bindaddr && inet_aton(bindaddr, &sa.sin_addr) == 0) { + anetSetError(err, "invalid bind address"); + close(s); + return ANET_ERR; } + if (anetListen(err,s,(struct sockaddr*)&sa,sizeof(sa)) == ANET_ERR) + return ANET_ERR; return s; } |