306
306
gchar buffer[4096];
307
307
gint written = 0;
309
d(printf("writing %d bytes ... ", bytes));
309
d (printf ("writing %d bytes ... ", bytes));
311
311
if (lseek (fromfd, start, SEEK_SET) != start)
364
364
gchar *filterbuffer;
365
365
gint filterlen, filterpre;
367
d(printf("writing %d bytes ... ", bytes));
367
d (printf ("writing %d bytes ... ", bytes));
369
369
camel_mime_filter_reset (filter);
386
386
if (towrite == -1)
389
d(printf("read %d unfiltered bytes\n", towrite));
389
d (printf ("read %d unfiltered bytes\n", towrite));
391
391
/* check for 'end of file' */
392
392
if (towrite == 0) {
393
d(printf("end of file?\n"));
394
camel_mime_filter_complete (filter, buffer + PRE_SIZE, towrite, PRE_SIZE,
395
&filterbuffer, &filterlen, &filterpre);
393
d (printf ("end of file?\n"));
394
camel_mime_filter_complete (
395
filter, buffer + PRE_SIZE, towrite, PRE_SIZE,
396
&filterbuffer, &filterlen, &filterpre);
396
397
towrite = filterlen;
397
398
if (towrite == 0)
400
camel_mime_filter_filter (filter, buffer + PRE_SIZE, towrite, PRE_SIZE,
401
&filterbuffer, &filterlen, &filterpre);
401
camel_mime_filter_filter (
402
filter, buffer + PRE_SIZE, towrite, PRE_SIZE,
403
&filterbuffer, &filterlen, &filterpre);
402
404
towrite = filterlen;
405
d(printf("writing %d filtered bytes\n", towrite));
407
d (printf ("writing %d filtered bytes\n", towrite));
408
410
toread = write (tofd, filterbuffer, towrite);
429
431
struct iovec iv[4];
430
432
gint outlen = 0, len;
432
iv[1].iov_base = ":";
434
iv[1].iov_base = ":";
433
435
iv[1].iov_len = 1;
434
iv[3].iov_base = "\n";
436
iv[3].iov_base = "\n";
435
437
iv[3].iov_len = 1;
438
if (g_ascii_strcasecmp(header->name, "Content-Length")) {
440
if (g_ascii_strcasecmp (header->name, "Content-Length")) {
439
441
iv[0].iov_base = header->name;
440
442
iv[0].iov_len = strlen (header->name);
441
443
iv[2].iov_base = header->value;
456
len = write(fd, "\n", 1);
458
len = write (fd, "\n", 1);
457
459
} while (len == -1 && errno == EINTR);
520
522
if (solaris_header_write (dfd, camel_mime_parser_headers_raw (mp)) == -1)
523
cl = camel_mime_parser_header(mp, "content-length", NULL);
525
cl = camel_mime_parser_header (mp, "content-length", NULL);
524
526
if (cl == NULL) {
525
g_warning("Required Content-Length header is missing from solaris mail box @ %d", (gint)camel_mime_parser_tell(mp));
527
g_warning ("Required Content-Length header is missing from solaris mail box @ %d", (gint) camel_mime_parser_tell (mp));
526
528
camel_mime_parser_drop_step (mp);
527
529
camel_mime_parser_drop_step (mp);
528
530
camel_mime_parser_step (mp, &buffer, &len);
541
543
if (newpos != -1)
542
544
camel_mime_parser_seek (mp, newpos, SEEK_SET);
544
g_error("Inalid parser state: %d", camel_mime_parser_state(mp));
546
g_error ("Inalid parser state: %d", camel_mime_parser_state (mp));