Выпуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNU libmicrohttpd 0.9.77

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ GNU ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» выпуск Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libmicrohttpd 0.9.77, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ простой API для встраивания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ HTTP-сСрвСра Π² прилоТСния. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 ΠΈ z/OS. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPL 2.1+. Π’ собранном Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 32 ΠšΠ‘.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP 1.1, TLS, ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ POST-запросов, basic- ΠΈ digest-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, IPv6, SHOUTcast, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ соСдинСний (select, poll, epoll) ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ многопоточности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ» ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° соСдинСниС). Для сниТСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ контСкста ΠΌΠ΅ΠΆΠ΄Ρƒ ядром ΠΈ пространством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, число систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ свСдСно ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ.

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ измСнСния:

  • Π’ API ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая функция MHD_get_version_bin() для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0x00097701).
  • К Ρ„ΠΎΡ€ΠΌΠ΅, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠΉ Π² RFC, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для digest-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ («MD5» / «SHA-256» вмСсто «md5» / «sha-256»).
  • ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄ дСкодирования Π±Π»ΠΎΠΊΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Base64, усилСна ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Base64.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° настройка кросс-компиляции, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с POSIX ΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями компиляторов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ тСсты для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ дСкодирования Base64, Basic Auth ΠΈ свёрнутых Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠ².
  • Π’ тСстах задСйствован ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ API Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libcurl для скрытия ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎΠ± использовании ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования компиляторов VC (Visual C) ΠΏΡ€ΠΈ сборкС для систСм ARM ΠΈ ARM64.
  • Π›ΡŽΠ±Ρ‹Π΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ callback-Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ошибки (Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ошибок, ΠΌΠΎΠ³Π»ΠΈ привСсти ΠΊ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ повСдСнию).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° макроса прСпроцСссора «DEBUG» (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ макросу «_DEBUG»).
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ накопившиСся ошибки.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru