File: errors.py

package info (click to toggle)
python-ping3 4.0.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 196 kB
  • sloc: python: 590; makefile: 3
file content (44 lines) | stat: -rw-r--r-- 1,742 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class PingError(Exception):
    pass


class TimeExceeded(PingError):
    pass


class TimeToLiveExpired(TimeExceeded):
    def __init__(self, message="Time exceeded: Time To Live expired.", ip_header=None, icmp_header=None):
        self.ip_header = ip_header
        self.icmp_header = icmp_header
        self.message = message
        super().__init__(self.message)


class DestinationUnreachable(PingError):
    def __init__(self, message="Destination unreachable.", ip_header=None, icmp_header=None):
        self.ip_header = ip_header
        self.icmp_header = icmp_header
        self.message = message if self.ip_header is None else message + " (Host='{}')".format(self.ip_header.get("src_addr"))
        super().__init__(self.message)


class DestinationHostUnreachable(DestinationUnreachable):
    def __init__(self, message="Destination unreachable: Host unreachable.", ip_header=None, icmp_header=None):
        self.ip_header = ip_header
        self.icmp_header = icmp_header
        self.message = message if self.ip_header is None else message + " (Host='{}')".format(self.ip_header.get("src_addr"))
        super().__init__(self.message)


class HostUnknown(PingError):
    def __init__(self, message="Cannot resolve: Unknown host.", dest_addr=None):
        self.dest_addr = dest_addr
        self.message = message if self.dest_addr is None else message + " (Host='{}')".format(self.dest_addr)
        super().__init__(self.message)


class Timeout(PingError):
    def __init__(self, message="Request timeout for ICMP packet.", timeout=None):
        self.timeout = timeout
        self.message = message if self.timeout is None else message + " (Timeout={}s)".format(self.timeout)
        super().__init__(self.message)