Subject: Problems with LIST in Windows port?

From: Tony Robinson <[email-masked]>
Date: Thu, 19 Mar 98 14:02:16 -0800

I'm new to this so I may be missing something really obvious but it 
appears that several commands, LIST is my example, are broken in v10.218 
IMAPd running under Windows.  I'm working with the imap-4.1.BETA which I 
assume is what I should be using? I've managed to get everything built 
and running but when I send a LIST "" * command, it doesn't seem to work 
at all.  Looking through the code here's what I see:

impad.c calls mail_list( NIL, s, t);

That eventually filters down to drivername_list for each driver.  When it 
gets to mbx_list the code looks like:

if (stream) dummy_list( NIL, ref, pat);

The problem is that stream is explicitly passed in as NIL so mbx_list 
always returns without doing anything.
The same problem is in mtx_list, tenex_list, and unix_list. Several other 
commands also have the same problem - SCAN and LSUB for instance.

Is this currently broken or am I just missing something big in the grand 
scheme of things?

Thanks for any help,
Tony Robinson

---

From: Mark Crispin <[email-masked]>
Date: Thu, 19 Mar 1998 14:09:37 -0800 (PST)

What do you mean by "broken"?  Are you not getting any results back?  Are you
getting crashes?  Are you getting strange results?  Or???

Please be specific; "broken" does not convey information.  Bugs happen from
time to time, but they get fixed when I find out about them.  If there's a bug
in the current version on ftp://ftp.cac.washington.edu/mail/imap.tar.Z then
it's a good bet that I don't know about the problem, and I need as much
information as possible from you.

Also, what do you mean "imapd under Windows"?  imapd does not run under
Windows 3.x or Windows 95.  imapd is a server, and requires concepts such as
"login account validation" and "file protection" from the underlying system.

imapd runs under Windows NT, and LIST works on NT.  The default namespace is
the user's home directory.  Here's a typescript of a LIST command from imapd
on my NT system:

A01 LIST "" %
* LIST (\NoInferiors) "\\" default.tcl
* LIST (\NoInferiors) "\\" environ.ksh
* LIST (\NoSelect) "\\" folders
* LIST (\NoSelect) "\\" imap-4.1
* LIST (\NoSelect) "\\" inetlisn
* LIST (\NoInferiors) "\\" MRC-places.MN3
* LIST (\NoInferiors) "\\" MRC-places.SA4
* LIST (\NoInferiors) "\\" MRC-places.sa5
* LIST (\NoInferiors) "\\" mtest.errs
* LIST (\NoInferiors) "\\" points.txt
* LIST (\NoInferiors) "\\" profile.ksh
* LIST (\NoInferiors) "\\" rpoints.txt
* LIST (\NoInferiors) "\\" rslicens.txt
* LIST (\NoInferiors) "\\" sh_histo
* LIST (\NoInferiors) "\\" spawn.bat
* LIST (\NoInferiors) "\\" VCVARS32.BAT
* LIST (\NoInferiors) "\\" w467xxzz.mn3
* LIST (\NoInferiors) "\\" wcesh.bat
* LIST (\NoSelect) "\\" WinCE
* LIST (\NoInferiors) NIL INBOX
A01 OK LIST completed

Yes, if the stream is NIL then mbx_list() etc. will return without doing
anything.  But the code will presently get to dummy_list() which will do
something.  That's why dummy is in the list of drivers.