-- Leo's gemini proxy

-- Connecting to any-key.press:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

vostok: сервер Gemini, версия 0.1.1


Новая минорная версия получилась какой-то немного выстраданной. Я довольно быстро поймал SIGPIPE, но хотел поднакопить ещё изменений, что бы новая версия стала более содержательной. Но время шло, а я переключился на другие задачи. Но это не значит, что я сворачиваю разработку сервера vostok. Просто пока буду уделять ему чуть меньше времени.


Предыдущая запись блога разработки


Что нового в версии 0.1.1:

Добавлено игнорирование сигнала SIGPIPE.

По традиции: рефакторинг кода.


Сигнал SIGPIPE


Тут все просто до безобразия: сигнал SIGPIPE возникает в случае, когда происходит запись в сокет, который уже закрыт другой стороной. В контексте сервера это проявляется, если клиентская сторона закроет соединение до того, как сервер полностью запишет Gemini ответ в сокет. Такого поведения нетрудно добиться при скачивании больших файлов. Поведение по умолчанию при получении такого сигнала - завершение процесса. Хотя в случае сервера vostok это штатная ситуация, которая просто должна быть проигнорирована. Что и было сделано в новой версии.


Следующая запись блога разработки

-- Response ended

-- Page fetched on Mon May 20 09:59:19 2024