On Sun, Sep 07, 2003 at 05:49:55PM -0400, Sam Varshavchik wrote:
> Courier User writes:
>
> >On Sun, Sep 07, 2003 at 05:09:44PM -0400, Sam Varshavchik wrote:
> >>Courier User writes:
> >>
> >>>However, the following case is not specifically mentioned, and so
> >>>can I therefore assume that it is not covered? ...
> >>>
> >>> badfrom [EMAIL PROTECTED]
> >>> Reject all mail with the return address of
> >>> <[EMAIL PROTECTED]>.
> >>
> >>Correct. It is not covered.
> >
> >Thank you.
> >
> >Was this case omitted for a specific reason, or was it left out as
> >an oversight?
>
> This case was simply not implemented.
>
> >If there was no specific reason for this omission, is there any
> >chance that this case will be offered in a future release of
> >Courier?
>
> If someone else does this, I'll look at the patch.
How about this (based on 0.43.1)?
*** courier/bofh.c.orig Sun Sep 7 18:21:53 2003
--- courier/bofh.c Sun Sep 7 19:03:56 2003
***************
*** 220,225 ****
--- 220,247 ----
return (chkbadlist(pp, bofh_spamtrap));
}
+ static int chkusersubdom(const char *p, const char *d, const char *name)
+ {
+ const char *dn, *dn1, *d2;
+ int lp, ln, ldp, ldn;
+ if (p == NULL || d == NULL || d <= p || d[1] != '.'
+ || name == NULL || (dn = strrchr(name, '@')) == NULL)
+ {
+ return (0);
+ }
+
+ lp = d - p;
+ ln = dn - name;
+ if (lp != ln || strncmp(p, name, ln) != 0)
+ {
+ return (0);
+ }
+
+ return ((ldn = strlen(dn1 = dn + 1)) > 0
+ && (ldp = strlen(d2 = d + 2)) >= ldn
+ && strcmp(d2 + (ldp - ldn), dn1) == 0);
+ }
+
static int chkbadlist(const char *pp, struct bofh_list *b)
{
char *p=courier_malloc(strlen(pp)+1);
***************
*** 235,241 ****
for (; b; b=b->next)
{
if ((d && strcmp(d, b->name) == 0)
! || /* Entire domain */
strcmp(p, b->name) == 0
|| (d && strncmp(b->name, "@.", 2) == 0
&& (ll=strlen(b->name+1)) < l
--- 257,265 ----
for (; b; b=b->next)
{
if ((d && strcmp(d, b->name) == 0)
! || /* Entire domain with user ID */
! chkusersubdom(p, d, b->name)
! || /* Entire domain without user ID */
strcmp(p, b->name) == 0
|| (d && strncmp(b->name, "@.", 2) == 0
&& (ll=strlen(b->name+1)) < l
--
Courier User
[EMAIL PROTECTED]
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
courier-users mailing list
[EMAIL PROTECTED]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users