commit dca8ad435769ed40f114f6bb0b0cbbdcb5bf82de from: Aleksey Ryndin date: Sat Oct 07 17:49:28 2023 UTC Add vostok/reports/0.1.1.gmi commit - 5c6236a69eeaadb6a32f2bf9dec8eb9c997628ec commit + dca8ad435769ed40f114f6bb0b0cbbdcb5bf82de blob - 875af0d7f9ac8781f8b2fda68dad2e12fa70cd36 blob + 627aabebd87c73d7b23d9057b03c55b4b9ee91d7 --- capsule/vostok/reports/0.1.0.gmi +++ capsule/vostok/reports/0.1.0.gmi @@ -47,3 +47,5 @@ Ещё раз выражаю отдельную большую благодарность всем, кто оставляет обратную связь: * nervuri , Vostok server issues + +=> 0.1.1.gmi Следующая запись блога разработки blob - 56cb604864a4f3e3ffc33fc9899a3634062dafff blob + ececc9e0680299efa56afd1517cd4b599dea0c19 --- capsule/vostok/reports/index.gmi +++ capsule/vostok/reports/index.gmi @@ -1,5 +1,6 @@ # Блог разработки сервера vostok +=> 0.1.1.gmi v0.1.1 (2023-10-07) => 0.1.0.gmi v0.1.0 (2023-09-06) => 0.0.2.gmi v0.0.2 (2023-08-23) => 0.0.1.gmi v0.0.1 (2023-08-17) blob - /dev/null blob + f97d98e8b92ffa351e25e602c0ce43fcf9fec9f9 (mode 644) --- /dev/null +++ capsule/vostok/reports/0.1.1.gmi @@ -0,0 +1,13 @@ +# vostok: сервер Gemini, версия 0.1.1 + +Новая минорная версия получилась какой-то немного выстраданной. Я довольно быстро поймал SIGPIPE, но хотел поднакопить ещё изменений, что бы новая версия стала более содержательной. Но время шло, а я переключился на другие задачи. Но это не значит, что я сворачиваю разработку сервера vostok. Просто пока буду уделять ему чуть меньше времени. + +=> 0.1.0.gmi Предыдущая запись блога разработки + +Что нового в версии 0.1.0: +* Добавлено игнорирование сигнала SIGPIPE +* По традиции: рефакторинг кода + +## Сигнал SIGPIPE + +Тут все просто до безобразия: сигнал SIGPIPE возникает в случае, когда происходит запись в сокет, который уже закрыт другой стороной. В контексте сервера это проявляется, если клиентская сторона закроет соединение до того, как сервер полностью запишет Gemini ответ в сокет. Такого поведения нетрудно добиться при скачивании больших файлов. Поведение по умолчанию при получении такого сигнала - завершение процесса. Хотя в случае сервера vostok это штатная ситуация, которая просто должна быть проигнорирована. Что и было сделано в новой версии.