Hi,

I'm having a problem getting bincimap to accept my command-line arguments and configuration file values. I'm specifying [allow plain auth in non ssl = "yes"] in the configuration file *and* -a on the command line, and I still receive "Plain text password authentication is disallowed" from the server when trying to login. (Interestingly, I configured bincimap with the --without-ssl option as I don't want STARTTLS, and I'll use sslserver if I want SSL; seems that binc should maybe ignore this option when it's not built with SSL.)

I'm using bincimap with tcpserver and multilog, although right now I'm just running ./run from the command line.

Here's my protocol dump:
********
[EMAIL PROTECTED]:~> telnet mail 7298
Trying 192.168.0.5...
Connected to mail.
Escape character is '^]'.
* OK Welcome to Binc IMAP Copyright (C) 2002-2004 Andreas Aardal Hanssen at 2004-02-06 04:40:32 CST
1 login test f00b00
1 NO LOGIN failed: Plain text password authentication is disallowed. Please try enabling SSL or TLS in your mail client.
********


Here's my configuration file:
********
Authentication {
   allow plain auth in non ssl = "yes",
   auth penalty = 4,
   disable starttls = "yes"
}

//Security {
// jail path = "/usr/local/bin",
// jail user = "nobody",
// jail group = "nobody"
//}

Log {
   type = "multilog",
   environment ip variable = "TCPREMOTEIP"
}

Mailbox {
   depot = "Maildir++",
   type = "Maildir",
   path = "Maildir",
   auto create inbox = "yes",
   auto subscribe mailboxes = "INBOX",
   umask = "077"
}

Session {
   idle timeout = 1860,
   auth timeout = 60,
   transfer timeout = 1200,
   transfer buffer size = 1024
}
********

Here's my "run" file (which calls ./run-service):
********
#!/bin/sh
#
PATH='/command'

exec 2>&1
exec envdir ./env-run ./run-service
********

Here's what the envdir 'env-run' looks like:
********
[EMAIL PROTECTED]:bincimap> env-print ./env-run
IP=192.168.0.5
PAM_SERVICE=imap
PORT=7298
TCPSERVER_C=40
********

Here's my "run-service" file:
********
#!/bin/sh
#
# Requires:
# - IP
# - PORT
# - TCPSERVER_C
# - PAM_SERVICE
#
PATH='/command:/usr/local/bin:/usr/bin'

# TODO: Make binc's options dynamic (and long-style) once they're working....
# Figure out why bincimap-up crashes without the `env -` first....
exec 2>&1
exec \
env - PATH="$PATH" \
tcpserver -HRDP -c "$TCPSERVER_C" -- "$IP" "$PORT" \
bincimap-up -a -c ./conf -d -L multilog -m Maildir -M Maildir -u 077 -- \
checkpassword-pam -s "$PAM_SERVICE" --stdout --debug -- \
bincimapd


# Long-style options don't work; short-style don't work either, but I gotta try something.
# --allow-plain \
# --disable-starttls \
# --conf='./conf' \
# --depot='Maildir++' \
# --logtype='multilog' \
# --mailbox-path='Maildir' \
# --mailbox-type='Maildir' \
# --subscribe-mailboxes='INBOX,INBOX.sent,INBOX.trash' \
# --umask='077' \
# -- \
********


Any ideas?

Thanks ahead of time. This looks like it is great software--a terrific solution for those of us sick of ... other Maildir-compatible IMAP servers.

[How I long for an envdir configuration. :-) How much less code would there be if binc simply read all its configuration from the environment? I see at least one entire class devoted to parsing command-line arguments.... A shell script wrapper could easily provide traditional arguments for end-users who may not have or want a pristine/custom environment. And logging? Status, not just error messages, would be terrific.]


Dean




Reply via email to