Actually set the HTTP status code...
[jsvc.git] / src / dolda / jsvc / j2ee / J2eeRequest.java
index a5e7518..685eeeb 100644 (file)
@@ -20,12 +20,6 @@ public class J2eeRequest extends ResponseBuffer {
        this.cfg = cfg;
        this.req = req;
        this.resp = resp;
-       try {
-           req.setCharacterEncoding("UTF-8");
-           resp.setCharacterEncoding("UTF-8");
-       } catch(UnsupportedEncodingException e) {
-           throw(new AssertionError(e));
-       }
        {
            String host = req.getHeader("Host");
            if((host == null) || (host.length() < 1))
@@ -54,6 +48,30 @@ public class J2eeRequest extends ResponseBuffer {
        return(props);
     }
     
+    public ServerContext ctx() {
+       return(new J2eeContext(cfg, req, resp));
+    }
+    
+    public SocketAddress remoteaddr() {
+       try {
+           return(new InetSocketAddress(InetAddress.getByName(req.getRemoteAddr()), req.getRemotePort()));
+       } catch(UnknownHostException e) {
+           /* req.getRemoteAddr should always be a valid IP address,
+            * so this should never happen. */
+           throw(new Error(e));
+       }
+    }
+    
+    public SocketAddress localaddr() {
+       try {
+           return(new InetSocketAddress(InetAddress.getByName(req.getLocalAddr()), req.getLocalPort()));
+       } catch(UnknownHostException e) {
+           /* req.getRemoteAddr should always be a valid IP address,
+            * so this should never happen. */
+           throw(new Error(e));
+       }
+    }
+    
     public URL url() {
        return(url);
     }
@@ -100,6 +118,7 @@ public class J2eeRequest extends ResponseBuffer {
     }
     
     protected void backflush() {
+       resp.setStatus(respcode);
        for(String key : outheaders().keySet()) {
            boolean first = true;
            for(String val : outheaders().values(key)) {