madf: (Default)
[personal profile] madf
Цілий день ваяю web-інтерфейс на базі оцього: libwebserver. Бібліотека стара як смерть - остання версія вийшла у 2004-му. Інтерфейс жахливий. Що прикрутити нормальний цикл poll треба виробляти неабиякі трюки і частково дублювати у себе в коді її внутрішню логіку. Один той факт що хендлери задаються сигнатурою void (*) () викликає відчайдушний крик душі. Дані передаються через глобальну змінну що називається так-же як і її тип. Отаку:
struct ClientInfo * ClientInfo;

Ну більшість моментів я виправив: додав void * data аргументом для хендлеру, перейменував цю довбану глобальну змінну (викорінити її не вдалось, дуже глибоко проросла) ну і всякі різні дрібні штуки. Да, кваліфікатор const взагалі не використовується. А це приводить до неможливості передавати у функції результат std::string::c_str() і викликає подив компілятора (проявляється десятками попереджень). А ще вона підозріло проторможує і перепризначує stdout.
Але ця бібліотека підкупає двома речами: розміром і вмінням HTTPS. Так і чешуться руки взяти і "причесати" її до нормального сучасного вигляду...
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2026 11:23 am
Powered by Dreamwidth Studios