import java.io.*;
import java.net.URL;
+import java.net.SocketAddress;
import java.util.Map;
public interface Request {
/* Misc. */
public Map<?, ?> props();
public ServerContext ctx();
+ public SocketAddress remoteaddr();
+ public SocketAddress localaddr();
}
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);
}
out.println("Bardslen.");
out.println(req.inheaders());
out.println(req.ctx().starttime());
+ out.println(req.remoteaddr() + "<->" + req.localaddr());
out.println("</body>");
out.println("</html>");
out.flush();