package com.esri.geoevent.solutions.transport.irc.jerklib.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
//http://books.google.com/books?id=MbHAnBh9AqQC&pg=PA310&lpg=PA310&dq=irc+fake+ident&source=web&ots=c5sHoXuzFS&sig=ZOuAeIFxKUYanirnj_hbnfpCXBQ&hl=en#PPA311,M1
public class IdentServer implements Runnable
{
private ServerSocket socket;
private String login;
public IdentServer(String login)
{
this.login = login;
try
{
socket = new ServerSocket(113);
socket.setSoTimeout(60000);
new Thread(this).start();
}
catch (Exception e){}
}
public void run()
{
if (socket == null) return;
try
{
Socket soc = socket.accept();
soc.setSoTimeout(60000);
BufferedReader reader = new BufferedReader(new InputStreamReader(soc.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(soc.getOutputStream()));
String line = reader.readLine();
if (line != null)
{
writer.write(line + " : USERID : UNIX : " + login + "\r\n");
writer.flush();
writer.close();
reader.close();
}
socket.close();
}
catch (IOException e)
{
// log
}
}
}