bogus
[org.ibex.mail.git] / src / org / ibex / mail / protocol / POP3.java
1 package org.ibex.mail.protocol;
2 import org.ibex.util.*;
3 import org.ibex.io.*;
4 import org.ibex.mail.*;
5 import org.ibex.mail.target.*;
6 import org.ibex.jinetd.*;
7 import java.io.*;
8 import java.net.*;
9 import java.util.*;
10
11 public interface POP3 {
12
13     public static interface Server {
14         public void     userpass(String user, String pass);
15         public void     apop(String user, String digest);
16         public Stream   top(int m, int maxlines);
17         public Stream   retr(int m);
18         public long     stat();        // top 32 bits is number of messages, bottom 32 is total size
19         public long[]   list();        // top 32 bits is message number, bottom 32 is size
20         public long     list(int m);
21         public void     dele(int m);
22         public void     noop(int m);
23         public void     rset(int m);
24         public String   uidl(int m);
25         public String[] uidl();         // FIXME, also needs message number
26     }
27
28     public static class Listener implements Worker {
29         Server api = null;
30         public void handleRequest(Connection conn) {
31             conn.setTimeout(30 * 60 * 1000);
32             conn.println("+OK " + conn.vhost + " [" + POP3.class.getName() + "] ready");
33             String user = null;
34             String pass = null;
35             for(String line = conn.readln(); line != null; line = conn.readln()) {
36                 StringTokenizer st = new StringTokenizer(line, " ");
37                 String command = st.nextToken().toUpperCase();
38                 if        (command.equals("USER")) {
39                 } else if (command.equals("PASS")) {
40                 } else if (command.equals("QUIT")) {
41                 }
42             }
43         }
44     }
45 }