Re: [vchkpw] Custom Maildir Structure

2004-11-30 Thread Chris Ess
 Yes.  I'm suggesting that we could use directory names outside of the
 user namespace so that you could have bigdir support and one-character
 email addresses at the same time.

 It would be difficult to handle existing domains though...  There would
 need to be a lot of directory renaming and updating of the user
 database to pull it off.

This is probably a silly idea but...  You could always write a dot-file,
e.g. .domain-version, that contains the 'version number' of the domain
layout.  If the file doesn't exist of if the 'version number' is, say, 1,
vpopmail uses the old convention for bigdir.  If the 'version number' is,
say, 2, vpomail uses the new convention.  A program could be written to
convert between domain versions.

The advantage to this is that it wouldn't automatically require conversion
for new domains when vpopmail is upgraded.  The disadvantages are that it
may be overly complex/complicated and, well, it does seem rather silly.

(That said, I use something like this on a website so I can track the
versions of the SQL schemas so I can pass along intelligent upgrade
scripts to the website maintainer.)

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] Modifying accounts with PHP

2004-09-28 Thread Chris Ess
On Tue, 28 Sep 2004, a.h.s. boy wrote:

 I installed vpopmail with MySQL support, without valias support (as
 seems to be recommended). I've written some PHP scripts that can create
 and modify email accounts by direct interface with MySQL, but I'm
 looking for ways to do more administration of vpopmail -- creating
 aliases, adding domains, etc.

I used to have an issue with valias but that has been fixed in newer
versions of vpopmail.

If you use valias, adding and deleting aliases is as simple as
manipulating rows in the table.

As mentioned on this list at the beginning of the month, you can
essentially add users by adding a row to the table for your users (usually
vpopmail) with an empty home directory.  When an email is first delivered
or the account is checked via POP3 or IMAP, the directory field is
populated and the directory is set up.  (Emails from this thread are also
in the README.mysql file in vpopmail 5.4.7.)

There is unfortunately no like mechanism for deleting users as far as I
know.

Adding/deleting domains requires modifying qmail control files so these
would need to be done as root (unless you want to play ownership games
with said files).

There is work underway to create a vpopmail daemon that can parse requests
from PHP scripts or other sources and make the appropriate changes.  My
understanding is that the existing PHP vpopmail extension has been
obsoleted in favour of a new set that will use the daemon.

 Since .qmail files needs to be owned by vpopmail:vchkpw, and the v*
 applications need to run as root, I can't really have Apache/PHP try to
 accomplish any of that stuff directly. What I'm thinking right now is
 that I could write out formatted text files to a specific directory,
 then have a cron job (running as root) that parses them and executes
 various commands: vadddomain, valias, etc.

That would work.  I do something vaguely like that for deleting users
through my vpopmail admin module for squirrelmail already.  (Really what I
do is put the information for the deleted user into a separate table and
take the user out of the vpopmail table.  A perl script then handles
archiving/deleting the user data.)

Another method, advocated by some people, is to run a separate copy of
apache with the user vpopmail and group vchkpw.  I don't like this
solution at all.  (Which is why I ended up writing my own admin module.
Maybe my boss will let me distribute it.  I must remember to ask him...)
There's always suexec (and mod_phpsuexec) but I don't like that solution
much either.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] Vpopmail migration

2004-09-21 Thread Chris Ess
 I've a mail server which I've installed qmail1.03 with vpopmail-5.2.1,
 MySQL 3.23 and qmailadmin.  All email users are stored in MySQL's
 vpopmail database (in vpopmail.vpopmail table).  Yes, 1 table for all
 users in different domains.  Now, I am migrating everything to another
 machine.

 On that machine, I've installed netqmail, vpopmail 5.4 and MySQL 4.0.
 Everything goes fine.  But in the final stages, I need to migrate all
 user accounts with their passwords, sql tables, domains and their leave
 mail on servers' mails to the new machine.  I can't find any docs about
 migration, backup and restore to a new server.  Can anyone help me?  I
 am installing everything on RedHat's Fedora Core 2.

Here's my stab at it:

On the new server, add all of the domains with vadddomain.  This
takes care of the domains.

Then, when done, drop the vpopmail table and clear out the contents of
/home/vpopmail/domains This will be replaced below.

On the old server, generate a dump of the vpopmail table with mysqldump.
Import this into your other server.  This takes care of the passwords and
SQL tables.

Assuming all of your users are virtual, you should then be able to just
tar up the contents of /home/vpopmail/domains (or whatever you use) and
then untar in the equivalent directory on the other server.  That should
take care of the email and directory structure.


Warning: I have never used this process in practice and, well, it may not
work as expected.  I'm pretty sure someone else has better directions.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] QMail + Vpopmail vs. Postfix + Cyrus IMAP

2004-09-09 Thread Chris Ess
On Thu, 9 Sep 2004, Jesse Guardiani wrote:

 On Thursday 09 September 2004 11:20 am, Paul Theodoropoulos wrote:
  What, precisely, is gained by supporting postfix? i don't see the point.

 Postfix is a MODERN sendmail replacement. Qmail is not. You don't need
 to patch Postfix. Patches suck. :)

(in re 'MODERN')
I disagree.  Despite the age of the original code base, qmail is still a
modern and viable replacement for sendmail.  However, it's not very
featureful -- which is fine for replacing most versions of sendmail
anyway.  I believe that the majority of sendmail installations do not use
STARTTLS or SMTP AUTH.

(in re patches)
Funny.  I've never thought so.

One thing I like about having to patch qmail is the ability to decide at
compile-time what extensions I want to use.  This allows me to limit the
amount of unused code compiled into my MTA.  (In the era of modern
computing and the prevalence of CPU's well over 2GHz, this may not mean a
lot.  However, I run qmail on a 50MHz SparcStation LX and I'm a bit picky
about what goes into it.)  Having only ever compiled Postfix once (and
many moons ago at that), I do not know if the same option is present
there.


But I'm wandering off topic for the vpopmail list.

Ooh...  While we're at it, we could add vpopmail support for sendmail...
^_~

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vpopmail + billing server integration

2004-09-08 Thread Chris Ess
 I'd like to connect via an encrypted shell, like SSH, but I'd
 also like the connection to be persistent, to avoid connection
 costs for batch operations. I'd also like to provide a FIFO
 queue mechanism so that if the mail server reboots, anyone
 working on the billing server won't get error messages when
 they attempt to provision services. Then, when the mail server
 comes back up, the SSH tunnel is re-established and the
 queued operations begin to execute.

 However, so far in my google searches I haven't seen anything
 that would help me implement a persistent SSH connection
 with a FIFO queue.

 Can anyone give me tips?

Have you considered

1. A VPN between the two?

2. Using an on-demand connection method rather than a persistent method?

3. Just connecting to a dedicated socket or service rather than SSH?

4. The security issues inherent in connecting your billing server to your
mailserver?


To keep this topic vaguely vpopmail-related, have you considered keeping
all of the necessary vpopmail information (or at least most of it) in a
MySQL database or some other separate data repository and having something
on your billing server update that?  (Or, alternatively, why not run the
MySQL database on your billing server if you go that route?  That gets
around the connection issues mentioned above although it does not fix any
possible security issues.)

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vpopmail + billing server integration

2004-09-08 Thread Chris Ess
On Wed, 8 Sep 2004, Jesse Guardiani wrote:

 On Wednesday 08 September 2004 11:19 am, Chris Ess wrote:
[behold, the power of mail scissors!  snip snip]

  Have you considered
 
  1. A VPN between the two?

 solves encryption, but not persistence. Also, that's a rather heavy-weight
 solution.

I didn't say it was a clean or nice solution, did I? ^_^

This was to deal with connecting the two servers in my mind.  I realized
afterwards that this wouldn't be necessary.  It's been a long week already
(and I had Monday off too).

  2. Using an on-demand connection method rather than a persistent method?

 Trying to avoid it. Our CSRs see the billing server pause while the hook
 executes to provision a service. I want to keep that pause time to a minimum.

That depends on if a scripted SSH connection or whatever you use takes a
long time to execute.

When I used it, the Net::SSH perl module is pretty fast and added
negligible time.

  3. Just connecting to a dedicated socket or service rather than SSH?

 Not secure, and how would that work? I thought vpopmail's only manipulation
 system is either SQL or command line based...

It would work however you want it to.  This suggestion would require
building your own methods (or finding something someone else has done).
You could make it as secure or as insecure as you like.

You might also want to look at the vpopmail daemon in development.  (Which
reminds me that I need to subscribe to that list.)

  4. The security issues inherent in connecting your billing server to your
  mailserver?

 Sure. People do it all the time, right?

It's not my favorite idea and not one I would implement myself if I had a
choice -- but, then again, I'm very used to the idea of the accounting and
technical departments being separate and us techs not getting access to
the accounting systems or data.

  To keep this topic vaguely vpopmail-related, have you considered keeping
  all of the necessary vpopmail information (or at least most of it) in a
  MySQL database or some other separate data repository and having something
  on your billing server update that?

 It's been suggested. I'm not happy with that solution though. I'd rather keep
 it command line based.

Okay.  Then you're pretty much chained to the SSH solution unless you want
to craft another one.

  (Or, alternatively, why not run the
  MySQL database on your billing server if you go that route?

 Kills scalability. Bad solution.

I suggested this because this would create the illusion of persistence.
I'd much rather run it on a different server altogether.

I don't know if I'd say it kills scalability though.  You can run a
qmail/vpopmail server cluster based around a MySQL database without too
much of a problem.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vpopmail + billing server integration

2004-09-08 Thread Chris Ess
On Wed, 8 Sep 2004, Ken Jones wrote:

 Hi,

 Here is something we built into vpopmail for sites like yours.

 Use mysql on the email server. Have the billing system
 insert an entry in the vpopmail table, leaving the directory
 field blank. vpopmail will automatically create the users
 directory and update the database when any program
 tries to deliver mail to the user, or authenticate as the user.

That's really neat!  I didn't realize you could do this.  (Now someone
will tell me that it's in the documentation that I seem to've not read
recently.)

(I know this is getting offtopic...) So I could use an INSERT statement in
SQL instead of vadduser?  Or am I not understanding this correctly?

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


[vchkpw] Re: vpopmail + billing server integration

2004-09-08 Thread Chris Ess
On Wed, 8 Sep 2004, Ken Jones wrote:

 On Wednesday 08 September 2004 12:25 pm, Chris Ess wrote:

[snip]

 It is probably in the mailing list archives. I'm not sure if anyone has
 updated the documentation.

I wonder if a group of us should get together and update the
documentation with all of the neat things mentioned on the mailing list.
(Alternatively, I wonder if we'd ever have the time...)

  (I know this is getting offtopic...) So I could use an INSERT
  statement in SQL instead of vadduser?  Or am I not understanding this
  correctly?
 That is the idea. A while back some folks wanted to hook up their billing
 systems to vpopmail. Basicly they would insert into the vpopmail sql table.
 The only thing they couldn't do easily was create the hashed directory path.
 So we put in vpopmail code to check if the path is blank and automatically
 create the new path and update the database.

Okay.  Makes sense.

 You will also need to set the encrypted password using mysql's CRYPT
 function. Mysql's standard encryption functions are not compatible with
 unix/linux.

Yep.  I'm not sure how far I trust MySQL's ENCRYPT() function since I've
had issues with MD5 passwords and the crypt() function in Perl.  The
'Change MySQL Password' plugin for squirrelmail at
http://www.squirrelmail.org/plugin_view.php?id=25 includes an MD5 password
algorithm in PHP which works pretty nicely.

I'll have to test out the functionality of the INSERT.  I have a vpopmail
admin plugin for squirrelmail (have to ask my boss if I can distribute it
so don't ask me for a copy yet) that uses a set-uid vadduser to handle
adding users.  I'd love to get rid of that.

While I'm thinking about it, I can use a DELETE query to remove the row
for a user and then queue a job (I'll worry about how to set this up) to
archive/delete the user's mail, right?

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


[vchkpw] vpopmail = 5.4.2 (sybase vulnerability) (fwd)

2004-08-19 Thread Chris Ess
I don't know if this is even relevant anymore (i.e. has been fixed) but
this showed up on bugtraq yesterday.  Figured I should pass it along, just
in case.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)

-- Forwarded message --
Date: 17 Aug 2004 10:44:52 -
From: Jérôme ATHIAS [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: vpopmail = 5.4.2 (sybase vulnerability)



Bug: format string and buffer overflow (sybase)
Product: vpopmail = 5.4.2 (sybase vulnerability)
Author: Werro [EMAIL PROTECTED]
Realease Date : 12/08/04
Risk: Low
Vendor status: Vendor is in a big shit :)
Reference: http://web-hack.ru/unl0ck/advisories/


Overview:
vpopmail is a set of programs for creating and managing
multiple virtual domains on a qmail server.

Details:
Bugs were founded in SyBase. In vsybase.c file.

---\
 char dirbuf[156];  \__Vulnerability___
 ...   
|
 if ( strlen(dir)  0 )
|
 { 
|
 sprintf(dirbuf,%s/%s/%s, dom_dir,dir,user); 
|
 ^^^ - buffer overflow 
|
 }else{
|
 sprintf(dirbuf, %s/%s, dom_dir, user);  
|
 ^^^ - buffer overflow 
|
 } 
|
 ...   
|
   
|
 if ( site_size == LARGE_SITE ) {  
|
sprintf( SqlBuf, LARGE_INSERT, domstr, 
|
user, pass, pop, gecos, dirbuf, quota);
|
^^^ - format string
|
} else {   
|
sprintf( SqlBuf, SMALL_INSERT, 
|
SYBASE_DEFAULT_TABLE,  user, domain, pass, pop, gecos, dirbuf, quota); 
|
}   ^^^ - format string  
__|
/
Two vulnerability : format string and buffer overflow.
Latest Version is Vulnerable.

To avoid this bugs, you must use snprintf() with format like %s.

12/08/04.
(c) by unl0ck team.
http://web-hack.ru/unl0ck



Re: [vchkpw] vpopmail = 5.4.2 (sybase vulnerability) (fwd)

2004-08-19 Thread Chris Ess
On Thu, 19 Aug 2004, Tom Collins wrote:

[...]

 I've also contacted the publisher of the original report (but have not
 posted a followup to bugtraq since I'm not a subscriber).

I can post one if you and Mr. Athias would like.  (I think that between
the three of us, the proper people to follow up are either yourself or Mr.
Athias.  Personally, I'd just end up linking to the email on the list
archives since that seems the proper thing to do.  Also, I don't think you
have to be a subscriber to post to bugtraq.  I could be wrong though.)

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] [semi-OT] which is more portable?

2004-07-15 Thread Chris Ess
  grep vpopmail /etc/passwd | awk -F : '{print $6}'
 
  or
 
  grep vpopmail /etc/passwd | cut -d':' -f6

I would think that cut would be more portable.  However, every machine
I've used has had some variant of awk installed too.

You might want to consider using 'grep ^vpopmail' or even 'grep
^vpopmail:' rather than 'grep vpopmail' to ensure that you're only getting
the 'vpopmail' user.  (I have a server in which we've had to transparently
migrate users who were set up under sendmail so we have users whose home
directories are under the vpopmail directory.  Nasty, I know.)  The one
catch is that I don't know if 'grep ^string' is supported in all versions
of 'grep'.

  Reason I'm asking is I'm making some minor modifications to the Makefile
  for the chkuser patch and I want to make sure they're as absolutely
  portable as possible before releasing it to the masses.

 also, while on the topic of portability, I noticed that djb does not include
 ANY variable substitutions (only backtick ` ` substitutions) in his Makefile.
 I'm curious if this is also for portability reasons.  Anyone aware of any
 implementations of the 'make' program that don't understand variable
 substitions in Makefiles, or any situations (lack of /bin/sh compatible
 shell, perhaps?) that might make variable substitutions not possible?

I don't know of any portability concerns in this regard.  I wonder if this
is just a design choice.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] [semi-OT] which is more portable?

2004-07-15 Thread Chris Ess
[snip]

 right, which is why it's better to just specify it in conf-vpopmail.
 However, I'm having trouble getting that value into a variable in a
 Makefile, so I'm thinking that just setting it at the top and pointing
 documentation to change it would be best.

Why not just use the backtick substitutions like you pointed out djb does?
This gets around dealing with Makefile variables and prevents people from
needing to edit the Makefile.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vpopmail + postfix

2004-04-26 Thread Chris Ess
On Fri, 23 Apr 2004, X-Istence wrote:

 Paulo Fragoso wrote:
  Hi,
 
  How can we setup vpopmail to work with Postfix? Is necessary have qmail
  installed too?
 
  Thanks,
  Paulo.

 vpopmail was created for qmail only, postfix and qmail are two different
 MTA's so this is not a solution you can use with postfix.

See this sentence from http://www.inter7.com/vpopmail.html :

Inter7 has developed vpopmail (vchkpw), a free GPL software package, to
provide an easy way to manage virtual email domains and non /etc/passwd
email accounts on your qmail or Postfix mail servers.

So it looks like there should be a way to get it to work with Postfix.
(Or someone needs to fix the page.)

There's even a link for a short howto on the Inter7 page:
http://www.inter7.com/vpopmail/postfix.txt

That said, I have never used vpopmail with Postfix, nor do I ever plan to,
so I can't vouch whether or not any of the above is accurate beyond face
value.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] Vpopmail shared library patch

2004-03-11 Thread Chris Ess
On Thu, 11 Mar 2004, Ken Jones wrote:
 On Thursday 11 March 2004 4:22 pm, Tom Collins wrote:

[snip]

  I'm not sure that there's a need to disable the shared library option
  -- I'd like to always build it.

 I'd like to be able to disable shared libraries.
 I like not having run time linking each time vchkpw and vdelivermail
 are run. I'd rather link once at compile time. Makes it just-a-bit-more
 efficent. The only thing it would save me is recompiling vpopmail dependent
 libraries on an update, and that's not a big deal for me.

I see where Mr. Jones is coming from and I agree.  However, I also see
where having a shared library could be better.  (See, for instance, the
recurring theme on this list of I just recompiled vpopmail and now
qmail doesn't work/users can't authenticate through courier-imap/other
stuff is broken now.)

Perhaps, for a 'best of both worlds' (or 'horrible compromise') idea,
maybe we should have configure switches so that we can build static vchkpw
and vdelivermail binaries (since these are the two most run programs under
vpopmail as far as I can see) and yet still build the shared library for
linking with other binaries, including vadddomain, qmailadmin, courier's
authvchkpw module, etc.  I think that any performance hit we might take by
making vadddomain and the other binaries link against the shared library
would be tolerable.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vpopmail and qmailadmin

2003-12-31 Thread Chris Ess
On Wed, 31 Dec 2003, DOV wrote:

 Still no luck logging in from remote using Eudora with smtpd-auth patch... have 
 tried using root in qmail-smtpd, no help there...

 in qmailqueue:
 messages contain: Unable to switch to /var/vpopmail/users/root

 -- which should have been /var/vpopmail/domains/www9.landings.com/root right?


 /var/log/maillog contains:
 www9 vpopmail[21742]: vchkpw-pop3: vpopmail user not found root@:69.3.72.9

 -- seems the above should be [EMAIL PROTECTED]:69.3.72.9 is that correct?)

[snip]

This may sound like a silly question, but...  What is the login name you
are using in Eudora?  Are you using '[EMAIL PROTECTED]'?  If so, try
using 'root%www9.landings.com'.  In my experience, Eudora drops the '@'
and everything to the right of it in the login name.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] R: [vchkpw] Enable-roaming-users tests

2003-12-24 Thread Chris Ess
On Wed, 24 Dec 2003, Andrea Riela wrote:

[snip]

  Keep in mind that if you're using courier-imap you need to
  recompile it
  after building vpopmail with enable-roaming-users since it links
  directly to libvpopmail instead of calling vchkpw.

 That's not clear. I use qmail for pop3, and I will use Courier only for pop3
 with ssl.
 Now I'm testing the enable-roaming-users only with qmail and vpopmail
 (vchkpw).

I have to ask.  Why not use stunnel to create the SSL tunnel and just use
the standard qmail POP3 like you're doing for non-SSL?

My line to start this is:

env - PATH=/var/qmail/bin:/usr/local/bin:/usr/sbin \
tcpserver -H -R -u 89 -g 89 0 pop3s \
stunnel -T pop3s -p /var/qmail/control/servercert.pem \
   -l /var/qmail/bin/qmail-popup vengeance.tokimi.net \
   /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 

This uses a 3.x version of stunnel.  A version 4.x stunnel requires
something completely different.

But, to answer the issue with Courier pop3...

 The problem is: when I use --enable-roaming-users=no, I haven't
 possibilities to send an email from no-LAN ip to no-LAN ip. And that's
 right. But when I use --enable-roaming-users=yes, nothing, and I don't
 undestand why.

 My steps:
 1- ./configure ... --enable-roaming-users=n  make  make install
 That works fine

 2- qmailctl stop
 (rm /home/vpopmail/bin/vchkpw)
 make clean
 ./configure ... --enable-roaming-users=y  make  make install
 qmailctl cdb
 /home/vpopmail/bin/clearopensmtp
 qmailctl start
 Send email from [EMAIL PROTECTED] (internal account) to other external
 account via different connection (dialup) -- 553, not allowed rcphost

 I've forgotten something?

If I've followed this conversation correctly...

Rather than removing /home/vpopmail/bin/vchkpw at the beginning of step
two, shouldn't you be renaming it to a different path so that you can use
it for use with plain POP3 (with should not authenticate IPs)?  Or am I
confused?

After rebuilding vpopmail with --enable-roaming-users=y in step 2, you
should then recompile Courier to ensure that it is linking against the new
(and proper) version of libvpopmail.a   Changing the vchkpw binary will
not affect Courier since, as Mr. Collins says, Courier links directly
against the library and does not ever deal with the vchkpw binary.

I hope this helps.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vchkpw +remote mysql +fail auth

2003-12-22 Thread Chris Ess
On Mon, 22 Dec 2003, [windows-1252] Hlio Rubens Kamogawa wrote:

 Sorry

 If I didn't myself clear. When using SMTP AUTH, I run:

 /var/qmail-in/bin/qmail-smtpd www.centralserver.com.br \
 /var/vpopmail/bin/vchkpw /bin/true 21

 And even so, I get the error message:
 -ERR this user has no $HOME/Maildir

[snip]

I did a grep -i on the error text and the only place I can find it on my
development server is in qmail-pop3d.c  So this would seem to be
POP3-specific.  (I could, of course, be wrong.  I'm only doing a cursory
glance here.)

This particular server is supposed to be SMTP-only, yes?  In that case, I
suggest turning off POP3 on this server (since having it there for the
time being would be pointless) and configuring whatever program you are
using to test this to use a different mailserver for POP3, e.g.  the one
that should be used for POP3 access.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


[vchkpw] vpopmail + maildrop + SQL valias delivery issue problem/kludge

2003-12-21 Thread Chris Ess
Applicable versions:

vpopmail 5.2.1 and 5.2.2
maildrop 1.6.3
MySQL 4.0.16

I don't have a test server set up to use 5.4.0-pre1 but I may get around
to that sometime this next couple of weeks.  (By which time we'll have a
new 5.4.0-pre# version probably.)

The basic issue is one that had been reported before on this mailing
list... If I call vdelivermail in maildrop to handle aliases, it spawns
vdelivermail and says it handles an alias...  But it just simply does not
forward the message.

An example set of lines from my mail log is:
(I have changed the domain names for various reasons)

Dec  8 17:33:15 devmail qmail: 1070922795.117969 new msg 49247
Dec  8 17:33:15 devmail qmail: 1070922795.118076 info msg 49247: bytes 1073 from 
[EMAIL PROTECTED] qp 13756 uid 211
Dec  8 17:33:15 devmail qmail: 1070922795.122280 starting delivery 222: msg 49247 to 
local [EMAIL PROTECTED]
Dec  8 17:33:15 devmail qmail: 1070922795.122377 status: local 1/100 remote 0/100
Dec  8 17:33:15 devmail qmail: 1070922795.162617 delivery 222: success: 
vdelivermail:_valiases_processed/did_0+0+1/
Dec  8 17:33:15 devmail qmail: 1070922795.162727 status: local 0/100 remote 0/100
Dec  8 17:33:15 devmail qmail: 1070922795.162746 end msg 49247

At the time, [EMAIL PROTECTED] was supposed to forward back to
[EMAIL PROTECTED]

After a bit of playing around (including changing vdelivermail to use a
Perl script rather than qmail-inject), I decided that the problem was
that, for whatever reason, qmail-inject was stopping before it had the
opportunity to finish.  My guess is that a signal was being passed to it
that caused it to terminate.  Unfortunately, I don't know what signal that
is since I didn't think to try to add signal handlers to my Perl script.
Also, unfortunately, I don't know if the signal is being issued by (or as
a result of) vdelivermail or maildrop.  (I seem to recall reading
somewhere that a child process is passed a signal if the parent dies.)

I came up with a fix, but it's rather a quick kludge and really should be
replaced with something better.  My fix was to add a sleep(2) after
vdelivermail.c closes the write file descriptor to the qmail-inject child.
So the 'if (inject == 1)' block looks like this:

if ( inject == 1 ) {
close(write_fd);
sleep(2);
return(0);
}


(In 5.2.2, the sleep(2) is line 599.)

The theory is that after two seconds, qmail-inject should be done and then
vdelivermail returns.

This works on both the development and production mailservers I run
without issue.

As I said, it's a nasty kludge, but it may be useful for those of you who
experience this issue.

If you have any better suggestions or think I'm chasing the wrong bug, do
let me know.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)


Re: [vchkpw] vchkpw +remote mysql +fail auth

2003-12-19 Thread Chris Ess
On Fri, 19 Dec 2003, [windows-1252] Hlio Rubens Kamogawa wrote:

 Hi Tom,

 I am trying to hack into the vchkpw code. On line 224 of vchkpw.c, there
 is a commentary:
 /* Change to the users Maildir directory
  * don't do this for smtp authentication connections
  */

 I have tried to comment the code below the commentary but even so when I
 try to authenticate, vchkpw returns a error saying:
 -ERR this user has no $HOME/Maildir

 The best I could do was comment the line 296:
 execvp(argv[1],argv+1);

[snip]

I don't know if this helps at all, but try commenting out the entire if
block.  In vchkpw.c for 5.4.0-pre1, this seems to be lines 227 to 245.

This piece of code seems to be devoted to verifying the existence of the
Maildir and creatign it if its not present.  From your previous emails,
this isn't a necessary check and you should be able to safely remove it.

One thing I'm not sure about, though, is if vchkpw.c tries to do anything
in particular with that directory later.

Sincerely,


Chris Ess
System Administrator / CDTT (Certified Duct Tape Technician)