diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-05-06 12:59:02 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-05-06 12:59:02 +0000 |
commit | 48edecb8654348e5de7e5c35de3da60bc2553123 (patch) | |
tree | 8722e2f0fbb20fcd0491073da9608507113a0bf5 /driver.c | |
parent | 6085ee3e7825efd7a9684fe3af0261a6fc3bacd0 (diff) | |
download | fetchmail-48edecb8654348e5de7e5c35de3da60bc2553123.tar.gz fetchmail-48edecb8654348e5de7e5c35de3da60bc2553123.tar.bz2 fetchmail-48edecb8654348e5de7e5c35de3da60bc2553123.zip |
Mike McAllister sent a fix for qvirtual.
svn path=/trunk/; revision=1758
Diffstat (limited to 'driver.c')
-rw-r--r-- | driver.c | 29 |
1 files changed, 15 insertions, 14 deletions
@@ -261,25 +261,26 @@ struct idlist **xmit_names; /* list of recipient names parsed out */ int sl; int off = 0; - lname = idpair_find(&ctl->localnames, name); - if (!lname && ctl->wildcard) - lname = name; - - if (lname != (char *)NULL) - { - /* - * If the name of the user begins with a - * qmail virtual domain prefix, remove - * the prefix - */ + /* + * If the name of the user begins with a + * qmail virtual domain prefix, remove + * the prefix + */ if (ctl->server.qvirtual) { sl=strlen(ctl->server.qvirtual); - if (!strncasecmp(lname,ctl->server.qvirtual,sl)) off=sl; + if (!strncasecmp(name,ctl->server.qvirtual,sl)) off=sl; } + + lname = idpair_find(&ctl->localnames, name+off); + if (!lname && ctl->wildcard) + lname = name+off; + + if (lname != (char *)NULL) + { if (outlevel == O_VERBOSE) - error(0, 0, "mapped %s to local %s", name, lname+off); - save_str(xmit_names, lname+off, XMIT_ACCEPT); + error(0, 0, "mapped %s to local %s", name, lname); + save_str(xmit_names, lname, XMIT_ACCEPT); accept_count++; } } |