diff --git a/README.md b/README.md
index 59a3dc95..79d73054 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,6 @@ In this document you can find the list of the available command line options, a
## Command line options
-
- **-a, --adapter**:
name of the network adapter to be inspected, if omitted the default adapter is chosen.
If a non-existing adapter is provided, the application raises an error and terminates.
@@ -122,7 +121,6 @@ If a string different from "TCP" or "UDP" is provided (not case-sensitive), the
This option must be followed by a textual value.
```default: "no filter"```
-
## User interactions during application execution
@@ -215,6 +213,11 @@ Specifically, the transport layer protocols field is based on an Enum with only
## Implementation details
+
+
+
+ See details
+
The application consists in three different execution flows.
The main thread waits for eventual [user actions](#user-interactions-during-application-execution) (by putting the terminal in raw mode through the ```crossterm::screen::raw::into_raw_mode()``` function and creating a ```crossterm::SyncReader``` which allows to read the input synchronously); in doing so it signals to the secondary threads when to pause or resume their work.
@@ -229,14 +232,16 @@ This thread waits for packets without consuming CPU resources through the ```pca
The thread in charge of updating the textual report sleeps for ```interval``` seconds and re-writes the report with updated traffic statistics.
Before updating the report it checks the application status: if it is ```Status::Pause``` it waits, otherwise it proceeds writing the report.
+
## Error conditions
-In this section are reported the errors that may occur while the application is running.
+
+
+ See details
### Wrong command line options specification
-
- **Not existing adapter name**:
if a non-existing adapter name is provided, the application raises an error and terminates.
In this case the application will suggest using the ```-d``` option to print on the standard output a list of the available devices.
@@ -342,6 +347,7 @@ All those exceptional scenarios are managed through calls to the ```expect()```
The ```unwrap()``` method is used only on ```Option``` values when it's certain they contain ```Some``` value.
+
# Authors
diff --git a/src/report_info.rs b/src/report_info.rs
index 6e3b6ee8..a154ae66 100644
--- a/src/report_info.rs
+++ b/src/report_info.rs
@@ -3,6 +3,7 @@
use std::collections::HashSet;
use std::fmt;
+use thousands::Separable;
/// Struct useful to format the output report file and to keep track of statistics about the sniffed traffic.
///
@@ -76,8 +77,8 @@ impl fmt::Display for ReportInfo {
\t\t\t\tProtocols\n\
\t\t\t\t\tTransport layer protocols: {}\n\
\t\t\t\t\tApplication layer protocols: {}\n\n",
- n, multiple_transmitted, self.transmitted_packets,
- m, multiple_received, self.received_packets,
+ n, multiple_transmitted, self.transmitted_packets.separate_with_underscores(),
+ m, multiple_received, self.received_packets.separate_with_underscores(),
self.initial_timestamp, self.final_timestamp,
transport_level_protocols, application_level_protocols
)