+citadel (7.10-1) unstable; urgency=low
+
+ * update to actual Citadel SVN. many new features. see Packages changelog.
+
+ -- Wilfried Goesgens <citadel@outgesourced.org> Sun, 29 Apr 2007 13:01:00 +0200
+
+
citadel (7.08-15) unstable; urgency=high
* fix permission bug
- -- Wilfried Goesgens <citadel@outgesourced.org> Fri, 06 Apr 2007 19:07:00 +0000
+ -- Wilfried Goesgens <citadel@outgesourced.org> Fri, 06 Apr 2007 19:07:00 +0000
+
citadel (7.07-14) unstable; urgency=low
+
+ * update to actual Citadel SVN. many new features. see Packages changelog.
- * update to actual Citadel SVN. many new features. see Packages changelog.
-
- -- Wilfried Goesgens <citadel@outgesourced.org> Fri, 06 Apr 2007 19:07:00 +0000
+ -- Wilfried Goesgens <citadel@outgesourced.org> Fri, 06 Apr 2007 19:07:00 +0000
+
citadel (7.06-13) stable; urgency=high
* fixed location of key files
- -- Wilfried Goesgens <citadel@outgesourced.org> Sun, 1 Apr 2007 11:09:00 +0100
+ -- Wilfried Goesgens <citadel@outgesourced.org> Sun, 1 Apr 2007 11:09:00 +0100
citadel (7.06-12) stable; urgency=high
* updated mime-parser
- -- Wilfried Goesgens <citadel@outgesourced.org> Mon, 21 Mar 2007 11:09:00 +0100
+ -- Wilfried Goesgens <citadel@outgesourced.org> Mon, 21 Mar 2007 11:09:00 +0100
+
citadel (7.06-11) unstable; urgency=low
* fixes to the configure script.
&& (!strcasecmp(&fqdn[strlen(fqdn)-strlen(host)], host)))
return(hostalias_directory);
+ if ( (!strcasecmp(type, "masqdomain"))
+ && (!strcasecmp(&fqdn[strlen(fqdn)-strlen(host)], host)))
+ return(hostalias_masq);
+
}
return(hostalias_nomatch);
/* Return nonzero if the supplied address is in a domain we keep in
* the directory
*/
-int IsDirectory(char *addr) {
+int IsDirectory(char *addr, int allow_masq_domains) {
char domain[256];
int h;
h = CtdlHostAlias(domain);
+ if ( (h == hostalias_masq) && allow_masq_domains)
+ return(1);
+
if ( (h == hostalias_localhost) || (h == hostalias_directory) ) {
return(1);
}
lprintf(CTDL_DEBUG, "Dir: %s --> %s\n",
internet_addr, citadel_addr);
- if (IsDirectory(internet_addr) == 0) return;
+ if (IsDirectory(internet_addr, 0) == 0) return;
directory_key(key, internet_addr);
if (num_tokens(internet_addr, '@') != 2) return(-1);
/* Only do lookups for domains in the directory */
- if (IsDirectory(internet_addr) == 0) return(-1);
+ if (IsDirectory(internet_addr, 0) == 0) return(-1);
directory_key(key, internet_addr);
cdbrec = cdb_fetch(CDB_DIRECTORY, key, strlen(key) );
strcat(addr, " <");
strcat(addr, msg->cm_fields['F']);
strcat(addr, ">");
- if (IsDirectory(msg->cm_fields['F'])) {
+ if (IsDirectory(msg->cm_fields['F'], 0)) {
is_harvestable = 0;
}
}
* because if the address were valid, we would have
* already translated it to a local address by now.
*/
- if (IsDirectory(this_recp)) {
+ if (IsDirectory(this_recp, 0)) {
++ret->num_error;
invalid = 1;
}
keyopt(" <4> directory (Consult the Global Address Book)\n");
keyopt(" <5> SpamAssassin (Address of SpamAssassin server)\n");
keyopt(" <6> RBL (domain suffix of spam hunting RBL)\n");
+ keyopt(" <7> masq domains (Domains as which users are allowed to masquerade)\n");
sel = intprompt("Which one", 1, 1, 6);
switch(sel) {
case 1: strcpy(buf, "localhost");
return;
case 6: strcpy(buf, "rbl");
return;
+ case 7: strcpy(buf, "masqdomain");
+ return;
}
}
addr = strdup(s);
striplt(addr);
if (strlen(addr) > 0) {
- if ( (IsDirectory(addr)) || (!local_addrs_only) ) {
+ if ( (IsDirectory(addr, 1)) ||
+ (!local_addrs_only) ) {
++saved_instance;
if ((saved_instance == 1) && (emailaddrbuf != NULL)) {
safestrncpy(emailaddrbuf, addr, emailaddrbuf_len);