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