Skip to content

Commit 30b139a

Browse files
committed
Differentiate error string
1 parent 6ae1c63 commit 30b139a

7 files changed

Lines changed: 25 additions & 16 deletions

File tree

trapster/modules/base.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import errno
23
import logging
34
from typing import Optional
45

@@ -61,8 +62,16 @@ def __init__(self, config, logger, bindaddr="0.0.0.0", **kwargs):
6162
self.server = None
6263
self.task = None
6364

64-
def _log_bind_error(self):
65-
logging.error(f"Service {self.service_name} could not be started on {self.bindaddr}:{self.port}: address already in use")
65+
def _log_bind_error(self, exc: Exception = None):
66+
if isinstance(exc, OSError) and exc.errno == errno.EACCES:
67+
reason = f"permission denied"
68+
elif isinstance(exc, OSError) and exc.errno == errno.EADDRINUSE:
69+
reason = "address already in use"
70+
elif isinstance(exc, OSError):
71+
reason = str(exc)
72+
else:
73+
reason = "address already in use"
74+
logging.error(f"Service {self.service_name} could not be started on {self.bindaddr}:{self.port}: {reason}")
6675

6776
async def start(self):
6877
# Start the server in a separate task
@@ -77,8 +86,8 @@ async def _start_server(self):
7786
await self.server.serve_forever()
7887
except asyncio.CancelledError:
7988
raise
80-
except OSError:
81-
self._log_bind_error()
89+
except OSError as e:
90+
self._log_bind_error(e)
8291
return False
8392
except Exception as e:
8493
logging.error(e)

trapster/modules/dns.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ async def _start_server(self):
115115
await self.server.serve_forever()
116116
except asyncio.CancelledError:
117117
raise
118-
except OSError:
119-
self._log_bind_error()
118+
except OSError as e:
119+
self._log_bind_error(e)
120120
return False
121121
except Exception as e:
122122
logging.error(e)

trapster/modules/http.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,8 +486,8 @@ async def _start_server(self):
486486
self.server = uvicorn.Server(config)
487487
try:
488488
await self.server.serve()
489-
except (OSError, SystemExit):
490-
self._log_bind_error()
489+
except (OSError, SystemExit) as e:
490+
self._log_bind_error(e)
491491
return False
492492
except asyncio.CancelledError:
493493
self.server.should_exit = True

trapster/modules/https.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ async def _start_server(self):
7373
self.server = uvicorn.Server(config)
7474
try:
7575
await self.server.serve()
76-
except (OSError, SystemExit):
77-
self._log_bind_error()
76+
except (OSError, SystemExit) as e:
77+
self._log_bind_error(e)
7878
return False
7979
except asyncio.CancelledError:
8080
self.server.should_exit = True

trapster/modules/ldaps.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ async def _start_server(self):
7474
await self.server.serve_forever()
7575
except asyncio.CancelledError:
7676
raise
77-
except OSError:
78-
self._log_bind_error()
77+
except OSError as e:
78+
self._log_bind_error(e)
7979
return False
8080
except Exception as e:
8181
logging.error(e)

trapster/modules/snmp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ async def _start_server(self):
7171
local_addr=(self.bindaddr, self.port))
7272
except asyncio.CancelledError:
7373
raise
74-
except OSError:
75-
self._log_bind_error()
74+
except OSError as e:
75+
self._log_bind_error(e)
7676
return False
7777
except Exception as e:
7878
logging.error(e)

trapster/modules/ssh.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ async def _start_server(self):
229229
await self.server.serve_forever()
230230
except asyncio.CancelledError:
231231
raise
232-
except OSError:
233-
self._log_bind_error()
232+
except OSError as e:
233+
self._log_bind_error(e)
234234
return False
235235
except Exception as e:
236236
logging.error(e)

0 commit comments

Comments
 (0)