Jun. 22nd, 2011

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

Ну більшість моментів я виправив: додав void * data аргументом для хендлеру, перейменував цю довбану глобальну змінну (викорінити її не вдалось, дуже глибоко проросла) ну і всякі різні дрібні штуки. Да, кваліфікатор const взагалі не використовується. А це приводить до неможливості передавати у функції результат std::string::c_str() і викликає подив компілятора (проявляється десятками попереджень). А ще вона підозріло проторможує і перепризначує stdout.
Але ця бібліотека підкупає двома речами: розміром і вмінням HTTPS. Так і чешуться руки взяти і "причесати" її до нормального сучасного вигляду...

Profile

madf: (Default)
madf

April 2018

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

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

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