Subject: Re: mailbox format

From: [email-masked]
Date: Thu, 14 Jun 2001 12:22:24 -0700

Hi Mark,

I tried with linkage.c included in my test program.
I still have the same problem. This time while debugging I noticed the
following.

---------------------------------------------------------------------------
-----------------------------------------------------

1) mail_link called first.

void mail_link(DRIVER *driver)
=============================

(dbx) print maildrivers
maildrivers = (nil)
(dbx) print &maildrivers
&maildrivers = 0xb9ed0
(dbx) print *maildrivers
reference through nil pointer
(dbx) print driver
driver = 0xba60c
(dbx) print *driver
*driver = {
    name        = 0xbc2a4 "msgfiledriver"
    flags       = 6U
    next        = (nil)
    valid       = 0x5c650 = &msgfiledriver_valid()
    parameters  = 0x5cee8 = &msgfiledriver_parameters()
    scan        = 0x5cf70 = &msgfiledriver_scan()
    list        = 0x5cfd8 = &msgfiledriver_list()
    lsub        = 0x5d030 = &msgfiledriver_lsub()
    subscribe   = (nil)
    unsubscribe = (nil)
    create      = 0x5d088 = &msgfiledriver_create()
    mbxdel      = 0x5d4f8 = &msgfiledriver_delete()
    mbxren      = 0x5d550 = &msgfiledriver_rename()
    status      = (nil)
    open        = 0x5d9e8 = &msgfiledriver_open()
    close       = 0x5e1d8 = &msgfiledriver_close()
    fast        = (nil)
    msgflags    = (nil)
    overview    = (nil)
    structure   = (nil)
    header      = 0x5e2c8 = &msgfiledriver_header()
    text        = 0x5e7c0 = &msgfiledriver_text()
    msgdata     = (nil)
    uid         = (nil)
    msgno       = (nil)
    flag        = (nil)
    flagmsg     = 0x5efc0 = &msgfiledriver_flagmsg()
    search      = (nil)
    sort        = (nil)
    thread      = (nil)
    ping        = 0x5f060 = &msgfiledriver_ping()
    check       = 0x5f278 = &msgfiledriver_check()
    expunge     = 0x5f3c0 = &msgfiledriver_expunge()
    copy        = 0x5f698 = &msgfiledriver_copy()
    append      = 0x5fe90 = &msgfiledriver_append()
    gc          = (nil)
}
(dbx)

(dbx) print d
d = 0xb9ed0
(dbx) print *d
*d = (nil)
(dbx) print **d
reference through nil pointer

AFTER *d = driver
================
(dbx) print *d
*d = 0xba60c

2) auth_link called
3) auth_link called

4) mail_open called from my program

MAILSTREAM *mail_open (MAILSTREAM *stream,char *name,long options)
==================================================================

5) mail_open calls mail_valid

DRIVER *mail_valid (MAILSTREAM *stream,char *mailbox,char *purpose)
===================================================================

(dbx) print mailbox
mailbox = 0xeffff46a "{bilbo.centigram.com/pop3}"
(dbx) print purpose
purpose = 0xbab00 "open mailbox"
(dbx) print stream
stream = (nil)

(dbx) print maildrivers
maildrivers = 0xba60c
(dbx) print *maildrivers
*maildrivers = {
    name        = 0xbc2a4 "msgfiledriver"
    flags       = 6U
    next        = (nil)
    valid       = 0x5c650 = &msgfiledriver_valid()
    parameters  = 0x5cee8 = &msgfiledriver_parameters()
    scan        = 0x5cf70 = &msgfiledriver_scan()
    list        = 0x5cfd8 = &msgfiledriver_list()
    lsub        = 0x5d030 = &msgfiledriver_lsub()
    subscribe   = (nil)
    unsubscribe = (nil)
    create      = 0x5d088 = &msgfiledriver_create()
    mbxdel      = 0x5d4f8 = &msgfiledriver_delete()
    mbxren      = 0x5d550 = &msgfiledriver_rename()
    status      = (nil)
    open        = 0x5d9e8 = &msgfiledriver_open()
    close       = 0x5e1d8 = &msgfiledriver_close()
    fast        = (nil)
    msgflags    = (nil)
    overview    = (nil)
    structure   = (nil)
    header      = 0x5e2c8 = &msgfiledriver_header()
    text        = 0x5e7c0 = &msgfiledriver_text()
    msgdata     = (nil)
    uid         = (nil)
    msgno       = (nil)
    flag        = (nil)
    flagmsg     = 0x5efc0 = &msgfiledriver_flagmsg()
    search      = (nil)
    sort        = (nil)
    thread      = (nil)
    ping        = 0x5f060 = &msgfiledriver_ping()
    check       = 0x5f278 = &msgfiledriver_check()
    expunge     = 0x5f3c0 = &msgfiledriver_expunge()
    copy        = 0x5f698 = &msgfiledriver_copy()
    append      = 0x5fe90 = &msgfiledriver_append()
    gc          = (nil)
}
(dbx) print factory
factory = (nil)

Since the factory is still NIL, it prints the error message

[ccLog] ?Can't open mailbox {bilbo.centigram.com/pop3}: invalid remote
specification

---------------------------------------------------------------------------
-----------------------------------------------------------

Regards,
Manjula

|--------+----------------------->
|        |          Mark Crispin |
|        |          <[email-masked]|
|        |          M>           |
|        |                       |
|        |          06/14/2001   |
|        |          11:23 AM     |
|        |                       |
|--------+----------------------->
  >------------------------------------------------|
  |                                                |
  |       To:     [email-masked]         |
  |       cc:     (bcc: Manjula                    |
  |       Hullatti/US/Centigram)                   |
  |       Subject:     Re: mailbox format          |
  >------------------------------------------------|

I did not say linkage.h.  You do not need to include linkage.h.  Remove
that
include.

You do, however, need to include linkage.c.  Remember that I said:
> Did you "#include <linkage.c>" in your main program?  I bet that you
> did not.  Nothing will work unless you include the linkage!

It needs to be very early in your main() function, e.g.:

int main()
{
   MAILSTREAM*    stream;
   char           user[10], mailbox[30];
   int j;

#include "linkage.c"

   sprintf(mailbox, "{%s/%s}","bilbo.centigram.com","pop3");

---

From: Mark Crispin <[email-masked]>
Date: Thu, 14 Jun 2001 12:37:56 -0700 (PDT)

You are apparently using a modified version of c-client.  There is no such
thing as "msgfiledriver" in the standard version of c-client.

Since you are using a modified version of c-client, I can not help you any
further.  The problem is in the modification to c-client; it appears that
whomever did the modification delete the POP3 support.

The original, unmodified version of c-client is on:
	ftp://ftp.cac.washington.edu/mail/imap.tar.Z

---

From: Julian Hall <[email-masked]>
Date: Fri, 15 Jun 2001 13:46:37 +0100

Hi; just a couple of questions.  My company is considering deploying a system
with two UW IMAP servers; one on an internet-based server to allow employees
to access e-mail from remote systems and possibly support a future webmail
system, and another on our local server so that employees in the office do not
have to access an internet based server in order to read their mail.

I found a cclient based program called 'mailsync' on sourceforge that seems to
be capable of maintaining the synchronization necessary between these two
servers.  Has anybody else got any experience of using this or other programs
in a similar set-up that they could relate? How reliable is it?

On a different tack, one of my users recently complained that using their
usual client (Netscape Communicator 4.7/Win32) they highlighted a batch of
messages, chose to delete them and then chose the 'compact folder' option (ie,
performed an expunge).  The folder was then left containing the messages that
were not highlighted... the delete operation apparently deleted the wrong
messages.  Does anyone have any idea how this might have occurred?

Thanks for your help!

Jules

-- 
------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

---

From: Tim Culver <[email-masked]>
Date: Fri, 15 Jun 2001 11:57:19 -0700 (PDT)

> in a similar set-up that they could relate? How reliable is it?

I am the author of mailsync.  It has been reliable for personal use.  
However, to my knowledge, it hasn't been tested in a large multi-user
setup.  If you decide to use it, please let me know how it goes.

-- 
Tim Culver
[email-masked]

---

From: Julian Hall <[email-masked]>
Date: Mon, 18 Jun 2001 11:58:29 +0100

> messages.  Does anyone have any idea how this might have occurred?

I mis-phrased that slightly.  The messages left in the folder were the ones that
had been selected for deletion; the messages that had not been selected for
deletion were removed.

Unfortunately, (or possibly fortunately?) I haven't been able to reproduce this,
so am unable to tell if it is a client problem, server problem or user error
(although it seems a hard error to make - the folder in question had many hundreds
of messages in it when it was restored from backup!)