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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eping
3
- Version: 4.6
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.06
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.06
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.06"
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.06'
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.6
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.06
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 |
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes