O projeto GNU lançou a versão 0.9.74 da biblioteca libmicrohttpd, que fornece uma API simples para integrar funcionalidades de servidor HTTP em aplicativos. A biblioteca suporta o protocolo HTTP 1.1, TLS, processamento incremental de solicitações POST, autenticação básica e digest, IPv6, SHOUTcast e vários métodos de multiplexação de conexões (select, poll, pthread, thread pool). As plataformas suportadas incluem: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian e z/OS. A biblioteca é distribuída sob a licença LGPL 2.1+.
Na nova versão:
- Foi adicionada a implementação experimental do protocolo WebSockets, que ainda não foi testada adequadamente e está desativada por padrão.
- Melhorado o conformidade com as especificações das implementações dos protocolos HTTP 1.0/1.1.
- O código para decodificação de solicitações chunked foi reescrito.
- O código para a formação de cabeçalhos HTTP na resposta foi completamente reescrito.
- Adicionado código para retornar automaticamente erros relacionados a solicitações chunked inválidas, tamanho de dados excessivo e cabeçalho Content-Length mal definido.
- A precisão na definição de timeouts foi aumentada de segundos para milissegundos.
- Realizadas otimizações internas, como melhoria na gestão de memória, eficiência de hash aumentada e eliminação da análise repetida da versão do protocolo e método HTTP.
- Foi implementada uma verificação mais rigorosa da validade dos valores dos cabeçalhos HTTP, permitindo o uso de caracteres de tabulação nos valores dos cabeçalhos de resposta, mas proibindo o uso de espaços nos valores dos cabeçalhos personalizados.
- Adicionada a opção de compilação '--enable-sanitizers[=address,undefined,leak,user-poison]' para ativação seletiva dos modos de detecção de problemas no código.
- Adicionado arquivo de projeto para construção no MSVC.
Fonte: opennet.ru
