node: Implement IP-based banning
The previous banning implementation didn’t work, since it included port numbers in the address value.
Here, we keep a separate table with (node, ip) pairs and update this table when a node connects or is banned.
8 files changed
+129
-34
72c71501
→
a6cb4d0f
modified radicle-node/src/service.rs
@@ -11,6 +11,7 @@ pub mod session;
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -1161,25 +1162,25 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1211,7 +1212,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1230,6 +1231,17 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle-node/src/wire/protocol.rs
@@ -514,26 +514,31 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -541,8 +546,15 @@ where
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle/src/node.rs
@@ -414,15 +414,6 @@ impl Address {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
modified radicle/src/node/address/store.rs
@@ -1,3 +1,4 @@
| + | |
|
|
|
|
|
@@ -65,13 +66,17 @@ pub trait Store {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -112,12 +117,12 @@ impl Store for Database {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -133,6 +138,17 @@ impl Store for Database {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -325,10 +341,26 @@ impl Store for Database {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -348,7 +380,11 @@ impl Store for Database {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -438,6 +474,7 @@ mod test {
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -725,8 +762,18 @@ mod test {
|
|
|
|
|
|
| + | |
| + | |
|
|
| + | |
| + | |
| + | |
| + | |
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -740,6 +787,9 @@ mod test {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -758,9 +808,15 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
modified radicle/src/node/config.rs
@@ -7,7 +7,7 @@ use localtime::LocalDuration;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -359,6 +359,15 @@ impl Config {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified radicle/src/node/db.rs
@@ -28,6 +28,7 @@ const MIGRATIONS: &[&str] = &[
|
|
|
|
|
|
| + | |
|
|
|
|
|
added radicle/src/node/db/migrations/4.sql
@@ -0,0 +1,14 @@
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
modified radicle/src/node/db/schema.sql
@@ -15,13 +15,13 @@ create table if not exists "nodes" (
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|