Arnout Engelen
0fe341eeba
Merge pull request #275 from lleon95/main
...
Add meson buildsystem
2024-05-23 16:05:34 +02:00
Luis Leon
ce9dd7c7c3
Add meson buildsystem
2024-05-23 15:29:22 +02:00
Arnout Engelen
e6afe4e2ff
Merge pull request #269 from AndreasGocht/add_udp
...
allow the library to enable UDP recording
2024-01-08 23:00:47 +01:00
Andreas Gocht-Zech
52dbb174d8
allow the library to enable UDP recording
2024-01-08 22:19:27 +01:00
Arnout Engelen
89c195104f
Merge pull request #267 from AndreasGocht/fix_adding_devices
...
Fix nethogsmonitor_loop_devices_py to accept more than one device
2023-12-23 10:55:51 +01:00
Andreas Gocht-Zech
8958ef0b3e
Fix nethogsmonitor_loop_devices_py to accept more than one device
...
Without the ref only the last element of __devicenames is stored in
_devicenames: The temporary is deleted at the end of the for body,
therefore the pointer to the c_str is no longer valid and might be
reused by the implementation. By using a reference in the for head
the c_str does not return a ref to the temporary but to the original
array wich's lifetime is till the end of the function.
2023-12-22 18:42:02 +01:00
Arnout Engelen
eed54a0543
Merge pull request #264 from AndreasGocht/report_pcap_stas
...
Report pcap stas
2023-10-02 16:30:14 +02:00
Andreas Gocht-Zech
bdbb504569
Merge branch 'raboof:main' into report_pcap_stas
2023-09-29 22:55:59 +02:00
Michal Suchanek
08524d2740
Clarify units
...
On the internet the usage of b and B for bits or bytes is inconsistent.
Lowercase b seems to be used for either, and upperace B is more often
used to mean bytes but usege for bits also exists.
I am not aware of any standard that would mandate one or other use.
Consequently, spelling out the whole word in the output or adding
explanation in documentation is the only way to make sure the output is
interpreted correctly.
To save space on small screens only alter documentation and the bytes
label without prefixes/suffixes.
While at it change uppercase K to lowercase k to correctly spell the
kilo- prefix.
Fixes : #261
Signed-off-by: Michal Suchanek <msuchanek@suse.de >
2023-09-29 22:54:31 +02:00
Andreas Gocht-Zech
b9abb65df0
add pcap packet stats
2023-09-29 22:54:31 +02:00
Andreas Gocht-Zech
5375587282
move C-style-list to std::list
2023-09-29 22:53:59 +02:00
Arnout Engelen
cd55fef395
Merge pull request #263 from AndreasGocht/report_changes
...
fix an copy-and-paste error in the bindings
2023-09-06 00:10:39 +02:00
Andreas Gocht-Zech
059390b145
fix an error in the bindings
2023-09-05 23:07:42 +02:00
Arnout Engelen
dc44edb9b1
Merge pull request #262 from hramrach/main
...
Clarify units
2023-08-28 14:21:10 +02:00
Michal Suchanek
e40699fba4
Clarify units
...
On the internet the usage of b and B for bits or bytes is inconsistent.
Lowercase b seems to be used for either, and upperace B is more often
used to mean bytes but usege for bits also exists.
I am not aware of any standard that would mandate one or other use.
Consequently, spelling out the whole word in the output or adding
explanation in documentation is the only way to make sure the output is
interpreted correctly.
To save space on small screens only alter documentation and the bytes
label without prefixes/suffixes.
While at it change uppercase K to lowercase k to correctly spell the
kilo- prefix.
Fixes : #261
Signed-off-by: Michal Suchanek <msuchanek@suse.de >
2023-08-28 13:07:17 +02:00
Arnout Engelen
eafc6e7ebc
Merge pull request #260 from AndreasGocht/report_changes
...
Report only changes of send and received data
2023-08-22 10:03:56 +02:00
Andreas Gocht-Zech
a11eb726bf
Merge branch 'raboof:main' into report_changes
2023-08-21 21:41:32 +02:00
Andreas Gocht-Zech
9d8c92356c
fix
2023-08-20 22:28:43 +02:00
Andreas Gocht-Zech
668ae29c0a
add reporting of changes since last request
2023-08-20 22:07:43 +02:00
Arnout Engelen
1c06371dcd
Merge pull request #258 from AndreasGocht/main
...
fix python bindings
2023-07-13 22:13:41 +02:00
Andreas Gocht-Zech
b581af6990
fix python bindings
2023-07-12 20:46:59 +02:00
Arnout Engelen
f281ca30d1
Merge pull request #255 from DiedByDisgust/main
...
fix get_devlen function from being pointless
2023-04-23 11:09:55 +02:00
DiedByDisgust
bf44e39240
fix get_devlen function from being pointless
2023-04-22 18:02:44 -04:00
Arnout Engelen
24973112ba
Merge pull request #251 from sgtcortez/main
...
Fix wrong extern declaration of pidsToWatch
2023-03-22 14:22:39 +01:00
Matheus Rambo
c55a10bf26
fix: Wrong definition of "pidsToWatch" #230
2023-03-22 10:00:52 -03:00
Arnout Engelen
8f43d02d8c
Merge pull request #250 from orhun/docs/update_readme
...
Add Arch Linux instructions to README.md
2023-02-25 12:09:25 +01:00
Orhun Parmaksız
6763ff9aa2
Add Arch Linux instructions to README.md
2023-02-25 00:24:55 +03:00
Arnout Engelen
d30c5226a0
Format source code
...
It appears we have failed to run `make format` in the last few
commits. Doing it now. We should really add it to CI
2023-01-09 12:39:07 +01:00
Arnout Engelen
80df0044ec
Merge pull request #242 from a1346054/fixes
...
Use `s` instead of `sec` for units of seconds
2022-10-17 09:00:13 +02:00
a1346054
56c9348372
Trim trailing whitespace
2022-10-13 00:05:35 +00:00
a1346054
22c43c5523
Fix typo
2022-10-13 00:05:35 +00:00
a1346054
aefa6cf194
Use s instead of sec for units of seconds
2022-10-12 23:55:29 +00:00
Arnout Engelen
0dcba3c81f
Merge pull request #236 from NeilZhy/app-std-c++14
...
Add -std=c++14 for application build
2022-07-25 12:33:00 +02:00
yingzhang
4c30af3b9c
Add -std=c++14 for application build
2022-07-25 18:27:19 +08:00
Arnout Engelen
93604685f4
Merge pull request #234 from qouoq/main
...
Additional useful capabilities
2022-07-11 09:11:58 +02:00
Elie Huvier
a9258d10f4
Additional capabilities required
...
Specify additional capabilities in main.cpp (error message and comment),
and in man page.
2022-07-10 05:26:51 +08:00
Arnout Engelen
90fb48d109
Merge pull request #233 from qouoq/main
...
Capabilities for reading process names
2022-07-07 08:48:28 +02:00
qouoq
a2b7881dbe
Capabilities for reading process names
...
Adding cap_dac_read_search and cap_sys_ptrace to the setcap command, which allows non-root nethogs to display process names.
See https://stackoverflow.com/questions/41631927/read-proc-pid-fd-fd-without-full-root-access/47982314 and raboof/nethogs#142
2022-07-07 06:35:06 +08:00
Arnout Engelen
8a468d829c
Merge pull request #231 from zevweiss/hide-cursor
...
Hide cursor during initialization and restore at exit
2022-06-21 11:56:41 +02:00
Zev Weiss
79ccaf8e97
Hide cursor during initialization and restore at exit
...
Showing the cursor while running (especially on terminals where it
blinks) is a bit visually distracting, and doesn't serve much purpose;
make it invisible in init_ui() and restore the original state in
exit_ui().
2022-06-21 02:37:17 -07:00
Arnout Engelen
517978bc40
Merge pull request #228 from msbit/app-std-c++14
...
Add `-std=c++14` for application build
2022-06-16 09:40:52 +02:00
Tom Sullivan
7efef02370
Add -std=c++14 for application build
...
To address:
https://github.com/raboof/nethogs/issues/225
add the `-std=c++14` flag when building the application.
This then compiles properly with the Apple version of the Clang
compiler:
Apple clang version 11.0.0 (clang-1100.0.33.17)
Additionally, this removed some warning noise regarding C++11
extensions used without the appropriate `-std=c++11` (or greater)
flag:
./process.h:38:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
connection.cpp:107:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
connection.cpp:108:8: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
connection.cpp:162:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
connection.cpp:187:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
2022-06-16 13:49:16 +10:00
Arnout Engelen
918642f98c
Merge pull request #224 from molysgaard/python-compile-fixes-ubuntu-20-04
...
Fix that on ubuntu 20.04, the current version of the code does not compile as a python package
2022-04-25 10:27:41 +02:00
Morten Olsen Lysgaard
2f651410c3
Fix that on ubuntu 20.04, the current version of the code does not compile as a python package
...
Steps to reproduce:
```
# install required packages
apt-get install build-essential libncurses5-dev libpcap-dev pybind11-dev
# create working directory
mkdir nethogs-py
cd nethogs-py
# create virtualenv
virtualenv -p python3 venv
# activate virtualenv
source venv/bin/activate
# create requirements.txt file for pip
echo "git+https://github.com/raboof/nethogs.git " > requirements.txt
# build nethogs using pip
pip install -r requirements.txt
```
The last step gives the following compile error on my Ubuntu 20.04
machine:
```
Processing ./nethogs
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: nethogs
Building wheel for nethogs (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /home/lysgaard/work/nethogs-py/venv/bin/python /tmp/tmpbzq5d0ej build_wheel /tmp/tmpxbnq_o9a
cwd: /tmp/pip-req-build-uxzyh5t6
Complete output (50 lines):
running bdist_wheel
running build
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/lysgaard/work/nethogs-py/venv/include -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nethogs' extension
creating build
creating build/temp.linux-x86_64-cpython-38
creating build/temp.linux-x86_64-cpython-38/python
creating build/temp.linux-x86_64-cpython-38/src
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -Isrc/ -I/tmp/pip-build-env-kvg6xf6h/overlay/lib/python3.8/site-packages/pybind11/include -I/home/lysgaard/work/nethogs-py/venv/include -I/usr/include/python3.8 -c python/bindings.cpp -o build/temp.linux-x86_64-cpython-38/python/bindings.o -std=c++17 -fvisibility=hidden -g0 -Wall -Wextra -Wno-missing-field-initializers --std=c++0x -O3 -fPIC -DVERSION=\"0.8.7\"
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -Isrc/ -I/tmp/pip-build-env-kvg6xf6h/overlay/lib/python3.8/site-packages/pybind11/include -I/home/lysgaard/work/nethogs-py/venv/include -I/usr/include/python3.8 -c src/connection.cpp -o build/temp.linux-x86_64-cpython-38/src/connection.o -std=c++17 -fvisibility=hidden -g0 -Wall -Wextra -Wno-missing-field-initializers --std=c++0x -O3 -fPIC -DVERSION=\"0.8.7\"
src/connection.cpp: In function ‘Connection* findConnectionWithMatchingSource(Packet*, short int)’:
src/connection.cpp:162:37: error: no matching function for call to ‘std::multiset<Connection*, ConnectionComparator>::lower_bound(Packet*)’
162 | auto it = connList->lower_bound(&p);
| ^
In file included from /usr/include/c++/9/set:62,
from src/process.h:29,
from src/connection.cpp:34:
/usr/include/c++/9/bits/stl_multiset.h:810:7: note: candidate: ‘std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = Connection*; _Compare = ConnectionComparator; _Alloc = std::allocator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::key_type = Connection*]’
810 | lower_bound(const key_type& __x)
| ^~~~~~~~~~~
/usr/include/c++/9/bits/stl_multiset.h:810:35: note: no known conversion for argument 1 from ‘Packet*’ to ‘Connection* const&’
810 | lower_bound(const key_type& __x)
| ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_multiset.h:814:7: note: candidate: ‘std::multiset<_Key, _Compare, _Alloc>::const_iterator std::multiset<_Key, _Compare, _Alloc>::lower_bound(const key_type&) const [with _Key = Connection*; _Compare = ConnectionComparator; _Alloc = std::allocator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::key_type = Connection*]’
814 | lower_bound(const key_type& __x) const
| ^~~~~~~~~~~
/usr/include/c++/9/bits/stl_multiset.h:814:35: note: no known conversion for argument 1 from ‘Packet*’ to ‘Connection* const&’
814 | lower_bound(const key_type& __x) const
| ~~~~~~~~~~~~~~~~^~~
src/connection.cpp: In function ‘Connection* findConnectionWithMatchingRefpacketOrSource(Packet*, short int)’:
src/connection.cpp:187:41: error: no matching function for call to ‘std::multiset<Connection*, ConnectionComparator>::lower_bound(Packet*&)’
187 | auto it = connList->lower_bound(packet);
| ^
In file included from /usr/include/c++/9/set:62,
from src/process.h:29,
from src/connection.cpp:34:
/usr/include/c++/9/bits/stl_multiset.h:810:7: note: candidate: ‘std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::lower_bound(const key_type&) [with _Key = Connection*; _Compare = ConnectionComparator; _Alloc = std::allocator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::key_type = Connection*]’
810 | lower_bound(const key_type& __x)
| ^~~~~~~~~~~
/usr/include/c++/9/bits/stl_multiset.h:810:35: note: no known conversion for argument 1 from ‘Packet*’ to ‘Connection* const&’
810 | lower_bound(const key_type& __x)
| ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_multiset.h:814:7: note: candidate: ‘std::multiset<_Key, _Compare, _Alloc>::const_iterator std::multiset<_Key, _Compare, _Alloc>::lower_bound(const key_type&) const [with _Key = Connection*; _Compare = ConnectionComparator; _Alloc = std::allocator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<Connection*>; std::multiset<_Key, _Compare, _Alloc>::key_type = Connection*]’
814 | lower_bound(const key_type& __x) const
| ^~~~~~~~~~~
/usr/include/c++/9/bits/stl_multiset.h:814:35: note: no known conversion for argument 1 from ‘Packet*’ to ‘Connection* const&’
814 | lower_bound(const key_type& __x) const
| ~~~~~~~~~~~~~~~~^~~
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
----------------------------------------
ERROR: Failed building wheel for nethogs
Failed to build nethogs
ERROR: Could not build wheels for nethogs which use PEP 517 and cannot be installed directly
```
I have tracked this down to that the `setup.py` file uses the wrong
C++-standard-flag.
This is corrected in this commit.
I have also reduced the optimization level from 3 to 2.
The rationale is that optimization level 3 contains
optimazitions that potentially change the behaviour of code, eg.
floating point behaviour. General convention is that optimization level
2 is more than sufficient unless you are working with extremely tight
budget, eg linear algebra kernels or similar. If optimization level 3
is still wanted, I can revert this.
2022-04-25 10:19:57 +02:00
Arnout Engelen
ea161b0509
Merge pull request #223 from CyberShadow/pull-20220323-015738
...
Improve performance with many connections
2022-04-04 16:27:44 +02:00
Vladimir Panteleev
92fb73116a
Replace ConnList linked list with multiset
...
Keeping a sorted multi-set allows faster search by source /
source+destination address.
Fixes O(n^2) complexity when handling a lot of connections (now it's
O(n log n)).
2022-03-23 17:28:09 +00:00
Vladimir Panteleev
f46954525d
packet: Fix matchSource not checking address family
2022-03-23 01:57:45 +00:00
Arnout Engelen
a663b3a157
Merge pull request #222 from AuraVisionLabs/main
...
Add python bindings
2022-03-17 14:15:18 +01:00
Jaime Lomeli
f4f85997b1
add include dirs
2022-03-17 13:11:41 +00:00
Jaime Lomeli-R
6be888892e
Update README.md
2022-03-17 13:09:18 +00:00