Skip to content

fix: correct exception handling in get_external_ip and add validation…#3262

Open
amussara wants to merge 1 commit intoopentensor:masterfrom
amussara:fix/networking-error-handling-and-validation
Open

fix: correct exception handling in get_external_ip and add validation…#3262
amussara wants to merge 1 commit intoopentensor:masterfrom
amussara:fix/networking-error-handling-and-validation

Conversation

@amussara
Copy link

… helper

  • Fix bug where get_external_ip() caught ExternalIPNotFound in each fallback block, but the actual exceptions (ConnectionError, AssertionError, Timeout, etc.) were never caught, causing the function to crash instead of falling through to the next service.
  • Replace bare assert with a dedicated _validate_ip_response() helper that strips whitespace and validates IP format.
  • Add timeout parameters to requests.get() and urllib_request.urlopen() calls to prevent indefinite hangs.
  • Add return type annotation to ip__str__().
  • Add comprehensive test coverage for ip_version, ip_to_int validation, ip__str__ edge cases, _validate_ip_response, and get_external_ip fallthrough behavior.

Welcome!

Due to GitHub limitations,
please switch to Preview for links to render properly.

Please choose the right template for your pull request:

… helper

- Fix bug where get_external_ip() caught ExternalIPNotFound in each
  fallback block, but the actual exceptions (ConnectionError,
  AssertionError, Timeout, etc.) were never caught, causing the
  function to crash instead of falling through to the next service.
- Replace bare assert with a dedicated _validate_ip_response() helper
  that strips whitespace and validates IP format.
- Add timeout parameters to requests.get() and urllib_request.urlopen()
  calls to prevent indefinite hangs.
- Add return type annotation to ip__str__().
- Add comprehensive test coverage for ip_version, ip_to_int validation,
  ip__str__ edge cases, _validate_ip_response, and get_external_ip
  fallthrough behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant