X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Finternet_addressing.c;fp=citadel%2Finternet_addressing.c;h=1da58751440e0842b8176cff7f69f02e088d60e5;hb=993d83d05304da06680a5c731533c6944f3d6fe9;hp=a38601d957903e5d46c7adb34dbe592ad9b15048;hpb=92fb8a9a1eeee45af0fa92e07df11bedd4a06a39;p=citadel.git diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index a38601d95..1da587514 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -398,35 +398,38 @@ char *killo[] = { // FIXME remove this when diags are complete }; -/* - * Aliasing for network mail. - */ -int expand_aliases(char *name) { /* process alias and routing info for mail */ +// Process alias and routing info for email addresses +int expand_aliases(char *name) { int a; char aaa[SIZ]; int at = 0; char node[64]; + char *t; + char *aliases = CtdlGetSysConfig(GLOBAL_ALIASES); // First hit the Global Alias Table + if (aliases) { + char *aptr = aliases; + while ((t = strtok_r(aptr, "\n", &aptr))) { + char *bar = strchr(t, '|'); + if (bar) { + bar[0] = 0; + ++bar; + if (!strcasecmp(name, t)) { + syslog(LOG_DEBUG, "\033[36mAliasing <%s> to <%s>\033[0m", name, bar); + strcpy(name, bar); + } + } + } - - - // FIXME write a "real" alias table here - - - // temporary test of expansion - if (!strcasecmp(name, "root")) { - strcpy(name, "root"); - return(EA_MULTIPLE); - } - if (!strcasecmp(name, "qux")) { - strcpy(name, "eggroll,blat,fun@eek.boop"); - return(EA_MULTIPLE); + free(aliases); + if (strchr(name, ',')) { + return(EA_MULTIPLE); + } } - char original_name[256]; safestrncpy(original_name, name, sizeof original_name);