Changeset 218

Show
Ignore:
Timestamp:
08/28/08 17:29:50 (3 months ago)
Author:
jfp
Message:

#69 Integrate fix from Juan Zamora

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/jsmtpd-1.x/jsmtpd/src/org/jsmtpd/plugins/filters/builtin/RcptMatcher.java

    r123 r218  
    6161    public boolean doFilter(Email input) throws FilterTreeFailureException, FilterTreeSuccesException { 
    6262        List<Rcpt> rcptInMail = input.getRcpt(); 
    63         boolean res; 
     63        boolean res = false; 
     64        boolean found = false; 
    6465        if (orOperator) { 
    6566            for (Iterator iterator = rcptInMail.iterator(); iterator.hasNext();) { 
     
    6970                    EmailAddress oneRcptToMatch = (EmailAddress) iter.next(); 
    7071                    if (oneRcptToMatch.isEqual(oneRcptInMail)) { 
    71                         res = true; 
     72                        found = true; 
    7273                        break; 
    7374                    } 
    7475                } 
     76                if (found) { 
     77                    break; 
     78                } 
    7579            } 
    76  
    77             res = false; 
    7880        } else { 
    79             for (Iterator iter = rcptToMatch.iterator(); iter.hasNext();) { 
    80                 EmailAddress oneRcptToMatch = (EmailAddress) iter.next(); 
    81                 boolean found = false; 
    82                 for (Iterator iterator = rcptInMail.iterator(); iterator.hasNext();) { 
    83                     Rcpt element = (Rcpt) iterator.next(); 
    84                     EmailAddress oneRcptInMail = element.getEmailAddress(); 
     81            log.debug("Plugin: " + getPluginName() + " Start validating without orOperator"); 
     82            for (Iterator iterator = rcptInMail.iterator(); iterator.hasNext();) { 
     83                Rcpt element = (Rcpt) iterator.next(); 
     84                EmailAddress oneRcptInMail = element.getEmailAddress(); 
     85                found = false; 
     86                for (Iterator iter = rcptToMatch.iterator(); iter.hasNext();) { 
     87                    EmailAddress oneRcptToMatch = (EmailAddress) iter.next(); 
    8588                    if (oneRcptToMatch.isEqual(oneRcptInMail)) { 
    8689                        found = true; 
     
    8992                } 
    9093                if (!found) { 
    91                     res = false
     94                    break
    9295                } 
    9396            } 
     97        } 
     98        if (found) { 
    9499            res = true; 
    95100        }