static size_t gst_curl_smtp_sink_transfer_data_buffer (GstCurlBaseSink * bcsink, void *curl_ptr, size_t block_size, guint * last_chunk) { GstCurlSmtpSink *sink = GST_CURL_SMTP_SINK (bcsink); size_t bytes_to_send; if (sink->payload_headers && sink->payload_headers->len) { return transfer_payload_headers (sink, curl_ptr, block_size); } if (sink->base64_chunk != NULL) { bytes_to_send = transfer_chunk (curl_ptr, bcsink->transfer_buf, sink->base64_chunk, block_size, last_chunk); GST_OBJECT_LOCK (sink); if (sink->eos) { gst_curl_smtp_sink_notify_transfer_end_unlocked (sink); } GST_OBJECT_UNLOCK (sink); return bytes_to_send; } /* we should never get here */ return 0; }
static size_t gst_curl_smtp_sink_transfer_data_buffer (GstCurlBaseSink * bcsink, void *curl_ptr, size_t block_size, guint * last_chunk) { GstCurlSmtpSink *sink = GST_CURL_SMTP_SINK (bcsink); size_t bytes_to_send; if (sink->payload_headers && sink->payload_headers->len) { return transfer_payload_headers (sink, curl_ptr, block_size); } if (sink->base64_chunk != NULL) { bytes_to_send = transfer_chunk (curl_ptr, bcsink->transfer_buf, sink->base64_chunk, block_size, last_chunk); /* if last chunk of current buffer and max attachments per mail is reached * then add final boundary */ if (*last_chunk && sink->curr_attachment == sink->nbr_attachments && !sink->final_boundary_added) { add_final_boundary_unlocked (sink); /* now that we've added the final boundary to the array we have on more * chunk to send */ *last_chunk = 0; } GST_OBJECT_LOCK (sink); if (sink->eos) { gst_curl_smtp_sink_notify_transfer_end_unlocked (sink); } GST_OBJECT_UNLOCK (sink); return bytes_to_send; } /* we should never get here */ return 0; }