dirmngr: Improve DNS code to retrieve arbitrary records.
[gnupg.git] / common / t-iobuf.c
index ae72fde..99581b9 100644 (file)
@@ -111,15 +111,14 @@ content_filter (void *opaque, int control,
       if (toread > remaining)
        toread = remaining;
 
-      if (toread == 0)
-       return -1;
-
       memcpy (buf, &state->buffer[state->pos], toread);
 
       state->pos += toread;
 
       *len = toread;
 
+      if (toread == 0)
+       return -1;
       return 0;
     }
 
@@ -269,10 +268,8 @@ main (int argc, char *argv[])
   }
 
   {
-    /* - 3 characters plus new line
-       - 4 characters plus new line
-       - 5 characters plus new line
-       - 5 characters, no new line
+    /* - 10 characters, EOF
+       - 17 characters, EOF
      */
     char *content = "abcdefghijklmnopq";
     char *content2 = "0123456789";
@@ -294,7 +291,7 @@ main (int argc, char *argv[])
        if (c == -1 && lastc == -1)
          {
            /* printf("Two EOFs in a row.  Done.\n");  */
-           assert (n == 44);
+           assert (n == 27);
            break;
          }
 
@@ -303,7 +300,7 @@ main (int argc, char *argv[])
        if (c == -1)
          {
            /* printf("After %d bytes, got EOF.\n", n); */
-           assert (n == 27 || n == 44);
+           assert (n == 10 || n == 27);
          }
        else
          {
@@ -338,11 +335,13 @@ main (int argc, char *argv[])
     assert (rc == 0);
 
     n = iobuf_temp_to_buffer (iobuf, buffer, sizeof (buffer));
+#if 0
     printf ("Got %d bytes\n", n);
     printf ("buffer: `");
     fwrite (buffer, n, 1, stdout);
     fputc ('\'', stdout);
     fputc ('\n', stdout);
+#endif
 
     assert (n == strlen (content) + 2 * (strlen (content2) + 1));
     assert (strcmp (buffer, "0123456789aabbcc") == 0);