[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: still a small error in .48 ?



> Hi,
> 
> While running .44 to .48 i always noted the same:
> 
> expn majordomo
> 250-Usage: login2uid login
> 250-Usage: fullname key
> 250-Usage: recase [ -u | -l | -p ] string
> 250-Usage: fullname key
> 550 no such user: <"|/usr/local/majordomo-1.94.1/wrapper majordomo">
> quit
> 221 2.0.0 cal026031.student.utwente.nl Out
> Connection closed by foreign host.
> 
> This happens to pipes. I noted there were some patches, but pipes still
> don't work well.
> 
> The following solved it for me (by editing rrouter.cf):

	Nope, wrong location.  Problems existed at two locations:
		- aliases.cf
		- server.cf
	Proper patches below.  Also appended to the "patch1".
	(tomorrow starts "patch2", if need be..)

	Here are some of my tests:

EXPN "|pipe"
250 local delivery for <|pipe>
EXPN "|pipe space"
250 local delivery for <"|pipe space">
EXPN mea
250 Matti Aarnio <mea@smtp.inet.fi>
EXPN nobodypipe
250 local delivery for <"| cat > /dev/null">
EXPN nobody
250 local delivery for </dev/null>
EXPN test-domo
250 local delivery for <"|/usr/local/majordomo-1.94.1/wrapper majordomo">
EXPN no-such-user
550 no such user: <no-such-user>

	Do note that the users can write ANYTHING they want into
	that parameter, and the system may claim the delivery to
	succeed, while it very likely will fault it -- because of
	privilege violation, or some such.

	The VRFY is even shorter in its flow-thru.  It perhaps should
	be able to tell that some address is actually a list, or some
	user, but now it won't do that.
...
> Then everything works fine (of course you will have to define filepipe als
> a channel in scheduler.conf).
> 
> As local channel i'm using procmail delivery.
> 2.99.48 is already better here..mail to nonexistent adresses now come back
> to you (with cc to postoffice) where in .46 it was just dumped to
> /dev/null or so...you never saw an errormail come back...scheduler dumped
> it.
> 
> Someone with good ideas ?
> Is it procmail perhaps ?

	You lost me.  What is "it" above ?

> Mark
> -------------------------------------------------------------------------
> Mark Visser                |   Student Civiele Technologie & Management
> Calslaan 26 - 31           |   E-mail: mark@cal026031.student.utwente.nl
> 7522 MC Enschede           |   SNT-mail: mark@snt.student.utwente.nl
> Telephone: 053-4895038     |

	/Matti Aarnio <mea@nic.funet.fi>


--- zmailer-2.99.48/proto/cf/aliases.cf~	Tue Feb 18 10:50:05 1997
+++ zmailer-2.99.48/proto/cf/aliases.cf	Fri Apr 25 19:56:47 1997
@@ -359,7 +359,7 @@
 
 	if [ -n "$pobox" ]; then
 		db add expansions "$key" pobox
-		priv=$(login2uid $user)
+		priv=$(login2uid "$user")
 		return (((local "pob:$user" "$pobox$plustail$domain" $(newattribute $attr privilege $priv))))
 	fi
 
--- zmailer-2.99.48/proto/cf/server.cf~	Wed Jan  3 10:14:16 1996
+++ zmailer-2.99.48/proto/cf/server.cf	Fri Apr 25 20:27:10 1997
@@ -5,24 +5,39 @@
 #| This is a prettyprinter for address quads.  What it prints is what someone
 #| doing a VRFY or EXPN query to the SMTP server will see.
 
-	local text
+	local text user user2
 
+	user="$(user $quad)"
 	case $(channel $quad) in
-	local)	sift "$(user $quad)" in
+	local)	ssift "$user" in
 		[|/].*	text="local delivery for"
+			break
 			;;
-		.*	text=$(login2uid $(user $quad))	# ignore return value
-			if text="$(fullname $(user $quad))"; then
+		.*
+			user2="$user"
+			ssift "$user2" in
+			(.*)@([^@]+)	# FQDN format address ?
+				user2="\1" ;;
+			.*	;;
+			tfiss
+			ssift "$user2" in
+			(.*)\+(.*)	# A "+" in the name ?
+				user2="\1" ;;
+			.*	;;
+			tfiss
+			
+			text="$(login2uid "$user2")"	# ignore return value
+			if text="$(fullname "$user2")"; then
 				text="$text"
 			else
-				if text="$(fullname $(recase -l $(user $quad)))"; then
+				if text="$(fullname "$(recase -l "$user2")")"; then
 					text="$text"
 				else
 					text="550 no such user:"
 				fi
 			fi
 			;;
-		tfis
+		tfiss
 		;;
 	usenet)	text="newsgroup:" ;;
 	*)	text="$(channel $quad) delivery"
@@ -32,7 +47,7 @@
 		esac
 		;;
 	esac
-	echo "$text <$(user $quad)>"
+	echo "$text <$user>"
 }
 
 server (key) {