package net.trolans.IRC;

import java.io.*;
import java.net.*;

public class Ident extends Thread
{
   ServerSocket identSocket;
   String userId;
   int remotePort;
   int localPort;
   
   boolean stop = false;
   
   public Ident(String userId)
   {
      try
      {
         this.userId = userId;
         identSocket = new ServerSocket(113);
         identSocket.setSoTimeout(10000);
      }
      catch(IOException e) {}
   }
   
   public void pleaseStop()
   {
      this.stop = true;
      this.interrupt();
   }

   public void run()
   {
      while(!stop)
      {
         try
         {
            Socket client = identSocket.accept();
            BufferedReader readStream = new BufferedReader(new InputStreamReader(client.getInputStream()));
            BufferedWriter sendStream = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
            
            String auth;
            
            if((auth = readStream.readLine()) != null)
            {
               localPort = Integer.parseInt(auth.substring(0, auth.indexOf(",") - 1));
               remotePort = Integer.parseInt(auth.substring(auth.indexOf(",") + 1));
               sendStream.write(localPort + " , " + remotePort + " : USERID : JAVA : " + userId + "\r\n");
               sendStream.flush();
               this.pleaseStop();
            }
         }
         catch(InterruptedIOException e) {}
         catch(IOException e) {}
      }
   }
}

