[Pkg-gnupg-commit] [libassuan] 46/437: * assuan-client.c (_assuan_read_from_server): Detect END. (assuan_transact): Pass it to the data callback.

Eric Dorland eric at moszumanska.debian.org
Fri May 22 05:33:22 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit 47464f181d2b7150d064156c6681b63115a72a17
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Mar 6 14:15:14 2002 +0000

    * assuan-client.c (_assuan_read_from_server): Detect END.
    (assuan_transact): Pass it to the data callback.
---
 src/ChangeLog       |  5 +++++
 src/assuan-client.c | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/ChangeLog b/src/ChangeLog
index 867f125..b5686c5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-06  Werner Koch  <wk at gnupg.org>
+
+	* assuan-client.c (_assuan_read_from_server): Detect END.
+	(assuan_transact): Pass it to the data callback.
+
 2002-02-27  Werner Koch  <wk at gnupg.org>
 
 	* assuan-client.c (assuan_transact): Add 2 more arguments to
diff --git a/src/assuan-client.c b/src/assuan-client.c
index 41984fd..6c7a6e3 100644
--- a/src/assuan-client.c
+++ b/src/assuan-client.c
@@ -95,6 +95,13 @@ _assuan_read_from_server (ASSUAN_CONTEXT ctx, int *okay, int *off)
       while (line[*off] == ' ')
         ++*off;
     }
+  else if (linelen >= 3
+           && line[0] == 'E' && line[1] == 'N' && line[2] == 'D'
+           && (line[3] == '\0' || line[3] == ' '))
+    {
+      *okay = 5; /* end line */
+      *off = 3;
+    }
   else
     rc = ASSUAN_Invalid_Response;
   return rc;
@@ -201,6 +208,18 @@ assuan_transact (ASSUAN_CONTEXT ctx,
       if (!rc)
         goto again;
     }
+  else if (okay == 5)
+    {
+      if (!data_cb)
+        rc = ASSUAN_No_Data_Callback;
+      else 
+        {
+          rc = data_cb (data_cb_arg, NULL, 0);
+          if (!rc)
+            goto again;
+        }
+    }
 
   return rc;
 }
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list