[comp.soft-sys.andrew] Mail Guru Sought

brianc@ZETA.SAINTJOE.EDU ("Brian CapouchSkK/cQI:8:8") (09/21/89)

Is there an Andrew Mail System person out there who could help a new user get
some problems fixed.

Dozens of people have remarked to me about my crazy "name," which results from
a lack of recognition of delimiter characters in the passwd file.

I have an .AMS.flames file.  Since I have implemented it, I get a crazy message
from the AMS system about "empty symbol" every time I invoke messages.

Also, I didn't have domain name service when I built Andrew.  Now I do.  How do
I let AMS know?

Thanks, whomever; I love you.

Brian Capouch
Saint Joseph's College
brianc@saintjoe.edu

cfe+@ANDREW.CMU.EDU ("Craig F. Everhart") (09/23/89)

(a) Your crazy ``name'' is due to a bug in the X.V11R3 copy of Andrew,
in one file.  I described a patch to that file in a message to
info-andrew on 8/8/89; I reproduce it here:
----------------
I believe that this problem is one I fixed a couple of weeks ago in andrew/ams/libs/ms/init.c, the GetNameFromGecos... procedure.  Naturally, there have been other changes to this procedure, not the least of which was renaming it from GetNameFromGecosField to GetNameFromGecos and changing its arguments), but I bet that you could change the code at line 563 of andrew/ams/libs/ms/init.c from:
 	if (*newname) {
 	    strncpy(*newname, start, prefixlen);
 	    if (ampersand) {
 		char *uname = (*newname) + prefixlen;
 		strcpy(uname, p->pw_name);
 		if (islower(*uname)) *uname = toupper(*uname);
 		strcat(*newname, ampersand+1);
 	    }
 	}
to:
 	if (*newname) {
 	    strncpy(*newname, start, prefixlen);
 	    if (ampersand) {
 		char *uname = (*newname) + prefixlen;
 		strcpy(uname, p->pw_name);
 		if (islower(*uname)) *uname = toupper(*uname);
 		strcat(*newname, ampersand+1);
 	    } else {
		char *uname = (*newname) + prefixlen;
		*uname = '\0';
	    }
 	}
and it would work better.  That is, in the case where there wasn't a ``&'' in your pw_gecos field, the name wasn't null-terminated, and this causes the route-phrase in a validated address to have random garbage after it.
All this was in the version with this RCS header:
$Header: /afs/andrew.cmu.edu/usr13/cfe/src/ams/libs/ms/test/RCS/init.c,v 2.2 88/10/02 15:42:19 ghoti Exp $
Your mileage and line numbers may vary.
----------------

(b) Without seeing your .AMS.flames file, it's hard to know why you'd
get an ``empty symbol'' complaint.

(c) You tell AMS about the domain service by:
	- defining RESOLVER_ENV in your config/andrewenv.h (andyenv.h?) file,
	- defining the correct string for RESOLVLIB in your config/system.mcr
file,
	- re-makeing makefiles to pick up those changes,
	- re-makeing ``install'' in directory andrew/overhead/mail/lib,
	- re-makeing ``install'' in directory andrew/ams/msclients
All that does is assure that you have 
	- maybe editing your AndrewSetup file (or your
andrew/overhead/mail/lib/mailconfig.c file) to enable or disable one or
more of the options:
		AMS_DeliveryViaDomainMXAddress
		AMS_DeliveryViaDomainAddress
		AMS_DeliveryViaGethostbyname
		AMS_DeliveryViaHostTable

Thanks,
Craig Everhart
Andrew message system