home *** CD-ROM | disk | FTP | other *** search
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InterruptedIOException;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.net.InetAddress;
- import java.net.Socket;
- import java.util.StringTokenizer;
- import javax.servlet.ServletException;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
-
- public class FingerServlet extends HttpServlet {
- static final int FINGER_PORT = 79;
- private static final String timeout_msg = "Timeout reading from server";
-
- public void doGet(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
- String var3 = var1.getParameter("user");
- String var4 = var1.getParameter("hosts");
- String var5 = var1.getParameter("verbose");
- var2.setContentType("text/html");
- ServletOutputStream var6 = var2.getOutputStream();
- var6.println("<html>");
- var6.println("<head><title>Finger Servlet</title></head>");
- var6.println("<body>");
- var6.println("<h2>Finger results:</h2>");
- var6.println("<pre>");
- if (var4 == null) {
- this.finger(var6, var3, (String)null, "yes".equalsIgnoreCase(var5));
- } else {
- for(StringTokenizer var7 = new StringTokenizer(var4, ","); var7.hasMoreTokens(); var6.println()) {
- String var8 = var7.nextToken();
- var6.println("[" + var8 + "]");
-
- try {
- this.finger(var6, var3, var8, "yes".equalsIgnoreCase(var5));
- } catch (IOException var10) {
- var6.println(((Throwable)var10).toString());
- }
- }
- }
-
- var6.println("</pre>");
- var6.println("</body></html>");
- }
-
- private void finger(ServletOutputStream var1, String var2, String var3, boolean var4) throws IOException {
- Socket var5;
- if (var3 == null) {
- var5 = new Socket(InetAddress.getLocalHost(), 79);
- } else {
- var5 = new Socket(var3, 79);
- }
-
- PrintStream var6 = new PrintStream(var5.getOutputStream());
- if (var4) {
- var6.print("/W ");
- }
-
- if (var2 != null) {
- var6.print(var2);
- }
-
- var6.print("\r\n");
- var6.flush();
- InputStream var7 = var5.getInputStream();
- byte[] var8 = new byte[2048];
-
- try {
- int var9;
- try {
- while((var9 = var7.read(var8, 0, var8.length)) != -1) {
- ((OutputStream)var1).write(var8, 0, var9);
- }
- } catch (InterruptedIOException var14) {
- "Timeout reading from server".getBytes(0, "Timeout reading from server".length(), var8, 0);
- ((OutputStream)var1).write(var8, 0, "Timeout reading from server".length());
- }
- } finally {
- var6.close();
- var5.close();
- }
-
- }
- }
-