diff --git a/libavformat/libssh.c b/libavformat/libssh.c index 3ec60cb8f4..fac6114210 100644 --- a/libavformat/libssh.c +++ b/libavformat/libssh.c @@ -55,6 +55,10 @@ static av_cold int libssh_create_ssh_session(LIBSSHContext *libssh, const char* ssh_options_set(libssh->session, SSH_OPTIONS_TIMEOUT_USEC, &timeout); } + if (ssh_options_parse_config(libssh->session, NULL) < 0) { + av_log(libssh, AV_LOG_WARNING, "Could not parse the config file.\n"); + } + if (ssh_connect(libssh->session) != SSH_OK) { av_log(libssh, AV_LOG_ERROR, "Connection failed: %s\n", ssh_get_error(libssh->session)); return AVERROR(EIO); @@ -187,7 +191,7 @@ static av_cold int libssh_open(URLContext *h, const char *url, int flags) { LIBSSHContext *libssh = h->priv_data; char proto[10], path[MAX_URL_SIZE], hostname[1024], credencials[1024]; - int port = 22, ret; + int port, ret; const char *user = NULL, *pass = NULL; char *end = NULL; @@ -198,8 +202,9 @@ static av_cold int libssh_open(URLContext *h, const char *url, int flags) path, sizeof(path), url); - if (port <= 0 || port > 65535) - port = 22; + // a port of 0 will use a port from ~/.ssh/config or the default value 22 + if (port < 0 || port > 65535) + port = 0; if ((ret = libssh_create_ssh_session(libssh, hostname, port)) < 0) goto fail;