X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fmail%2FWhitelist.java;h=7355a5c449ff7b2b995f8f0cebf07cec9e3727b6;hb=4b76a31e8f86bc8de673899bbb45252c01e9a0f6;hp=1d76bfc16307c964faac0f59d1ec9aa0bfd5bd5a;hpb=7ba51cf938eafe8f5a0e7f1a5dba98f8d5a0c032;p=org.ibex.mail.git diff --git a/src/org/ibex/mail/Whitelist.java b/src/org/ibex/mail/Whitelist.java index 1d76bfc..7355a5c 100644 --- a/src/org/ibex/mail/Whitelist.java +++ b/src/org/ibex/mail/Whitelist.java @@ -12,17 +12,16 @@ import java.util.*; import java.sql.Timestamp; import java.sql.Connection; -public class Whitelist extends SqliteTable { - - public Whitelist(String filename) { - super(filename, - new String[] { - "create table if not exists 'whitelist' (email)", - "create table if not exists 'pending' (spamid,email,message,date)" - }, - true, - "pending", - "date"); +public class Whitelist extends SqliteDB { + + public Whitelist(String filename) throws SQLException { + super(filename); + SqliteTable whitelist = getTable("whitelist", "(email)"); + whitelist.createIndex("email"); + SqliteTable pending = getTable("pending", "(spamid,email,message,date)"); + pending.reap("date"); + pending.createIndex("spamid"); + pending.createIndex("email"); } public boolean handleRequest(org.ibex.net.Connection c) { @@ -100,6 +99,9 @@ public class Whitelist extends SqliteTable { a = m.envelopeFrom; if (a!=null) addWhitelist(a); hsm.add(m); + if (m.cc != null) for(Address aa : m.cc) { + if (aa!= null) addWhitelist(aa); + } } while (rs.next()); } for(Message m : hsm) @@ -217,18 +219,12 @@ public class Whitelist extends SqliteTable { PreparedStatement add = conn.prepareStatement("insert into pending values(?,?,?,?)"); add.setString(1, messageid); add.setString(2, to.toString(false)); - add.setString(3, streamToString(m.getStream())); + add.setString(3, SqliteDB.streamToString(m.getStream())); add.setTimestamp(4, new Timestamp(System.currentTimeMillis())); add.executeUpdate(); } } catch (Exception e) { throw new RuntimeException(e); } } - private static String streamToString(Stream stream) throws Exception { - StringBuffer b = new StringBuffer(); - for(String s = stream.readln(); s!=null; s=stream.readln()) - b.append(s+"\n"); - return b.toString(); - } }