Add basic support for inspecting requests
This commit is contained in:
parent
da330a4e87
commit
3971b249d9
2 changed files with 30 additions and 3 deletions
|
@ -1,21 +1,43 @@
|
||||||
package com.spookyinternet.cobweb;
|
package com.spookyinternet.cobweb;
|
||||||
|
|
||||||
import java.net.*;
|
import java.net.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class CobwebServer {
|
public class CobwebServer {
|
||||||
private ServerSocket srv;
|
private ServerSocket srv;
|
||||||
|
private Map<String, List<HttpRoute>> glances;
|
||||||
|
private Map<String, List<HttpRoute>> routes;
|
||||||
|
|
||||||
public CobwebServer(int port, byte[] host) throws Exception {
|
public CobwebServer(int port, byte[] host) throws Exception {
|
||||||
this.srv = new ServerSocket(port, 64, InetAddress.getByAddress(host));
|
this.srv = new ServerSocket(port, 64, InetAddress.getByAddress(host));
|
||||||
|
this.glances = new HashMap<String, List<HttpRoute>>();
|
||||||
|
this.routes = new HashMap<String, List<HttpRoute>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void on(String get, String path, HttpRequestFunction fn) {
|
public void inspect(String method, String path, HttpInspectFunction fn) throws Exception {
|
||||||
|
String norm_method = method.toLowerCase();
|
||||||
|
|
||||||
|
if(this.glances.get(norm_method) == null) {
|
||||||
|
this.glances.put(norm_method, new ArrayList<HttpRoute>());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.glances.get(norm_method).add(new HttpRoute(path, fn));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void on(String method, String path, HttpRequestFunction fn) throws Exception {
|
||||||
|
String norm_method = method.toLowerCase();
|
||||||
|
|
||||||
|
if(this.routes.get(norm_method) == null) {
|
||||||
|
this.routes.put(norm_method, new ArrayList<HttpRoute>());
|
||||||
|
}
|
||||||
|
|
||||||
|
this.routes.get(norm_method).add(new HttpRoute(path, fn));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() throws Exception {
|
public void run() throws Exception {
|
||||||
while(true) {
|
while(true) {
|
||||||
Socket cli = this.srv.accept();
|
Socket cli = this.srv.accept();
|
||||||
new HttpThread(cli).start();
|
new HttpThread(cli, this.glances, this.routes).start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,17 @@ package com.spookyinternet.cobweb;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.*;
|
import java.net.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class HttpThread extends Thread {
|
public class HttpThread extends Thread {
|
||||||
private Socket sock;
|
private Socket sock;
|
||||||
|
private Map<String, List<HttpRoute>> glances;
|
||||||
|
private Map<String, List<HttpRoute>> routes;
|
||||||
|
|
||||||
public HttpThread(Socket sock) {
|
public HttpThread(Socket sock, Map<String, List<HttpRoute>> glances, Map<String, List<HttpRoute>> routes) {
|
||||||
this.sock = sock;
|
this.sock = sock;
|
||||||
|
this.glances = glances;
|
||||||
|
this.routes = routes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
Loading…
Reference in a new issue