Сообщения об ошибках сокетов изменяются между Ubuntu 14.04 и 18.04 при подключении к серверу с неправильным именем хоста - PullRequest
0 голосов
/ 08 октября 2019

Я работаю с сервером Daemon, работающим на Ubuntu 14.04. Я написал тест, в котором я пытаюсь подключиться к нему с неправильным именем хоста и перехватываю сообщение об ошибке сервера:

socket.gaierror: [Errno -5] Нетадрес, связанный с именем хоста

Однако я перехожу на Ubuntu 18.04. Я ожидаю, что этот тест будет работать, но похоже, что сообщение об ошибке изменилось на:

socket.gaierror: [Errno -2] Имя или служба не известны

Это изменение в механизме модуля сокетов в Ubuntu 14.04 по сравнению с Ubuntu 18.04?

И если да, где я могу найти документацию (я посмотрел в сети, но ничего не нашел)?

И если нет, что может вызвать это расхождение в массиве ошибок, выдаваемом модулем сокета при попытке соединения с неправильным именем хоста?

Спасибо, что нашли время, чтобы прочитать.

1 Ответ

1 голос
/ 08 октября 2019

Было очень много исправлений ошибок в glibc, касающихся кодов ошибок из getaddrinfo (базовый системный вызов, связанный с этими поисками имен), поэтому вполне возможно, что это могло измениться где-то или другим.

Дляпример этот , хотя и старый, выглядит весьма актуальным. Предложенный там патч возвращает EAI_NONAME (что соответствует более новому сообщению, которое вы получаете "Имя или служба неизвестна"), когда он не возвращал его в этом случае раньше. Вероятно, это не тот, который вызвал изменение, которое вы видите, но это просто пример чего-то, что может иметь.

Это может быть что-то вроде этого или аналогичное изменение - вы можете искать выше-связанная база данных bugzilla для других, если вы действительно не уверены. В зависимости от вашего варианта использования, вероятно, в большинстве случаев будет достаточно обработать обе ошибки одинаково.

...