X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcmime.c;h=65567cdb9ff25f514b1f43f37b7274d47cd25d22;hb=40f8443d8d3a6577336ee66d18e04d9ac4d956bb;hp=01e7fdd1b6827aa779ddf365e6b353802ac16d05;hpb=0f0340b9fbce9704cc7171f8f0104ce9103d2de6;p=silc.git diff --git a/lib/silcutil/tests/test_silcmime.c b/lib/silcutil/tests/test_silcmime.c index 01e7fdd1..65567cdb 100644 --- a/lib/silcutil/tests/test_silcmime.c +++ b/lib/silcutil/tests/test_silcmime.c @@ -1,31 +1,11 @@ /* SilcMime tests */ -#include "silcincludes.h" +#include "silc.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); @@ -67,7 +48,7 @@ int main(int argc, char **argv) SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); silc_mime_free(mime); SILC_LOG_DEBUG(("Decoding MIME message")); - mime = silc_mime_decode(enc, enc_len); + mime = silc_mime_decode(NULL, enc, enc_len); if (!mime) goto err; SILC_LOG_DEBUG(("Re-encoding MIME context")); @@ -162,7 +143,7 @@ int main(int argc, char **argv) SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); silc_mime_free(mime); SILC_LOG_DEBUG(("Decoding MIME message")); - mime = silc_mime_decode(enc, enc_len); + mime = silc_mime_decode(NULL, enc, enc_len); if (!mime) goto err; SILC_LOG_DEBUG(("Re-encoding MIME context")); @@ -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(NULL, 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);