package market.servlet;

import java.rmi.registry.*;
import java.rmi.*;
import java.io.*;
/**
 * Insert the type's description here.
 * Creation date: (7.3.00 18:31:24)
 * @author: 
 */
public class PathServlet extends javax.servlet.http.HttpServlet {
	public static String logFilePath = "/home/esof/esof/rsrServerLog/";
/**
 * PathServlet constructor comment.
 */
public PathServlet() {
	super();
}
/**
 * Insert the method's description here.
 * Creation date: (08.3.2000 “. 00:01:00)
 * @return java.lang.String
 * @param name java.lang.String
 * @param query java.lang.String
 */
public String getParam(String name, String query) {
	if (query == null)	return null;
	int start = query.indexOf(name);
	if ( start != -1 ){
		int beg = start + name.length() + 1;
		int end = query.indexOf( (int)'&', beg);
		if ( end == -1 ){
			end = query.length();
		}	
		String res;
		try{
			res = query.substring( beg, end );
			return res;
		}catch( Exception e ){
		  return null;	
		}	
	}else
	  return null;	
}
/**
 * Insert the method's description here.
 * Creation date: (08.3.2000 “. 00:14:16)
 * @param args java.lang.String[]
 */
public static void main(String[] args) {
	PathServlet er = new PathServlet();
	String query = "word=cat&day=12&free=";
	
	String s1 = er.getParam("word", query );
	String s2 = er.getParam("day", query );
	String s3 = er.getParam("free", query );
	String s4 = er.getParam("fee", query );
	
	System.out.println( s1+" "+s2 + " " + s3+ " " + s4);
		
}
/**
 * service method comment.
 */
public void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws javax.servlet.ServletException, java.io.IOException {
	res.setContentType("text/plain");
	PrintWriter out = res.getWriter();
	
	// System.setSecurityManager(new RMISecurityManager());
	// Insert code to start the application here.
	try{
		//String host = req.getParameter("host");
		//Registry reg = LocateRegistry.getRegistry( host, 1099 );
		
		//out.println( "List: ");   
		String name = req.getParameter("name");
		//reg.list();
//		DaytimeServer dt =
//		  (DaytimeServer) reg.lookup(name);

		out.println( "Date: ");   
//		out.println( dt.getDate().toString() );   
	}catch( Exception e){
		out.println( e.getMessage() );
	}
	
	out.println( getInitParameter("cfgPath") );
	String ServletName = getClass().getName();
	String User = req.getRemoteUser();
	String pathInfo = req.getPathInfo();
	String pathTrans = req.getPathTranslated();
	String pathServ = req.getServletPath();
	String remuteAddr = req.getRemoteAddr();
	String realPath =getServletConfig().getServletContext().getRealPath("/") ;//( (javax.servlet.ServletRequest) res ).getRealPath();

	out.println("ServletName: "+ServletName+"\nUser: "+User+"\npatInfo: "+pathInfo+
		" \nTranslated: "+pathTrans+
		" \nServ: "+pathServ+" \nRealPath: "+realPath+" \nRemuteAddr: "+remuteAddr);

// LogPrinter

	String lpath = req.getParameter("path");	
	String fName = req.getParameter("fname");
	if ( fName == null ) fName = "log.txt";
	if ( lpath == null ) lpath = "";
	
	try{
		File path = new File( lpath );
	   	out.println("\nLogPrinter: Try create log file path: " + lpath +"!");
		path.mkdirs();
	}catch( Exception e ){
	   out.println("\nLogPrinter: Can't create log file path: " + lpath +"!");
	   out.println( e ); 
	}
	fName = lpath + fName;
	out.println("\nLogPrinter: Try create new log file: " + fName);
	
	try {
		File outputFile = new File( fName );
	   	RandomAccessFile out1 = new RandomAccessFile(outputFile, "rw");
	   	out1.seek( outputFile.length() );
		FileDescriptor fd = out1.getFD();
	   	
		PrintWriter prnW = new PrintWriter(new BufferedWriter(new FileWriter( fd )));
		prnW.close();
	} catch (Exception e) {
		out.println("\nLogPrinter: Can't create new log file: " + fName);
	    out.println( e ); 
	}		
	
	out.close();
}
}

