mirror of
https://github.com/GyulyVGC/sniffnet.git
synced 2025-12-23 22:29:01 -05:00
second commit
This commit is contained in:
1
packet_sniffer/.idea/vcs.xml
generated
1
packet_sniffer/.idea/vcs.xml
generated
@@ -2,5 +2,6 @@
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
32
packet_sniffer/src/address_port.rs
Normal file
32
packet_sniffer/src/address_port.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
use std::cmp::Ordering;
|
||||
|
||||
pub struct AddressPortPair {
|
||||
address1: String,
|
||||
port1: u16,
|
||||
address2: String,
|
||||
port2: u16,
|
||||
}
|
||||
|
||||
impl AddressPortPair {
|
||||
|
||||
pub fn new (address1: String, port1: u16, address2: String, port2: u16) -> Self {
|
||||
if address1.cmp(&address2) == Ordering::Less {
|
||||
AddressPortPair {
|
||||
address1,
|
||||
port1,
|
||||
address2,
|
||||
port2
|
||||
}
|
||||
}
|
||||
else {
|
||||
AddressPortPair {
|
||||
address1: address2,
|
||||
port1: port2,
|
||||
address2: address1,
|
||||
port2: port1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
use etherparse::PacketHeaders;
|
||||
mod address_port;
|
||||
mod report_info;
|
||||
|
||||
use std::borrow::BorrowMut;
|
||||
use etherparse::{IpHeader, PacketHeaders, TransportHeader};
|
||||
use pcap::{Device, Capture};
|
||||
|
||||
fn main() {
|
||||
@@ -6,21 +10,73 @@ fn main() {
|
||||
let device = Device::lookup().unwrap();
|
||||
println!("{:?}", device);
|
||||
|
||||
println!("Waiting for packets........");
|
||||
|
||||
let mut cap = Capture::from_device(device).unwrap()
|
||||
.promisc(true)
|
||||
.snaplen(5000)
|
||||
.open().unwrap();
|
||||
|
||||
while let Ok(packet) = cap.next() {
|
||||
match PacketHeaders::from_ethernet_slice(&packet) {
|
||||
Err(value) => println!("Err {:?}", value),
|
||||
Ok(value) => {
|
||||
|
||||
let mut address1 = String::new();
|
||||
let mut address2 = String::new();
|
||||
let mut port1= 0;
|
||||
let mut port2= 0;
|
||||
let mut transmitted_bytes;
|
||||
|
||||
match value.ip.unwrap() {
|
||||
IpHeader::Version4(ipv4header, _) => {
|
||||
address1 = format!("{:?}", ipv4header.source)
|
||||
.replace("[","")
|
||||
.replace("]","")
|
||||
.replace(",",".")
|
||||
.replace(" ","");
|
||||
address2 = format!("{:?}", ipv4header.destination)
|
||||
.replace("[","")
|
||||
.replace("]","")
|
||||
.replace(",",".")
|
||||
.replace(" ","");
|
||||
transmitted_bytes = ipv4header.payload_len;
|
||||
}
|
||||
IpHeader::Version6(ipv6header, _) => {
|
||||
address1 = format!("{:?}", ipv6header.source)
|
||||
.replace("[","")
|
||||
.replace("]","")
|
||||
.replace(",",".")
|
||||
.replace(" ","");
|
||||
address2 = format!("{:?}", ipv6header.destination)
|
||||
.replace("[","")
|
||||
.replace("]","")
|
||||
.replace(",",".")
|
||||
.replace(" ","");
|
||||
transmitted_bytes = ipv6header.payload_length;
|
||||
}
|
||||
}
|
||||
|
||||
match value.transport.unwrap() {
|
||||
TransportHeader::Udp(udpheader) => {
|
||||
port1 = udpheader.source_port;
|
||||
port2 = udpheader.destination_port
|
||||
}
|
||||
TransportHeader::Tcp(tcpheader) => {
|
||||
port1 = tcpheader.source_port;
|
||||
port2 = tcpheader.destination_port
|
||||
}
|
||||
TransportHeader::Icmpv4(_) => {}
|
||||
TransportHeader::Icmpv6(_) => {}
|
||||
}
|
||||
|
||||
println!("----------------------------------");
|
||||
println!("link: {:?}", value.link);
|
||||
println!("ip: {:?}", value.ip);
|
||||
println!("transport: {:?}", value.transport);
|
||||
println!("addresses: {:?} {:?}", address1, address2);
|
||||
println!("ports: {:?} {:?}", port1, port2);
|
||||
println!("ip payload length: {:?}", transmitted_bytes);
|
||||
println!("----------------------------------");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
17
packet_sniffer/src/report_info.rs
Normal file
17
packet_sniffer/src/report_info.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
pub struct ReportInfo {
|
||||
transmitted_bytes: u16,
|
||||
initial_timestamp: String,
|
||||
final_timestamp: String,
|
||||
}
|
||||
|
||||
impl ReportInfo {
|
||||
|
||||
pub fn new (address: String, port: String) -> Self {
|
||||
ReportInfo {
|
||||
transmitted_bytes: 0,
|
||||
initial_timestamp: "".to_string(),
|
||||
final_timestamp: "".to_string()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
{"message":"unused import: `std::borrow::BorrowMut`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":40,"byte_end":62,"line_start":4,"line_end":4,"column_start":5,"column_end":27,"is_primary":true,"text":[{"text":"use std::borrow::BorrowMut;","highlight_start":5,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":36,"byte_end":63,"line_start":4,"line_end":4,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"use std::borrow::BorrowMut;","highlight_start":1,"highlight_end":28}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `std::borrow::BorrowMut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:4:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0muse std::borrow::BorrowMut;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"value assigned to `address1` is never read","code":{"code":"unused_assignments","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":625,"byte_end":633,"line_start":25,"line_end":25,"column_start":25,"column_end":33,"is_primary":true,"text":[{"text":" let mut address1 = String::new();","highlight_start":25,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_assignments)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"maybe it is overwritten before being read?","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: value assigned to `address1` is never read\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:25:25\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m25\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m let mut address1 = String::new();\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_assignments)]` on by default\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mhelp\u001b[0m\u001b[0m: maybe it is overwritten before being read?\u001b[0m\n\n"}
|
||||
{"message":"value assigned to `address2` is never read","code":{"code":"unused_assignments","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":675,"byte_end":683,"line_start":26,"line_end":26,"column_start":25,"column_end":33,"is_primary":true,"text":[{"text":" let mut address2 = String::new();","highlight_start":25,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"maybe it is overwritten before being read?","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: value assigned to `address2` is never read\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:26:25\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m26\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m let mut address2 = String::new();\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mhelp\u001b[0m\u001b[0m: maybe it is overwritten before being read?\u001b[0m\n\n"}
|
||||
{"message":"unused variable: `address`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/report_info.rs","byte_start":150,"byte_end":157,"line_start":9,"line_end":9,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":" pub fn new (address: String, port: String) -> Self {","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/report_info.rs","byte_start":150,"byte_end":157,"line_start":9,"line_end":9,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":" pub fn new (address: String, port: String) -> Self {","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"_address","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `address`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/report_info.rs:9:17\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m9\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m pub fn new (address: String, port: String) -> Self {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_address`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"unused variable: `port`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/report_info.rs","byte_start":167,"byte_end":171,"line_start":9,"line_end":9,"column_start":34,"column_end":38,"is_primary":true,"text":[{"text":" pub fn new (address: String, port: String) -> Self {","highlight_start":34,"highlight_end":38}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/report_info.rs","byte_start":167,"byte_end":171,"line_start":9,"line_end":9,"column_start":34,"column_end":38,"is_primary":true,"text":[{"text":" pub fn new (address: String, port: String) -> Self {","highlight_start":34,"highlight_end":38}],"label":null,"suggested_replacement":"_port","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `port`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/report_info.rs:9:34\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m9\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m pub fn new (address: String, port: String) -> Self {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_port`\u001b[0m\n\n"}
|
||||
{"message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":789,"byte_end":810,"line_start":29,"line_end":29,"column_start":21,"column_end":42,"is_primary":true,"text":[{"text":" let mut transmitted_bytes;","highlight_start":21,"highlight_end":42}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_mut)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":789,"byte_end":793,"line_start":29,"line_end":29,"column_start":21,"column_end":25,"is_primary":true,"text":[{"text":" let mut transmitted_bytes;","highlight_start":21,"highlight_end":25}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:29:21\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m let mut transmitted_bytes;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"struct is never constructed: `AddressPortPair`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/address_port.rs","byte_start":36,"byte_end":51,"line_start":3,"line_end":3,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"pub struct AddressPortPair {","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: struct is never constructed: `AddressPortPair`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/address_port.rs:3:12\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0mpub struct AddressPortPair {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"associated function is never used: `new`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/address_port.rs","byte_start":168,"byte_end":171,"line_start":12,"line_end":12,"column_start":12,"column_end":15,"is_primary":true,"text":[{"text":" pub fn new (address1: String, port1: u16, address2: String, port2: u16) -> Self {","highlight_start":12,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: associated function is never used: `new`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/address_port.rs:12:12\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m12\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m pub fn new (address1: String, port1: u16, address2: String, port2: u16) -> Self {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\n\n"}
|
||||
{"message":"struct is never constructed: `ReportInfo`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/report_info.rs","byte_start":11,"byte_end":21,"line_start":1,"line_end":1,"column_start":12,"column_end":22,"is_primary":true,"text":[{"text":"pub struct ReportInfo {","highlight_start":12,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: struct is never constructed: `ReportInfo`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/report_info.rs:1:12\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0mpub struct ReportInfo {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n"}
|
||||
{"message":"associated function is never used: `new`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/report_info.rs","byte_start":145,"byte_end":148,"line_start":9,"line_end":9,"column_start":12,"column_end":15,"is_primary":true,"text":[{"text":" pub fn new (address: String, port: String) -> Self {","highlight_start":12,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: associated function is never used: `new`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/report_info.rs:9:12\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m9\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m pub fn new (address: String, port: String) -> Self {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\n\n"}
|
||||
{"message":"10 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 10 warnings emitted\u001b[0m\n\n"}
|
||||
Binary file not shown.
@@ -1,5 +1,7 @@
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/packet_sniffer/target/debug/deps/packet_sniffer-4d7d909a1ca1c410: src/main.rs
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/target/debug/deps/packet_sniffer-4d7d909a1ca1c410: src/main.rs src/address_port.rs src/report_info.rs
|
||||
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/packet_sniffer/target/debug/deps/packet_sniffer-4d7d909a1ca1c410.d: src/main.rs
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/target/debug/deps/packet_sniffer-4d7d909a1ca1c410.d: src/main.rs src/address_port.rs src/report_info.rs
|
||||
|
||||
src/main.rs:
|
||||
src/address_port.rs:
|
||||
src/report_info.rs:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/packet_sniffer/target/debug/packet_sniffer: /Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/packet_sniffer/src/main.rs
|
||||
/Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/target/debug/packet_sniffer: /Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/src/address_port.rs /Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/src/main.rs /Users/giulianobellini/Desktop/PoliTO/Courses/PDS/project/pdsproject/packet_sniffer/src/report_info.rs
|
||||
|
||||
BIN
pds_progetti_2022.pdf
Normal file
BIN
pds_progetti_2022.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user