removed StartLibCitadel()
[citadel.git] / libcitadel / tests / stringbuf_stream.c
index 6ea03a7b19dd8c809cdab0e04e52624ea0f0934e..32d4e779ece6d9468b9a9949dbc5a2bf59f87e20 100644 (file)
@@ -70,8 +70,10 @@ static void StreamEncode(void)
        IOBuffer ReadBuffer;
        IOBuffer WriteBuffer;
        int err;
+       const char *Err = NULL;
+       int ret = 0;
        int done = 0;
-       void *vStream;
+       vStreamT *vStream;
        
        memset(&ReadBuffer, 0, sizeof(IOBuffer));
        memset(&WriteBuffer, 0, sizeof(IOBuffer));
@@ -95,33 +97,35 @@ static void StreamEncode(void)
                ST = eBase64Decode;
        else
                ST = eEmtyCodec;
-       vStream = StrBufNewStreamContext(ST);
+       vStream = StrBufNewStreamContext(ST, &Err);
 
        while (!done && (fdin >= 0) && (fdout >= 0) && (!feof(stdin)))
        {
 
                done = StrBuf_read_one_chunk_callback(fdin,
                                                      0,
-                                                     &ReadBuffer) < SIZ * 4;
+                                                     &ReadBuffer) < (SIZ * 4) -1 ;
                if (IOBufferStrLength(&ReadBuffer) == 0)
                {
                        done = 1;
                }
                do
                {
-                       StrBufStreamTranscode(ST, &WriteBuffer, &ReadBuffer, NULL, -1, vStream, done);
-
-                       while (IOBufferStrLength(&WriteBuffer) > 0)
-                       {
-                               err = StrBuf_write_one_chunk_callback(fdout,
-                                                                     0,
-                                                                     &WriteBuffer);
-                       }
+                       do {
+                               ret = StrBufStreamTranscode(ST, &WriteBuffer, &ReadBuffer, NULL, -1, vStream, done, &Err);
+                               
+                               while (IOBufferStrLength(&WriteBuffer) > 0)
+                               {
+                                       err = StrBuf_write_one_chunk_callback(fdout,
+                                                                             0,
+                                                                             &WriteBuffer);
+                               }
+                       } while (ret > 0);
                } while (IOBufferStrLength(&ReadBuffer) > 0);
        }
 
        
-       StrBufDestroyStreamContext(ST, &vStream);
+       StrBufDestroyStreamContext(ST, &vStream, &Err);
        
        FreeStrBuf(&ReadBuffer.Buf);
        FreeStrBuf(&WriteBuffer.Buf);
@@ -153,7 +157,6 @@ int main(int argc, char* argv[])
        }
 
 
-       StartLibCitadel(8);
 
        StreamEncode();
        return 0;