From 138bd501d029ec492d1cd8859e86026c9d6911a3 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Thu, 31 Mar 2016 05:49:06 +0000 Subject: [PATCH] Can bind to specific IP FossilOrigin-Name: 680179a5bda1f25d5acd84edb25026e6896cd5675afa0d26157bad4802c7853d --- src/wtp/discovery.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/wtp/discovery.c b/src/wtp/discovery.c index 13ef6683..8232fd8a 100644 --- a/src/wtp/discovery.c +++ b/src/wtp/discovery.c @@ -223,6 +223,19 @@ static int cw_run_discovery(struct conn *conn, const char *acaddr) sock_set_dontfrag(sockfd, 0); sock_copyaddr(&conn->addr, res->ai_addr); + + + if (conf_ip){ + struct sockaddr bind_address; + sock_strtoaddr(conf_ip,&bind_address); + int brc = bind(sockfd,&bind_address,sock_addrlen(&bind_address)); + if (brc<0) { + cw_log(LOG_ERR,"Can't bind to %s",sock_addr2str(&bind_address)); + return 0; + } + } + + conn->sock = sockfd; conn->readfrom = conn_recvfrom_packet;