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:
L. Sorin 2014-05-20 17:09:43 +02:00 committed by Sebastian Dröge
parent 2da979831e
commit 5edf0add57

View file

@ -318,14 +318,14 @@ static gboolean
gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink) gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
{ {
GstCurlSshSink *sink = GST_CURL_SSH_SINK (bcsink); GstCurlSshSink *sink = GST_CURL_SSH_SINK (bcsink);
gint curl_err = CURLE_OK; CURLcode curl_err = CURLE_OK;
/* set SSH specific options here */ /* set SSH specific options here */
if (sink->ssh_pub_keyfile) { if (sink->ssh_pub_keyfile) {
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PUBLIC_KEYFILE, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PUBLIC_KEYFILE,
sink->ssh_pub_keyfile)) != CURLE_OK) { sink->ssh_pub_keyfile)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting public key file: %s.", bcsink->error = g_strdup_printf ("failed to set public key file: %s",
curl_err, sink->ssh_pub_keyfile); curl_easy_strerror (curl_err));
return FALSE; return FALSE;
} }
} }
@ -333,8 +333,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
if (sink->ssh_priv_keyfile) { if (sink->ssh_priv_keyfile) {
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PRIVATE_KEYFILE, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_PRIVATE_KEYFILE,
sink->ssh_priv_keyfile)) != CURLE_OK) { sink->ssh_priv_keyfile)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting private key file: %s.", bcsink->error = g_strdup_printf ("failed to set private key file: %s",
curl_err, sink->ssh_priv_keyfile); curl_easy_strerror (curl_err));
return FALSE; return FALSE;
} }
} }
@ -342,8 +342,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
if (sink->ssh_knownhosts) { if (sink->ssh_knownhosts) {
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KNOWNHOSTS, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KNOWNHOSTS,
sink->ssh_knownhosts)) != CURLE_OK) { sink->ssh_knownhosts)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting known_hosts file: %s.", bcsink->error = g_strdup_printf ("failed to set known_hosts file: %s",
curl_err, sink->ssh_knownhosts); curl_easy_strerror (curl_err));
return FALSE; 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 * hexdigits long it silently ignores CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and
* performs the transfer without authenticating the server! */ * performs the transfer without authenticating the server! */
if (strlen (sink->ssh_host_public_key_md5) != 32) { if (strlen (sink->ssh_host_public_key_md5) != 32) {
GST_ERROR_OBJECT (sink, bcsink->error = g_strdup ("MD5-hash string has invalid length, "
"MD5-hash string has invalid length, must be exactly 32 hexdigits!"); "must be exactly 32 hexdigits!");
return FALSE; return FALSE;
} }
if ((curl_err = if ((curl_err =
curl_easy_setopt (bcsink->curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, curl_easy_setopt (bcsink->curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
sink->ssh_host_public_key_md5)) != CURLE_OK) { sink->ssh_host_public_key_md5)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, bcsink->error = g_strdup_printf ("failed to set remote host's public "
"curl error: %d setting remote host's public key MD5: %s.", curl_err, "key MD5: %s", curl_easy_strerror (curl_err));
sink->ssh_host_public_key_md5);
return FALSE; return FALSE;
} }
} }
@ -376,8 +375,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
/* set the SSH_AUTH_TYPE */ /* set the SSH_AUTH_TYPE */
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_AUTH_TYPES, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_AUTH_TYPES,
sink->ssh_auth_type)) != CURLE_OK) { sink->ssh_auth_type)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting auth type: %d.", curl_err, bcsink->error = g_strdup_printf ("failed to set authentication type: %s",
sink->ssh_auth_type); curl_easy_strerror (curl_err));
return FALSE; return FALSE;
} }
@ -386,9 +385,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
if (sink->ssh_key_passphrase) { if (sink->ssh_key_passphrase) {
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_KEYPASSWD, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_KEYPASSWD,
sink->ssh_key_passphrase)) != CURLE_OK) { sink->ssh_key_passphrase)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, bcsink->error = g_strdup_printf ("failed to set private key "
"curl error: %d setting private key passphrase: %s.", curl_err, "passphrase: %s", curl_easy_strerror (curl_err));
sink->ssh_key_passphrase);
return FALSE; return FALSE;
} }
} else { } else {
@ -401,8 +399,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
} }
} else { } else {
GST_ERROR_OBJECT (sink, "Error: unsupported authentication type: %d.", bcsink->error = g_strdup_printf ("Error: unsupported authentication type: "
sink->ssh_auth_type); "%d.", sink->ssh_auth_type);
return FALSE; return FALSE;
} }
@ -411,8 +409,8 @@ gst_curl_ssh_sink_set_options_unlocked (GstCurlBaseSink * bcsink)
* is also set! */ * is also set! */
if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYFUNCTION, if ((curl_err = curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYFUNCTION,
curl_ssh_sink_sshkey_cb)) != CURLE_OK) { curl_ssh_sink_sshkey_cb)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting CURLOPT_SSH_KEYFUNCTION.", bcsink->error = g_strdup_printf ("failed to set SSH_KEYFUNCTION callback: "
curl_err); "%s", curl_easy_strerror (curl_err));
return FALSE; return FALSE;
} else { } else {
/* SSH_KEYFUNCTION callback successfully installed so go on and /* 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 = if ((curl_err =
curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYDATA, curl_easy_setopt (bcsink->curl, CURLOPT_SSH_KEYDATA,
sink)) != CURLE_OK) { sink)) != CURLE_OK) {
GST_ERROR_OBJECT (sink, "curl error: %d setting CURLOPT_SSH_KEYDATA.", bcsink->error = g_strdup_printf ("failed to set CURLOPT_SSH_KEYDATA: %s",
curl_err); curl_easy_strerror (curl_err));
return FALSE;
} }
} }
@ -484,8 +483,8 @@ curl_ssh_sink_sshkey_cb (CURL * easy_handle, /* easy handle */
default: default:
/* something went wrong, we got some bogus key match result */ /* something went wrong, we got some bogus key match result */
GST_ERROR_OBJECT (sink, GST_CURL_BASE_SINK (sink)->error =
"libcurl internal error encountered during known_host matching"); g_strdup ("libcurl internal error during known_host matching");
break; break;
} }