diff --git a/.gitignore b/.gitignore
index ea8c4bf..af3cdc9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,4 @@
/target
+
+# https://github.com/fasterthanlime/free-of-syn/blob/main/absolve.sh
+absolve.sh
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ac2cafa
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+[](https://github.com/fasterthanlime/free-of-syn)
+
+**skim**
+skim records the sizes of packets passing through an interface so you
+can monitor network usage. it sorts this information by transport type,
+tcp/udp, and port number.
+
+skim exposes an interface for retrieving statistics on tcp port 6666.
+first send a u32, big endian, and then json data with the ports you
+want. the json should look like this:
+`{ "tcp": [80, 443], "udp": [53] }`
+
+you'll get a response back in a similar format. the first four bytes
+will be the length of the response, big endian, and then the json data.
+the data'll look like this:
+```json
+{
+ "tcp":[{"port":80,"tx":0,"rx":0},{"port":443,"tx":56260,"rx":4195}],
+ "udp":[{"port":53,"tx":210,"rx":173}]
+}
+```
+
+skim records network traffic assuming the host system is acting as a server.
\ No newline at end of file
diff --git a/skim-cli/src/main.rs b/skim-cli/src/main.rs
index 880b99f..af2bbd5 100644
--- a/skim-cli/src/main.rs
+++ b/skim-cli/src/main.rs
@@ -6,7 +6,7 @@ use std::{
fn main() {
let mut tcp = TcpStream::connect("127.0.0.1:6666").unwrap();
- let query = r#"{"tcp": [80, 443], "udp":[443]}"#;
+ let query = r#"{"tcp": [80, 443], "udp":[53]}"#;
let len = query.len() as u32;
tcp.write_all(&len.to_be_bytes()).unwrap();
diff --git a/skim/src/main.rs b/skim/src/main.rs
index 4a82106..73bc15e 100644
--- a/skim/src/main.rs
+++ b/skim/src/main.rs
@@ -1,4 +1,4 @@
-use std::{cell::UnsafeCell, error::Error, net::Ipv4Addr, rc::Rc, thread::JoinHandle};
+use std::{error::Error, net::Ipv4Addr, rc::Rc, thread::JoinHandle};
use count::Count;
use ethertype::EtherType;
@@ -195,7 +195,7 @@ fn stat(rx: Receiver<Meow>) {
let udp_rx = per_spawn_cat.udp_rx_slice();
udp_ports.into_iter().for_each(|p| {
- resp.tcp.push(PortNetworkPair {
+ resp.udp.push(PortNetworkPair {
port: p,
tx: udp_tx[p as usize],
rx: udp_rx[p as usize],
|