This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
1 package Interface;
2 import java.net.*;
3 import java.io.*;
4 import java.util.*;
5
6 public class HTTPServices{
7
8     static private String webRoot = ".";
9
10     static private FileInputStream get_reader(String fileName,HTTPResponse resp) throws IOException{
11 //          if(fileName.equals("/daytime")){
12 //              String date_str = (new Date()).toString();
13 //              resp.sentBytes = date_str.length();
14 //              return
15 //                  new StringReader(date_str);
16 //          }
17             
18             if(fileName.equals("/viewlog"))
19                 fileName = LogFile.log_file_name;
20             else
21                 fileName = webRoot + fileName;
22             
23             File f = new File(fileName);
24             resp.sentBytes = f.length();
25             return new FileInputStream(f);
26     }
27
28     public static void GET_handler(String fileName, OutputStream out, HTTPResponse resp){
29         
30         FileInputStream reader  = null;
31         byte buffer[];
32         int size;
33
34         if((reader = HEAD_handler_int(fileName,out,resp)) == null) return;
35
36         buffer = new byte[1024];
37
38         try{
39             while((size = reader.read(buffer,0,buffer.length)) != -1)
40                 out.write(buffer,0,size);
41             reader.close();
42         }
43         catch(IOException e){
44             e.printStackTrace();
45             resp.returnCode = 501; // error during transmision
46         }
47
48     }
49
50     public static void POST_handler(String fileName, OutputStream out, HTTPResponse resp){
51         GET_handler(fileName,out, resp);
52     }
53
54     static private FileInputStream HEAD_handler_int(String fileName,
55                                                     OutputStream out,HTTPResponse resp){
56         FileInputStream reader = null;
57
58         try{
59             reader = get_reader(fileName, resp);
60             resp.returnCode = 200;
61         }
62         catch(IOException e){
63             resp.returnCode = 404; // file not found
64         }
65
66         if(resp.returnCode == 200)
67             HTTPHeader.send_header(out, resp.returnCode, fileName, resp.sentBytes);
68         else{
69             HTTPHeader.send_header(out, resp.returnCode, fileName, 0);
70             return null;
71         }
72         
73         return reader;
74     }
75         
76
77     public static void HEAD_handler(String fileName, 
78                                    OutputStream out, HTTPResponse resp){
79         HEAD_handler_int(fileName,out,resp);
80     }
81 }
82