ssh: optional bind interface if bind address specified.

Allows the -b and -B options to be used together.
For example, when the interface is in the VRF.
This commit is contained in:
Dmitrii Turlupov 2021-02-04 16:27:31 +03:00 committed by Damien Miller
parent 1fe4d70df9
commit 5a878a71a3
1 changed files with 6 additions and 0 deletions

View File

@ -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) {