X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcmime.c;h=a514d55bdd8bc43843fc4350a116893ad5e34d70;hb=c27a4ecc3e616e8a5ee09b8ca888ed6ff3e501f7;hp=01e7fdd1b6827aa779ddf365e6b353802ac16d05;hpb=f60ca1494b58b5b2340e1780adf7422eacf5fed1;p=silc.git diff --git a/lib/silcutil/tests/test_silcmime.c b/lib/silcutil/tests/test_silcmime.c index 01e7fdd1..a514d55b 100644 --- a/lib/silcutil/tests/test_silcmime.c +++ b/lib/silcutil/tests/test_silcmime.c @@ -3,29 +3,9 @@ #include "silcincludes.h" #include "silcmime.h" -struct foo { - int i; - struct foo *next; -}; - -static void ass_complete(SilcMime mime, void *context) -{ - unsigned char *enc; - SilcUInt32 enc_len; - - SILC_LOG_DEBUG(("Defragmentation completed")); - SILC_LOG_DEBUG(("Encoding MIME context")); - enc = silc_mime_encode(mime, &enc_len); - if (!enc) - SILC_LOG_DEBUG(("Error encoding")); - SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); - silc_free(enc); - silc_mime_free(mime); -} - int main(int argc, char **argv) { - bool success = FALSE; + SilcBool success = FALSE; SilcMime mime, part, part2; SilcMimeAssembler ass; int i; @@ -34,6 +14,7 @@ int main(int argc, char **argv) SilcUInt32 enc_len; SilcDList frag; SilcBuffer buf; + const char *mtype; if (argc > 1 && !strcmp(argv[1], "-d")) { silc_log_debug(TRUE); @@ -173,9 +154,10 @@ int main(int argc, char **argv) SILC_LOG_DEBUG(("Re-encoded MIME message: \n%s", enc)); silc_free(enc); SILC_LOG_DEBUG(("Get multiparts")); - frag = silc_mime_get_multiparts(mime); + frag = silc_mime_get_multiparts(mime, &mtype); if (!frag) goto err; + SILC_LOG_DEBUG(("Multipart type '%s'", mtype)); silc_dlist_start(frag); while ((part = silc_dlist_get(frag)) != SILC_LIST_END) { SILC_LOG_DEBUG(("Encoding MIME part")); @@ -191,7 +173,7 @@ int main(int argc, char **argv) /* Fragmentation test */ SILC_LOG_DEBUG(("Allocating MIME assembler")); - ass = silc_mime_assembler_alloc(ass_complete, NULL); + ass = silc_mime_assembler_alloc(); if (!ass) goto err; SILC_LOG_DEBUG(("Allocating MIME message context")); @@ -224,14 +206,23 @@ int main(int argc, char **argv) goto err; silc_dlist_start(frag); while ((buf = silc_dlist_get(frag)) != SILC_LIST_END) - SILC_LOG_DEBUG(("Fragment \n%s", buf->data, buf->len)); + SILC_LOG_DEBUG(("Fragment \n%s", buf->data, silc_buffer_len(buf))); SILC_LOG_DEBUG(("Defragment")); silc_dlist_start(frag); while ((buf = silc_dlist_get(frag)) != SILC_LIST_END) { - part = silc_mime_decode(buf->data, buf->len); + part = silc_mime_decode(buf->data, silc_buffer_len(buf)); if (!silc_mime_is_partial(part)) goto err; - silc_mime_assemble(ass, part); + part = silc_mime_assemble(ass, part); + if (part) { + SILC_LOG_DEBUG(("Defragmentation completed")); + SILC_LOG_DEBUG(("Encoding MIME context")); + enc = silc_mime_encode(mime, &enc_len); + if (!enc) + SILC_LOG_DEBUG(("Error encoding")); + SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); + silc_free(enc); + } } silc_mime_partial_free(frag); silc_mime_assembler_free(ass);