home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / servlets / FingerServlet.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-12  |  2.8 KB  |  88 lines

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import java.io.InterruptedIOException;
  4. import java.io.OutputStream;
  5. import java.io.PrintStream;
  6. import java.net.InetAddress;
  7. import java.net.Socket;
  8. import java.util.StringTokenizer;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.ServletOutputStream;
  11. import javax.servlet.http.HttpServlet;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14.  
  15. public class FingerServlet extends HttpServlet {
  16.    static final int FINGER_PORT = 79;
  17.    private static final String timeout_msg = "Timeout reading from server";
  18.  
  19.    public void doGet(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
  20.       String var3 = var1.getParameter("user");
  21.       String var4 = var1.getParameter("hosts");
  22.       String var5 = var1.getParameter("verbose");
  23.       var2.setContentType("text/html");
  24.       ServletOutputStream var6 = var2.getOutputStream();
  25.       var6.println("<html>");
  26.       var6.println("<head><title>Finger Servlet</title></head>");
  27.       var6.println("<body>");
  28.       var6.println("<h2>Finger results:</h2>");
  29.       var6.println("<pre>");
  30.       if (var4 == null) {
  31.          this.finger(var6, var3, (String)null, "yes".equalsIgnoreCase(var5));
  32.       } else {
  33.          for(StringTokenizer var7 = new StringTokenizer(var4, ","); var7.hasMoreTokens(); var6.println()) {
  34.             String var8 = var7.nextToken();
  35.             var6.println("[" + var8 + "]");
  36.  
  37.             try {
  38.                this.finger(var6, var3, var8, "yes".equalsIgnoreCase(var5));
  39.             } catch (IOException var10) {
  40.                var6.println(((Throwable)var10).toString());
  41.             }
  42.          }
  43.       }
  44.  
  45.       var6.println("</pre>");
  46.       var6.println("</body></html>");
  47.    }
  48.  
  49.    private void finger(ServletOutputStream var1, String var2, String var3, boolean var4) throws IOException {
  50.       Socket var5;
  51.       if (var3 == null) {
  52.          var5 = new Socket(InetAddress.getLocalHost(), 79);
  53.       } else {
  54.          var5 = new Socket(var3, 79);
  55.       }
  56.  
  57.       PrintStream var6 = new PrintStream(var5.getOutputStream());
  58.       if (var4) {
  59.          var6.print("/W ");
  60.       }
  61.  
  62.       if (var2 != null) {
  63.          var6.print(var2);
  64.       }
  65.  
  66.       var6.print("\r\n");
  67.       var6.flush();
  68.       InputStream var7 = var5.getInputStream();
  69.       byte[] var8 = new byte[2048];
  70.  
  71.       try {
  72.          int var9;
  73.          try {
  74.             while((var9 = var7.read(var8, 0, var8.length)) != -1) {
  75.                ((OutputStream)var1).write(var8, 0, var9);
  76.             }
  77.          } catch (InterruptedIOException var14) {
  78.             "Timeout reading from server".getBytes(0, "Timeout reading from server".length(), var8, 0);
  79.             ((OutputStream)var1).write(var8, 0, "Timeout reading from server".length());
  80.          }
  81.       } finally {
  82.          var6.close();
  83.          var5.close();
  84.       }
  85.  
  86.    }
  87. }
  88.