Summary:

I added some debug output to bincimap-up and it told me that it is
indeed getting the command line args from inetd, but it is not parsing
them correctly. Any input appreciated.

Detail:

This is the log output I added to dump the command line args immediately
before parsing, and then dump the parsed config file. Notice the config
file does not seem to get parsed.

Dec  9 14:59:21 millhouse bincimap-up[31547]: Argc=5
Dec  9 14:59:21 millhouse bincimap-up[31547]: Arg 0 = 
'--conf=/etc/bincimap/bincimap.conf'
Dec  9 14:59:21 millhouse bincimap-up[31547]: Arg 1 = '--logtype=syslog'
Dec  9 14:59:21 millhouse bincimap-up[31547]: Arg 2 = '--'
Dec  9 14:59:21 millhouse bincimap-up[31547]: Arg 3 = '/bin/checkpassword'
Dec  9 14:59:21 millhouse bincimap-up[31547]: Arg 4 = '/usr/local/sbin/bincimapd'
Dec  9 14:59:21 millhouse bincimap-up[31547]: Reading config file: ''
Dec  9 14:59:21 millhouse bincimap-up[31547]: Client connected to Binc IMAP from ?
Dec  9 14:59:43 millhouse bincimap-up[31547]: Unprivileged stub shutting down - read:0 
bytes, wrote:0 bytes.

Here's the code I added. Pardon my handmade diff, "-" are old lines, "+" are new lines.

session-initialize-bincimap-up.cc:
87-: logger.noFlushOnEndl();
88-:
89+:  logger << "Argc = " << argc <<  endl;
90+:  for (int i=0; i < argc; i++)
91+:     logger << "Arg " << i << " = '" << argv[i] << "' " << endl;
92+:
93-:  // Read command line arguments
94-:  if (!session.parseRequestLine(argc, argv))
95-:    return false;
...
111-:  // Grab config file name
112-:  string configfile = session.command.configfile;
113-:
114+:  logger << "Reading config file: '" << configfile << "'" << endl;
115+:
116-:  // Read configuration

This tells me (I think) that bincimap-up is getting the correct command
line args, but is not parsing them correctly.

If I add a line after 112 to hard code the config file, like this:
configfile = "/etc/bincimap/bincimap.conf";
Then my login works fine.

To recreate this environment, move (not copy) your config file to some
non-standard place. Change some setting in the config file to a non-default
value, so that you will know if it was found and parsed. Then edit your
inetd.conf to point to the new location via a bincimap cmd line argument.
Then try it. I just did the telnet thingy:

# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Welcome to Binc IMAP v1.2.3 (c) Copyright 2002, 2003 Andreas Aardal Hanssen at 
2003-12-09 14:34:36 EST
1 LOGIN testuser testpass
1 NO LOGIN failed: Plain text password authentication is disallowed. Please try 
enabling SSL or TLS in your mail client.
Connection closed by foreign host.

Any input appreciated. I don't like hardcoding my config file,
but I guess its a workaround for now.

THANKS for all of your comments!!!

                              ,,,
                             (oo)
  ----------------------o0Oo-(_)-oO0o-----------------------
  |    John F. Masinter      Total Business Computing Inc. |
  | Voice: 770-886-9100 x10         Fax: upon request      |
  | mailto:[EMAIL PROTECTED]        http://www.totalb.com    |
  |     P.O. Box 88584               Atlanta, GA 30356     |
  ------------------------ooO--Ooo--------------------------

"The spec said Windows-95 or better...so I installed Linux"



Reply via email to