On Sun, Nov 02, 2003 at 04:53:33PM +0100, Paul Diaconescu wrote:
> I'm using version 3.2 from sunfreeware.com. I've put my config.log at: 
> http://mondo.mine.nu/config.log

Thanks. Can you rebuild with the attached patch, it should stick some
debugging output to stderr (which should appear in error_log) when you
click on the 'Display' link.

Cheers,

Brian.
--- sqwebmail/folder.c.orig     Sun Nov  2 16:02:49 2003
+++ sqwebmail/folder.c  Sun Nov  2 16:08:58 2003
@@ -3288,6 +3288,7 @@
 
 
        filename=get_msgfilename(folder, &pos);
+fprintf(stderr, "folder_download: filename=%s\n", filename?filename:"<null>");
 
        fp=0;
        fd=maildir_semisafeopen(filename, O_RDONLY, 0);
@@ -3322,6 +3323,7 @@
        if (rfc2231_udecodeType(part, "name", NULL,
                                &content_name) < 0)
                content_name=NULL;
+fprintf(stderr, "content_name=%s\n", content_name?content_name:"<null>");
 
        if (*cgi("download") == '1')
        {
@@ -3355,6 +3357,8 @@
 
        rfc2045_mimepos(part, &start_pos, &end_pos, &start_body,
                &ldummy, &ldummy);
+fprintf(stderr, "start_pos=%ld, end_pos=%ld, start_body=%ld\n",
+       (long)start_pos, (long)end_pos, (long)start_body);
 
        if (*mimeid == 0)       /* Download entire message */
        {
@@ -3390,7 +3394,9 @@
                        cnt=sizeof(buf);
                        if (cnt > end_pos-start_body)
                                cnt=end_pos-start_body;
+fprintf(stderr, "reading chunk size %d\n", cnt);
                        cnt=fread(buf, 1, cnt, fp);
+fprintf(stderr, "actually got size %d\n", cnt);
                        if (cnt <= 0)   break;
                        start_body += cnt;
                        rfc2045_cdecode(part, buf, cnt);
@@ -3402,13 +3408,16 @@
 
 static int download_func(const char *p, size_t cnt, void *voidptr)
 {
+fprintf(stderr, "Sending %ld bytes to browser\n", (long)cnt);
        while (cnt--)
                if (putchar((int)(unsigned char)*p++) == EOF)
                {
+fprintf(stderr, "putchar failed - aborting!\n");
                        cleanup();
                        fake_exit(0);
                }
        return (0);
+fprintf(stderr, "Done sending\n");
 }
 
 void folder_showtransfer()

Reply via email to