I already sent this some time ago, but it seems it remained unnoticed. This is an auth module which can use a traditional checkpassword binary. Great for people who have customized checkpassword-programs which can still be used with qpsmtpd.
There are quite some people who use this approach, in fact there are patches for qmail available, which makes qmail-smtpd a checkpassword binary. This module provides the same functionality for qpsmtpd. I would suggest adding this to the CVS. I'm unsure about the policies for CVS inclusion and access, is this documented? -kju -- It's an insane world, but i'm proud to be a part of it. -- Bill Hicks
#!/usr/bin/perl -w sub register { my ( $self, $qp ) = @_; $self->register_hook( "auth-plain", "authcpw" ); $self->register_hook( "auth-login", "authcpw"); } sub authcpw { my ( $self, $transaction, $method, $user, $passClear, $passHash, $ticket ) = @_; my $binary = $self->qp->config("smtpauth-checkpassword") or return (DECLINED); return(DECLINED) if ( ! -x $binary ); my ($untainted) = $binary =~ /^(.*)$/; open(CPW,"|$untainted 3<&0"); printf(CPW "%s\0%s\0Y123456\0",$user,$passClear); close(CPW); my $status = $?; return(DECLINED) if ( $status != 0 ); return ( OK, "authcheckpassword" ); }