From 62bb3669ae94077bf95dfb8ec0c556a199e354b2 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 11 Jan 2002 04:59:01 +0000 Subject: [PATCH] * Finished most of the work for the Global Address Book. --- citadel/ChangeLog | 4 +++- citadel/internet_addressing.c | 9 +++++++++ citadel/msgbase.c | 11 ++++++----- citadel/serv_smtp.c | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index b42f4f954..d684d783d 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,7 @@ $Log$ + Revision 590.56 2002/01/11 04:59:00 ajc + * Finished most of the work for the Global Address Book. + Revision 590.55 2002/01/11 04:37:03 ajc * More code for the Global Address Book @@ -3133,4 +3136,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 4b803096c..f83631946 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -654,6 +654,8 @@ void directory_key(char *key, char *addr) { } } key[keylen++] = 0; + + lprintf(9, "Directory key is <%s>\n", key); } @@ -669,11 +671,14 @@ int IsDirectory(char *addr) { striplt(domain); h = CtdlHostAlias(domain); + lprintf(9, "IsDirectory(%s)\n", domain); if ( (h == hostalias_localhost) || (h == hostalias_directory) ) { + lprintf(9, " ...yes\n"); return(1); } else { + lprintf(9, " ...no\n"); return(0); } } @@ -724,6 +729,8 @@ int CtdlDirectoryLookup(char *target, char *internet_addr) { struct cdbdata *cdbrec; char key[SIZ]; + lprintf(9, "CtdlDirectoryLookup(%s)\n", internet_addr); + if (IsDirectory(internet_addr) == 0) return(-1); directory_key(key, internet_addr); @@ -731,8 +738,10 @@ int CtdlDirectoryLookup(char *target, char *internet_addr) { if (cdbrec != NULL) { safestrncpy(target, cdbrec->ptr, SIZ); cdb_free(cdbrec); + lprintf(9, "Looked up as <%s>\n", target); return(0); } + lprintf(9, "Lookup failed\n"); return(-1); } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index f13e75aac..3996618a8 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -158,6 +158,12 @@ int alias(char *name) strcpy(name, bbb); } fclose(fp); + + /* Hit the Global Address Book */ + if (CtdlDirectoryLookup(aaa, name) == 0) { + strcpy(name, aaa); + } + lprintf(7, "Mail is being forwarded to %s\n", name); /* Change "user @ xxx" to "user" if xxx is an alias for this host */ @@ -170,11 +176,6 @@ int alias(char *name) } } - /* Hit the Global Address Book */ - if (CtdlDirectoryLookup(aaa, name) == 0) { - strcpy(name, aaa); - } - /* determine local or remote type, see citadel.h */ at = haschar(name, '@'); if (at == 0) return(MES_LOCAL); /* no @'s - local address */ diff --git a/citadel/serv_smtp.c b/citadel/serv_smtp.c index b904208ed..045d78a2d 100644 --- a/citadel/serv_smtp.c +++ b/citadel/serv_smtp.c @@ -414,8 +414,8 @@ void smtp_rcpt(char *argbuf) { strcpy(recp, &argbuf[3]); striplt(recp); + stripallbut(recp, '<', '>'); alias(recp); - cvt = convert_internet_address(user, node, recp); snprintf(recp, sizeof recp, "%s@%s", user, node); lprintf(9, "cvt=%d, citaddr=<%s@%s>\n", cvt, user, node); -- 2.39.2