eping 4.6__tar.gz → 4.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {eping-4.6 → eping-4.8}/PKG-INFO +3 -3
- {eping-4.6 → eping-4.8}/README.md +2 -2
- {eping-4.6 → eping-4.8}/pyproject.toml +1 -1
- {eping-4.6 → eping-4.8}/src/eping/eping.py +15 -2
- {eping-4.6 → eping-4.8}/src/eping.egg-info/PKG-INFO +3 -3
- {eping-4.6 → eping-4.8}/LICENSE +0 -0
- {eping-4.6 → eping-4.8}/setup.cfg +0 -0
- {eping-4.6 → eping-4.8}/src/eping/__init__.py +0 -0
- {eping-4.6 → eping-4.8}/src/eping/_launch_eping.py +0 -0
- {eping-4.6 → eping-4.8}/src/eping/epinga.py +0 -0
- {eping-4.6 → eping-4.8}/src/eping.egg-info/SOURCES.txt +0 -0
- {eping-4.6 → eping-4.8}/src/eping.egg-info/dependency_links.txt +0 -0
- {eping-4.6 → eping-4.8}/src/eping.egg-info/entry_points.txt +0 -0
- {eping-4.6 → eping-4.8}/src/eping.egg-info/top_level.txt +0 -0
{eping-4.6 → eping-4.8}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eping
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.8
|
|
4
4
|
Summary: Continuous ICMP reachability monitor built on fping, with a CSV logfile analyser (epinga)
|
|
5
5
|
Author-email: Ewald Jeitler <ewald@jeitler.cc>
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -17,7 +17,7 @@ Description-Content-Type: text/markdown
|
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Dynamic: license-file
|
|
19
19
|
|
|
20
|
-
# eping.py 4.
|
|
20
|
+
# eping.py 4.08
|
|
21
21
|
|
|
22
22
|
Continuous ICMP reachability monitor built on `fping`. Scans a host list in a loop,
|
|
23
23
|
reports each host UP/DOWN/NO-DNS, counts state changes. CLI (curses) or web GUI.
|
|
@@ -179,7 +179,7 @@ addresses); `ap-lobby-01` has no IP and is ignored.
|
|
|
179
179
|
|
|
180
180
|
## CLI mode
|
|
181
181
|
|
|
182
|
-
Sorted table (IPv4 numerically, then hostnames), 64-column blocks. Green = UP, red =
|
|
182
|
+
Sorted table (IPv4 numerically, then hostnames case-insensitively), 64-column blocks. Green = UP, red =
|
|
183
183
|
DOWN. Columns: hostname/IP, state, RTT (ms), last-change timestamp, change count.
|
|
184
184
|
|
|
185
185
|
| Key | Action |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# eping.py 4.
|
|
1
|
+
# eping.py 4.08
|
|
2
2
|
|
|
3
3
|
Continuous ICMP reachability monitor built on `fping`. Scans a host list in a loop,
|
|
4
4
|
reports each host UP/DOWN/NO-DNS, counts state changes. CLI (curses) or web GUI.
|
|
@@ -160,7 +160,7 @@ addresses); `ap-lobby-01` has no IP and is ignored.
|
|
|
160
160
|
|
|
161
161
|
## CLI mode
|
|
162
162
|
|
|
163
|
-
Sorted table (IPv4 numerically, then hostnames), 64-column blocks. Green = UP, red =
|
|
163
|
+
Sorted table (IPv4 numerically, then hostnames case-insensitively), 64-column blocks. Green = UP, red =
|
|
164
164
|
DOWN. Columns: hostname/IP, state, RTT (ms), last-change timestamp, change count.
|
|
165
165
|
|
|
166
166
|
| Key | Action |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "eping"
|
|
7
|
-
version = "4.
|
|
7
|
+
version = "4.08"
|
|
8
8
|
description = "Continuous ICMP reachability monitor built on fping, with a CSV logfile analyser (epinga)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "GPL-3.0-or-later" }
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# I knew how it worked.
|
|
8
8
|
# Now, only god knows it!
|
|
9
9
|
# - - - - - - - - - - - - - - - - - - - - - - - -
|
|
10
|
-
VERSION = '4.
|
|
10
|
+
VERSION = '4.08'
|
|
11
11
|
version = VERSION # legacy alias (kept for existing references)
|
|
12
12
|
|
|
13
13
|
# --- scaling limits ---
|
|
@@ -1723,7 +1723,7 @@ def sort_fping_result_data(fping_result_data):
|
|
|
1723
1723
|
else:
|
|
1724
1724
|
fqdn_rows.append(row)
|
|
1725
1725
|
ip_rows.sort(key=lambda r: _ip_sort_key(r[0]))
|
|
1726
|
-
fqdn_rows.sort(key=lambda r: r[0])
|
|
1726
|
+
fqdn_rows.sort(key=lambda r: (r[0].lower(), r[0])) # case-insensitive, exact name as tie-break
|
|
1727
1727
|
return ip_rows + fqdn_rows
|
|
1728
1728
|
|
|
1729
1729
|
def now_local(tz_offset):
|
|
@@ -7009,7 +7009,20 @@ class EpingWebServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
|
|
|
7009
7009
|
pass
|
|
7010
7010
|
|
|
7011
7011
|
|
|
7012
|
+
def _port_in_use(bind_addr, port):
|
|
7013
|
+
"""True if a listener already answers on the address we are about to bind. BSD/macOS lets a
|
|
7014
|
+
wildcard socket and a specific one share a port (SO_REUSEADDR), so bind() alone does not
|
|
7015
|
+
detect another instance bound to 127.0.0.1."""
|
|
7016
|
+
host = {'': '127.0.0.1', '0.0.0.0': '127.0.0.1', '::': '::1'}.get(bind_addr, bind_addr)
|
|
7017
|
+
try:
|
|
7018
|
+
with socket.create_connection((host, port), timeout=0.5):
|
|
7019
|
+
return True
|
|
7020
|
+
except OSError:
|
|
7021
|
+
return False
|
|
7022
|
+
|
|
7012
7023
|
def start_web_server(bind_addr, port):
|
|
7024
|
+
if _port_in_use(bind_addr, port):
|
|
7025
|
+
error_handler('ERROR: unable to bind web gui to ' + str(bind_addr) + ':' + str(port) + ' - address already in use')
|
|
7013
7026
|
try:
|
|
7014
7027
|
httpd = EpingWebServer((bind_addr, port), EpingWebHandler)
|
|
7015
7028
|
except OSError as e:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: eping
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.8
|
|
4
4
|
Summary: Continuous ICMP reachability monitor built on fping, with a CSV logfile analyser (epinga)
|
|
5
5
|
Author-email: Ewald Jeitler <ewald@jeitler.cc>
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -17,7 +17,7 @@ Description-Content-Type: text/markdown
|
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
Dynamic: license-file
|
|
19
19
|
|
|
20
|
-
# eping.py 4.
|
|
20
|
+
# eping.py 4.08
|
|
21
21
|
|
|
22
22
|
Continuous ICMP reachability monitor built on `fping`. Scans a host list in a loop,
|
|
23
23
|
reports each host UP/DOWN/NO-DNS, counts state changes. CLI (curses) or web GUI.
|
|
@@ -179,7 +179,7 @@ addresses); `ap-lobby-01` has no IP and is ignored.
|
|
|
179
179
|
|
|
180
180
|
## CLI mode
|
|
181
181
|
|
|
182
|
-
Sorted table (IPv4 numerically, then hostnames), 64-column blocks. Green = UP, red =
|
|
182
|
+
Sorted table (IPv4 numerically, then hostnames case-insensitively), 64-column blocks. Green = UP, red =
|
|
183
183
|
DOWN. Columns: hostname/IP, state, RTT (ms), last-change timestamp, change count.
|
|
184
184
|
|
|
185
185
|
| Key | Action |
|
{eping-4.6 → eping-4.8}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|