Changeset 144

Show
Ignore:
Timestamp:
04/14/06 19:48:36 (3 years ago)
Author:
jfp
Message:

impl #59

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Jsmtpd-spf/src/org/jsmtpd/plugins/smtpExtensions/GreyList.java

    r125 r144  
    5555 */ 
    5656public class GreyList implements ISmtpExtension { 
    57     private Map<String,Date> greylist = Collections.synchronizedMap(new HashMap<String,Date>())
    58     private Map<String,Date> greenList = Collections.synchronizedMap(new HashMap<String,Date>())
     57    private Map<String,Date> greylist
     58    private Map<String,Date> greenList
    5959    private Log log = LogFactory.getLog(GreyList.class); 
    6060    private long greytime=30*1000; // Have to remain in gl for 30sec 
    6161    private long greentime = 3600 * 1000; // Once in green list, stay for 1 hour. 
    6262    private IACL acl; 
     63    private Set<String> bypassFrom=new HashSet<String>(); 
    6364     
    6465    public boolean smtpTrigger(String command, IProtocolHandler protocol) { 
     
    7576        if (command==null) { 
    7677            log.error("Null command, skipping..."); 
    77             return false; 
     78            return false;info 
    7879        } 
    7980         
    8081        if (command.toLowerCase().contains("rcpt")) { 
    8182            log.debug("rcpt command issued, checking..."); 
     83            String remoteHost= ((InetSocketAddress) protocol.getSock().getRemoteSocketAddress()).getAddress().getHostAddress(); 
     84             
     85            if (bypassFrom.contains(remoteHost)) { 
     86                log.debug("Bypassed from config : "+remoteHost); 
     87                return false; 
     88            } 
    8289            if (protocol.isRelayed()) { 
    83                 log.info("Protocol is marked relayed."); 
     90                log.debug("Protocol is marked relayed."); 
    8491                return false; 
    8592            } 
    8693             
    87             String remoteHost= ((InetSocketAddress) protocol.getSock().getRemoteSocketAddress()).getAddress().getHostAddress(); 
     94             
    8895            if (acl.isValidRelay(remoteHost)) { 
    89                 log.info("ACL said remote is to be relayed."); 
     96                log.debug("ACL said remote is to be relayed."); 
    9097                return false; 
    9198            } 
     
    150157 
    151158    public void initPlugin() throws PluginInitException { 
     159        greylist=Collections.synchronizedMap(new HashMap<String,Date>()); 
     160        greenList=Collections.synchronizedMap(new HashMap<String,Date>()); 
    152161        acl = PluginStore.getInstance().getAcl(); 
    153162        if (acl==null) { 
     
    210219        this.greytime = greytime; 
    211220    } 
    212      
    213      
     221 
     222        public void setBypassFrom(Set<String> bypassFrom) { 
     223                this.bypassFrom = bypassFrom; 
     224        } 
     225     
     226    public void setBypass (String ip ) { 
     227        bypassFrom.add(ip); 
     228    } 
    214229}