commit fa4e39d630f0a9a5e7e2a1cd406ffceb5284cbfc from: Aleksey Ryndin date: Wed Aug 16 16:56:50 2023 UTC Append first report commit - 3f592c20499ddfe4315b38f1f539622908002d0b commit + fa4e39d630f0a9a5e7e2a1cd406ffceb5284cbfc blob - 57c1e0a9dea1959aac83600c9dbb919260cb7173 blob + ad6017c986ebf6a7e6e38600a1f4bbc605dceb79 --- reports/0.0.1.gmi +++ reports/0.0.1.gmi @@ -6,25 +6,29 @@ В целом мне очень понравилось то, что автор называет протокол простым и на самом деле протокол оказался несложным. Хотя и тут стоит отметить, что использование прослойки TLS в качестве транспортного уровня делает эту самую простоту весьма условной. В противовес этому, например, протокол Spartan работает поверх обычного TCP. Наверное, если бы я сейчас сел писать реализацию заново, то выбрал бы spartan. => spartan://spartan.mozz.us The Spartan Protocol Homepage +Что-то в спецификации протокола меня зацепило и я написал свою реализацию сервера Gemini на C++11 - vostok (Восток). Название, очевидно, отсылает к названию советский космический корабль "Восток-1", на котором Юрий Алексеевич Гагарин совершил первый в мире пилотируемый полёт в космос. ...work-in-progress... +libtls +=> https://www.libressl.org/ LibreSSL ``` cert$ openssl req -newkey rsa:4096 -nodes -keyout server.key -x509 -days 36500 -out server.crt ``` - ``` openssl s_client -crlf -quiet -connect -no_ssl3 -no_tls1 -no_tls1_1 -connect localhost:1965 <<< "gemini://gemini.any-key.press/reports/0.0.1.gmi" ``` -вместо создания thread'ов на каждое соединение хорошо бы перейти на неблокирующий ввод-вывод и фиксированное количество воркеров (thread'ов) +тесты +(?) std::err заменить на syslog(3) +/etc/mime.types задавать редиректы, что позволит открывать index.gmi при открытии корня -/etc/mime.types +вместо создания thread'ов на каждое соединение хорошо бы перейти на неблокирующий ввод-вывод и фиксированное количество воркеров (thread'ов) -(?) std::err заменить на syslog(3) -тесты + +