CamelSession: Make forward_to() method asynchronous.
Missed this while converting the rest of Camel to GIO's async pattern,
but came to realize Evolution's forward_to() implementation starts an
asynchronous CamelFolder.append_to() operation and returns TRUE.
So the return value from camel_session_forward_to() does not actually
indicate whether the message was successfully forwarded. In fact the
caller has no way of knowing!
This calls for an API break.
Split the forward_to() method into synchronous and asynchronous
variations:
gboolean (*forward_to_sync) (CamelSession *session,
CamelFolder *folder,
CamelMimeMessage *message,
const gchar *address,
GCancellable *cancellable,
GError **error);
void (*forward_to) (CamelSession *session,
CamelFolder *folder,
CamelMimeMessage *message,
const gchar *address,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean (*forward_to_finish) (CamelSession *session,
GAsyncResult *result,
GError **error);