Добрый день всем.
Можно ли вызывать getaddrinfo в неблокирующем варианте?
Если пользователь набирает имя сервера, нажимает «подключиться», а потом замечает, что в имени опечатка, и нажимает кнопку «отмена», было бы здорово сразу прерывать дальнейшие попытки получения адреса, а не ждать, пока ресолвер убедится, что сервера действительно нет. Хочется использовать getaddrinfo примерно как неблокирующие poll, send и recv, чтобы она возвращала управление и можно было бы проверить флаг this->cancel.
Три года назад тут было предложено решение через сигналы и longjmp, но оно исключительно однопоточное, не подходит.
Неблокирующий getaddrinfo (реальность или миф?)
Модератор: Модераторы разделов
-
gluk47
- Сообщения: 297
- Статус: Любитель гвоздей и микроскопов
- ОС: Kubuntu 17.10
Неблокирующий getaddrinfo
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
куищще is aliased to `reboot'
-
/dev/random
- Администратор
- Сообщения: 5492
- ОС: Gentoo
Re: Неблокирующий getaddrinfo
Стандартного решения нет, но есть несколько нестандартных.
1) getaddrinfo_a() (нестандартная функция в glibc)
2) dnsres_getaddrinfo() (библиотека dnsres)
1) getaddrinfo_a() (нестандартная функция в glibc)
2) dnsres_getaddrinfo() (библиотека dnsres)
Спасибо сказали: