mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
curlsshsink: post error on bus in element, not transfer thread
Looks like this file was missed in Bug 728960: https://bugzilla.gnome.org/show_bug.cgi?id=728960 https://bugzilla.gnome.org/show_bug.cgi?id=730459
This commit is contained in:
parent
2da979831e
commit
5edf0add57
1 changed files with 24 additions and 25 deletions
|
@ -318,14 +318,14 @@ static gboolean
|
|||
gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
||||
{
|
||||
GstCurlSshSink *sink = GST_CURL_SSH_SINK (bcsink);
|
||||
gint curl_err = CURLE_OK;
|
||||
CURLcode curl_err = CURLE_OK;
|
||||
|
||||
/* set SSH specific options here */
|
||||
if (sink->ssh_pub_keyfile) {
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PUBLIC_KEYFILE,
|
||||
sink->ssh_pub_keyfile)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting public key file: %s.",
|
||||
curl_err, sink->ssh_pub_keyfile);
|
||||
bcsink->error = g_strdup_printf ("failed to set public key file: %s",
|
||||
curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -333,8 +333,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
if (sink->ssh_priv_keyfile) {
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PRIVATE_KEYFILE,
|
||||
sink->ssh_priv_keyfile)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting private key file: %s.",
|
||||
curl_err, sink->ssh_priv_keyfile);
|
||||
bcsink->error = g_strdup_printf ("failed to set private key file: %s",
|
||||
curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -342,8 +342,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
if (sink->ssh_knownhosts) {
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KNOWNHOSTS,
|
||||
sink->ssh_knownhosts)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting known_hosts file: %s.",
|
||||
curl_err, sink->ssh_knownhosts);
|
||||
bcsink->error = g_strdup_printf ("failed to set known_hosts file: %s",
|
||||
curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -353,17 +353,16 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
* hexdigits long it silently ignores CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and
|
||||
* performs the transfer without authenticating the server! */
|
||||
if (strlen (sink->ssh_host_public_key_md5) != 32) {
|
||||
GST_ERROR_OBJECT (sink,
|
||||
"MD5-hash string has invalid length, must be exactly 32 hexdigits!");
|
||||
bcsink->error = g_strdup ("MD5-hash string has invalid length, "
|
||||
"must be exactly 32 hexdigits!");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ((curl_err =
|
||||
curl_easy_setopt (bcsink->curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
|
||||
sink->ssh_host_public_key_md5)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink,
|
||||
"curl error: %d setting remote host's public key MD5: %s.", curl_err,
|
||||
sink->ssh_host_public_key_md5);
|
||||
bcsink->error = g_strdup_printf ("failed to set remote host's public "
|
||||
"key MD5: %s", curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -376,8 +375,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
/* set the SSH_AUTH_TYPE */
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_AUTH_TYPES,
|
||||
sink->ssh_auth_type)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting auth type: %d.", curl_err,
|
||||
sink->ssh_auth_type);
|
||||
bcsink->error = g_strdup_printf ("failed to set authentication type: %s",
|
||||
curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -386,9 +385,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
if (sink->ssh_key_passphrase) {
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_KEYPASSWD,
|
||||
sink->ssh_key_passphrase)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink,
|
||||
"curl error: %d setting private key passphrase: %s.", curl_err,
|
||||
sink->ssh_key_passphrase);
|
||||
bcsink->error = g_strdup_printf ("failed to set private key "
|
||||
"passphrase: %s", curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
|
@ -401,8 +399,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
}
|
||||
|
||||
} else {
|
||||
GST_ERROR_OBJECT (sink, "Error: unsupported authentication type: %d.",
|
||||
sink->ssh_auth_type);
|
||||
bcsink->error = g_strdup_printf ("Error: unsupported authentication type: "
|
||||
"%d.", sink->ssh_auth_type);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -411,8 +409,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
* is also set! */
|
||||
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYFUNCTION,
|
||||
curl_ssh_sink_sshkey_cb)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting CURLOPT_SSH_KEYFUNCTION.",
|
||||
curl_err);
|
||||
bcsink->error = g_strdup_printf ("failed to set SSH_KEYFUNCTION callback: "
|
||||
"%s", curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
} else {
|
||||
/* SSH_KEYFUNCTION callback successfully installed so go on and
|
||||
|
@ -420,8 +418,9 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
|
|||
if ((curl_err =
|
||||
curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYDATA,
|
||||
sink)) != CURLE_OK) {
|
||||
GST_ERROR_OBJECT (sink, "curl error: %d setting CURLOPT_SSH_KEYDATA.",
|
||||
curl_err);
|
||||
bcsink->error = g_strdup_printf ("failed to set CURLOPT_SSH_KEYDATA: %s",
|
||||
curl_easy_strerror (curl_err));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -484,8 +483,8 @@ curl_ssh_sink_sshkey_cb (CURL * easy_handle, /* easy handle */
|
|||
|
||||
default:
|
||||
/* something went wrong, we got some bogus key match result */
|
||||
GST_ERROR_OBJECT (sink,
|
||||
"libcurl internal error encountered during known_host matching");
|
||||
GST_CURL_BASE_SINK (sink)->error =
|
||||
g_strdup ("libcurl internal error during known_host matching");
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue