summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sshconnect.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sshconnect.c b/sshconnect.c
index 74f9e767..8666bd6e 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -390,6 +390,12 @@ ssh_create_socket(struct addrinfo *ai)
}
memcpy(&bindaddr, res->ai_addr, res->ai_addrlen);
bindaddrlen = res->ai_addrlen;
+
+ /*'-B' option*/
+ if (options.bind_interface != NULL) {
+ if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, options.bind_interface, strlen(options.bind_interface) + 1))
+ debug("error: setsockopt SO_BINDTODEVICE");
+ }
} else if (options.bind_interface != NULL) {
#ifdef HAVE_IFADDRS_H
if ((r = getifaddrs(&ifaddrs)) != 0) {