[geary/wip/543-append-failure] Convert Imap.Serialiser.push_literal_data to take generic param



commit 1f65a0d422537870f1e099c963008c6ca43d261d
Author: Michael Gratton <mike vee net>
Date:   Thu Aug 29 23:11:32 2019 +1000

    Convert Imap.Serialiser.push_literal_data to take generic param
    
    Rather than taking a Literal argument, take a data array instead. This
    allows more flexibility in sending literal data to the server.

 src/engine/imap/command/imap-authenticate-command.vala |  2 +-
 src/engine/imap/command/imap-command.vala              |  4 +++-
 src/engine/imap/transport/imap-serializer.vala         | 10 +++++-----
 3 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/src/engine/imap/command/imap-authenticate-command.vala 
b/src/engine/imap/command/imap-authenticate-command.vala
index c3dfa694..041de90e 100644
--- a/src/engine/imap/command/imap-authenticate-command.vala
+++ b/src/engine/imap/command/imap-authenticate-command.vala
@@ -65,7 +65,7 @@ public class Geary.Imap.AuthenticateCommand : Command {
         yield this.error_lock.wait_async(cancellable);
         if (this.response_literal != null) {
             yield ser.push_literal_data(
-                this.response_literal.value, cancellable
+                this.response_literal.value.get_uint8_array(), cancellable
             );
             ser.push_eol(cancellable);
             yield ser.flush_stream(cancellable);
diff --git a/src/engine/imap/command/imap-command.vala b/src/engine/imap/command/imap-command.vala
index 2bebba1e..d4e8a57e 100644
--- a/src/engine/imap/command/imap-command.vala
+++ b/src/engine/imap/command/imap-command.vala
@@ -181,7 +181,9 @@ public class Geary.Imap.Command : BaseObject {
                     debug("Waiting for continuation");
                     yield this.literal_spinlock.wait_async(cancellable);
                     debug("Got continuation");
-                    yield ser.push_literal_data(literal.value, cancellable);
+                    yield ser.push_literal_data(
+                        literal.value.get_uint8_array(), cancellable
+                    );
                 }
             }
         }
diff --git a/src/engine/imap/transport/imap-serializer.vala b/src/engine/imap/transport/imap-serializer.vala
index 2df8b484..36dafca9 100644
--- a/src/engine/imap/transport/imap-serializer.vala
+++ b/src/engine/imap/transport/imap-serializer.vala
@@ -103,14 +103,14 @@ public class Geary.Imap.Serializer : BaseObject {
     /**
      * Writes literal data to the output stream.
      */
-    public async void push_literal_data(Memory.Buffer buffer,
+    public async void push_literal_data(uint8[] buffer,
                                         GLib.Cancellable? cancellable = null)
         throws GLib.Error {
-        yield this.output.splice_async(
-            buffer.get_input_stream(),
-            OutputStreamSpliceFlags.NONE,
+        yield this.output.write_all_async(
+            buffer,
             Priority.DEFAULT,
-            cancellable
+            cancellable,
+            null
         );
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]