Implement static distinction for scanners
This commit is contained in:
@ -28,14 +28,28 @@ type HmacSha256 = Hmac<Sha256>;
|
|||||||
enum Scanners {
|
enum Scanners {
|
||||||
Stretchoid,
|
Stretchoid,
|
||||||
Binaryedge,
|
Binaryedge,
|
||||||
|
Censys,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trait IsStatic {
|
||||||
|
fn is_static(self: &Self) -> bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl IsStatic for Scanners {
|
||||||
|
fn is_static(self: &Self) -> bool {
|
||||||
|
match self {
|
||||||
|
Scanners::Censys => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
impl FromStr for Scanners {
|
impl FromStr for Scanners {
|
||||||
type Err = ();
|
type Err = ();
|
||||||
fn from_str(input: &str) -> Result<Scanners, ()> {
|
fn from_str(input: &str) -> Result<Scanners, ()> {
|
||||||
match input {
|
match input {
|
||||||
"stretchoid" => Ok(Scanners::Stretchoid),
|
"stretchoid" => Ok(Scanners::Stretchoid),
|
||||||
"binaryedge" => Ok(Scanners::Binaryedge),
|
"binaryedge" => Ok(Scanners::Binaryedge),
|
||||||
|
"censys" => Ok(Scanners::Censys),
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -49,6 +63,7 @@ impl fmt::Display for Scanners {
|
|||||||
match self {
|
match self {
|
||||||
Self::Stretchoid => "stretchoid",
|
Self::Stretchoid => "stretchoid",
|
||||||
Self::Binaryedge => "binaryedge",
|
Self::Binaryedge => "binaryedge",
|
||||||
|
Self::Censys => "censys",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -59,6 +74,7 @@ impl ToSql for Scanners {
|
|||||||
match self {
|
match self {
|
||||||
Self::Stretchoid => Ok("stretchoid".into()),
|
Self::Stretchoid => Ok("stretchoid".into()),
|
||||||
Self::Binaryedge => Ok("binaryedge".into()),
|
Self::Binaryedge => Ok("binaryedge".into()),
|
||||||
|
Self::Censys => Ok("censys".into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -299,6 +315,7 @@ fn handle_report(conn: &Mutex<Connection>, request: &Request) -> Response {
|
|||||||
"Reported a stretchoid agent! <b>{}</a> known as {:?}.",
|
"Reported a stretchoid agent! <b>{}</a> known as {:?}.",
|
||||||
scanner.ip, scanner.ip_ptr
|
scanner.ip, scanner.ip_ptr
|
||||||
),
|
),
|
||||||
|
Scanners::Censys => format!("Not supported"),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
Err(ptr_result) => rouille::Response::html(format!(
|
Err(ptr_result) => rouille::Response::html(format!(
|
||||||
@ -313,6 +330,7 @@ fn handle_report(conn: &Mutex<Connection>, request: &Request) -> Response {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn handle_list_scanners(conn: &Mutex<Connection>, scanner_name: Scanners) -> Response {
|
fn handle_list_scanners(conn: &Mutex<Connection>, scanner_name: Scanners) -> Response {
|
||||||
|
scanner_name.is_static();
|
||||||
let db = conn.lock().unwrap();
|
let db = conn.lock().unwrap();
|
||||||
let mut stmt = db.prepare("SELECT ip FROM scanners WHERE scanner_name = :scanner_name ORDER BY ip_type, created_at").unwrap();
|
let mut stmt = db.prepare("SELECT ip FROM scanners WHERE scanner_name = :scanner_name ORDER BY ip_type, created_at").unwrap();
|
||||||
let mut rows = stmt
|
let mut rows = stmt
|
||||||
|
Reference in New Issue
Block a user