|
|
@@ -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); |
|
|
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) { |
|
|
if (ssh_connect(libssh->session) != SSH_OK) { |
|
|
av_log(libssh, AV_LOG_ERROR, "Connection failed: %s\n", ssh_get_error(libssh->session)); |
|
|
av_log(libssh, AV_LOG_ERROR, "Connection failed: %s\n", ssh_get_error(libssh->session)); |
|
|
return AVERROR(EIO); |
|
|
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; |
|
|
LIBSSHContext *libssh = h->priv_data; |
|
|
char proto[10], path[MAX_URL_SIZE], hostname[1024], credencials[1024]; |
|
|
char proto[10], path[MAX_URL_SIZE], hostname[1024], credencials[1024]; |
|
|
int port = 22, ret; |
|
|
|
|
|
|
|
|
int port, ret; |
|
|
const char *user = NULL, *pass = NULL; |
|
|
const char *user = NULL, *pass = NULL; |
|
|
char *end = NULL; |
|
|
char *end = NULL; |
|
|
|
|
|
|
|
|
@@ -198,8 +202,9 @@ static av_cold int libssh_open(URLContext *h, const char *url, int flags) |
|
|
path, sizeof(path), |
|
|
path, sizeof(path), |
|
|
url); |
|
|
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) |
|
|
if ((ret = libssh_create_ssh_session(libssh, hostname, port)) < 0) |
|
|
goto fail; |
|
|
goto fail; |
|
|
|