diff options
author | Sebastian Rasmussen <sebrn@axis.com> | 2014-04-15 23:53:32 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-04-26 10:23:24 +0200 |
commit | c75c7a9a53e1d2e34ba96600923a294651db7f89 (patch) | |
tree | 9a1d06df5cb4e49d8e7c4fa291d8dac1133c9cae /ext/curl/gstcurlsftpsink.c | |
parent | 13f87a1db19c137d5c31bec216472aee6bbcb299 (diff) | |
download | gstreamer-plugins-bad-c75c7a9a53e1d2e34ba96600923a294651db7f89.tar.gz |
curl*sink: post error on bus in element, not transfer thread
https://bugzilla.gnome.org/show_bug.cgi?id=728960
Diffstat (limited to 'ext/curl/gstcurlsftpsink.c')
-rw-r--r-- | ext/curl/gstcurlsftpsink.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/ext/curl/gstcurlsftpsink.c b/ext/curl/gstcurlsftpsink.c index 2a68d3afc..831c11000 100644 --- a/ext/curl/gstcurlsftpsink.c +++ b/ext/curl/gstcurlsftpsink.c @@ -137,13 +137,14 @@ gst_curl_sftp_sink_finalize (GObject * gobject) static gboolean set_sftp_dynamic_options_unlocked (GstCurlBaseSink * basesink) { - GstCurlSftpSink *sink = GST_CURL_SFTP_SINK (basesink); gchar *tmp = g_strdup_printf ("%s%s", basesink->url, basesink->file_name); - gint curl_err = CURLE_OK; + CURLcode curl_err = CURLE_OK; if ((curl_err = curl_easy_setopt (basesink->curl, CURLOPT_URL, tmp)) != CURLE_OK) { - GST_ERROR_OBJECT (sink, "curl error: %d setting URL to: %s", curl_err, tmp); + basesink->error = g_strdup_printf ("failed to set URL: %s", + curl_easy_strerror (curl_err)); + return FALSE; } g_free (tmp); @@ -156,19 +157,22 @@ set_sftp_options_unlocked (GstCurlBaseSink * basesink) { GstCurlSftpSink *sink = GST_CURL_SFTP_SINK (basesink); GstCurlSshSinkClass *parent_class; - gint curl_err = CURLE_OK; + CURLcode curl_err = CURLE_OK; if ((curl_err = curl_easy_setopt (basesink->curl, CURLOPT_UPLOAD, 1L)) != CURLE_OK) { - GST_ERROR_OBJECT (sink, "curl error: %d setting CURLOPT_UPLOAD to 1", - curl_err); + basesink->error = g_strdup_printf ("failed to prepare for upload: %s", + curl_easy_strerror (curl_err)); + return FALSE; } if (sink->create_dirs) { if ((curl_err = curl_easy_setopt (basesink->curl, CURLOPT_FTP_CREATE_MISSING_DIRS, 1L)) != CURLE_OK) { - GST_ERROR_OBJECT (sink, - "curl error: %d setting FTP_CREATE_MISSING_DIRS to 1", curl_err); + basesink->error = + g_strdup_printf ("failed to set create missing dirs: %s", + curl_easy_strerror (curl_err)); + return FALSE; } } |