LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Подожди, а о каких «асинхронных обработках» шла речь, если кроме сенда и шатдауна ты ничего и сделать-то больше не можешь?

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

Это и «становится известно сразу же» как только ты спросишь. А если не спросишь - будет дальше не известно.

Вот и вопрос - как спросить, не отсылая никаких байтов?

Аналогия с сокетами понятна, но она не совсем правильная. TLS сам по себе вполне позволяет узнать о закрытой сессии не пытаясь в неё ничего записать (открытая сессия требует открытого двустороннего tcp, соответственно как только tcp закрывается хотя бы в одну сторону - tls-сессию можно считать полностью закрытой), но вот соответствующего апи в openssl я что-то не вижу. Опрашивать сокет напрямую тоже не годится - в него могут прийти данные, которые надо обработать openssl-ем, но опять же функции «прими что там прислали служебное» я не вижу, она есть только в неявном виде как часть SSL_write.

Исходная версия firkax, :

Подожди, а о каких «асинхронных обработках» шла речь, если кроме сенда и шатдауна ты ничего и сделать-то больше не можешь?

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

Это и «становится известно сразу же» как только ты спросишь. А если не спросишь - будет дальше не известно.

Вот и вопрос - как спросить, не отсылая никаких байтов?

Аналогия с сокетами понятна, но она не совсем правильная. TLS сам по себе вполне позволяет узнать о закрытой сессии не пытаясь в неё ничего записать (открытая сессия требует открытого двустороннего tcp, соответственно как только tcp закрывается хотя бы в одну сторону - tls-сессию можно считать полностью закрытой), но вот соответствующего апи в openssl я что-то не вижу.