[comp.mail.sendmail] strange behavior of smail 3.1.20

heiko@methan.chemie.fu-berlin.de (Heiko Schlichting) (03/23/91)

Hello,

we noticed a *very* strange behavior of smail 3.1.20 using the
options "-bt -d<nn>" with <nn> in 50 to 99.

With our routers-File (see below) we get the following answers:

echo "test@test" | smail -bt -d49 :

smail> rtd_gethostbyaddr called
smail> rtd_uuname called
smail> rtd_gethostbyname called
smail> rtd_pathalias called
smail> bsearch_lookup: looking for <test>
smail> bsearch_lookup: looking for <.test>
smail> rtd_smarthost called
smail> test@test: test matched by smart_host:
smail> use default transport smtp for test@test
smail>     routed test@test --> test@test at unido.informatik.uni-dortmund.de
smail> host: unido.informatik.uni-dortmund.de  user: test@test  transport: smtp

This seems absolutly normal because unido.informatik... is our
smarthost.

But look at the difference when I use debug-level 50 instead of 49:

echo "test@test" | smail -bt -d50 :

smail> preparse_address(test@test) entry:
smail> preparse address returns: test@test
smail> parse_address called: address=test@test
smail> parse_address: MAILBOX: target=test, remainder=test
smail> route_remote_addrs called
smail> rtd_gethostbyaddr called
smail> rtd_uuname called
smail> rtd_gethostbyname called
smail> test@test: test matched by inet_hosts:
smail> rtd_pathalias called
smail> rtd_smarthost called
smail> parse_address called: address=test
smail> parse_address: LOCAL: remainder=test
smail> user: test  transport: local

THIS looks very abnormal... and it appears *only* if the length of the
username is equal to the length of the hostname. If I try this with
tes@test or test@testing the mail is delivered to the smarthost.

But why does the inet_hosts-router (=gethostbyname, see below) match?
Especially when there is a parameter "required=fu-berlin.de".
Unnecessary to mention that there is no host "test[.chemie].fu-berlin.de" in
the nameserver and that we have a "domain chemie.fu-berlin.de" in our
/etc/resolv.conf.

What is the difference between debug-level 49 and 50?

And here is our routers-Configuration File (which is not unusual, I think):
(excuse the *German* comments ;-)

--- cut here ---
#
# /usr/local/lib/smail/routers - Smail 3.1 routing festlegen
#
#        Aenderung: 28.02.91 (hs) uucp_neighbors fuer {host}.direct
#				  eingefuehrt. Gute Moeglichkeit, um
#				  neue UUCP-Verbindungen zu testen.
#				  Zur Zeit nur fuer Transport UUX
#				  geeignet, das methods wird absichtlich
#				  nicht beachtet.

# Routing-Reihenfolge:
# 1. numerische Internetadressen
# 2. Direkt angeschlossene UUCP-Sites (nur fuer Testzwecke!)
# 3. Rechner auf dem lokalen Netzwerk der FU
# 4. Routen nach den Angaben im Pathalias-Output
# 5. Smart Host


# 1. numerische Internetadressen
#
# Adressen wie user@[130.133.2.81] werden zuerst behandelt, weil 
# die eckigen Klammern die anderen Router verwirren (siehe Smail-Doku).

inet_addrs:
	driver = gethostbyaddr,		# router to match IP domain literals
	transport = smtp;		# deliver using SMTP over TCP/IP
	fail_if_error,			# fail malformed domain literal addrs
	check_for_local			# see if this is really the local host


# 2. Direkt angeschlossene UUCP-Sites (nur fuer Testzwecke!)
#
# Nur fuer Testzwecke in das Routers-File genommen!
# Es wird nur benutzt, wenn der Hostname als "host.direct" eingetippt
# wird. Zum Beispiel wird "neon.direct" in das Spoolverzeichnis von
# neon geschrieben, auch wenn wir eigentlich tmp.mbx.sub.org!utopia!neon
# routen.

uucp_neighbors:
	driver = uuname,	# use a program which returns neighbors
#	method = methods,	# Ausnahmsweise keine Methods benutzen, 
				# sondern IMMER uux!
	transport = uux;
	cmd = /usr/bin/uuname,	# specifically, use the uuname program
	required = direct,
	domain = direct


# 3. Rechner auf dem lokalen Netzwerk der FU
#
# Nur Rechner die ein "fu-berlin.de" in der Adresse haben werden in
# jedem Fall direkt zugestellt. Moeglicherweise sollte man hier spaeter
# auch die MX-Records auswerten. Da es zur Zeit kaum MX-Records an
# der FU gibt, kann man sich das auch schenken (Minimierung der
# Fehlerquellen und weniger Netzzugriffe)

inet_hosts:
	driver = gethostbyname,		
	transport = smtp;
	required = fu-berlin.de


# 4. Routen nach den Angaben im Pathalias-Output
#
# Der Pathalias-Output (steht bei uns in /usr/local/lib/smail/paths)
# wird als Grundlage fuer das Routing genommen. Zahlreiche SMTP-
# Verbindungen sind in /usr/spool/uumaps/u.sub.smtp eingetragen, wie
# zum Beispiel die Verbindung methan... mit opal... und die direkte
# Verbindung von methan... mit uunet...
# Auszuege der DNet-Map findet man in /usr/spool/uumaps/u.sub.x, damit
# die an Unido haengenden Rechner auch ueber unido geroutet werden. Damit
# kommt es dann zum Beispiel zu einem Pfad unido...!uka!smurf.
# Direktes Einliefern bei uka ist nicht moeglich, weil uka unseren
# Rechner ablehnt, solange kein Reversed Mapping moeglich ist.
# WICHTIG: Der Pathalias-Output muss sortiert sein (proto = bsearch), 
#          sonst muss man proto = lsearch setzen!
# Mit der Datei /usr/local/lib/smail/methods/methods wird festgelegt,
# ob wir mit dem entsprechenden Rechner Mails per uux, smtp oder
# batched-smtp ("uursmtp") Mails austauschen. Default ist uux, also
# muessen alle Rechner, mit denen wir per SMTP austauschen wollen,
# ausdruecklich eingetragen werden (bei weltweitem Internetzugriff
# ist das nicht mehr sinnvoll, da ist dann ein MX beachtender
# Router vom Typ "bind" zu verwenden).

paths:	driver = pathalias,
	method = methods,	# Transportart ist in methods festgelegt:
				# entweder uux, smtp oder uursmtp
	transport = uux;	# default ist uux, steht zusaetzlich noch
				# als '*' in methods
	file = paths,		# Name der Datenbasis, ohne absoluten Pfad
				# wird das Smail-Libdir angenommen.
	proto = bsearch,	# alphabetisch sortiert, sonst lserach, dbm...
#	optional,		# optional auskommentiert = wenn keine
				# Pathalias-Datenbasis vorhanden ist,
				# terminiert smail mit einer Eintragung
				# im paniclog.
	domain = uucp		# ".uucp" wird vor dem Nachschauen in
				# der Pathalias-Datenbasis entfernt.


# 5. Smart Host
#
# Wenn nichts funktioniert hat, wird die Mail per SMTP zu unido geschickt.
# Bei 'path' kann auch ein laengerer (Bang)-Pfad stehen, zum Beispiel
# opal.cs.tu-berlin.de!uunet.uu.net oder aehnliches.
# Natuerlich darf der Smart_Host-Router nur als letzter Router angegeben
# werden.

smart_host:
	driver = smarthost,
	transport = smtp;
	path = unido.informatik.uni-dortmund.de

# Ende.
--- cut here ---

Bye, Vera and Heiko.
-- 
 |~|    Heiko Schlichting                   | Freie Universitaet Berlin 
 / \    heiko@fub.uucp                      | Institut fuer Organische Chemie
/FUB\   heiko@methan.chemie.fu-berlin.de    | Takustrasse 3
`---'   phone +49 30 838-2677; fax ...-5163 | D-1000 Berlin 33  Germany