Od jakiegoś czasu do źródeł transportu GG włączona jest biblioteka libgadu
(na dostępnych pakietach z libgadu nie można polegać). W libgadu ostatnio
znaleziono poważne błędy, więc trzeba było ją uaktualnić. Przy tej okazji
zajrzałem do kodu transportu GG… i wreszcie się porządnie za niego zabrałem,
co w rezultacie dało dzisiejsze
wydanie wersji 2.2.0.
Od wersji 2.1.0 zmieniło się wiele. Większość jeszcze w lutym. Najważniejsze
zmiany to:
- Wspomniane już włączenie libgadu do źródeł transportu.
- Ignorowanie wybranych numerków.
- Ustawianie osobnych statusów dla GG, można też ustawić specjalny status
używany podczas niedostępności i niewidzialności. - Wywalenie całkiem zmiany haseł. Stary kod i tak nie działał z nowym
protokołem (wymagającym czytania kodów z obrazków), a nowy protokół byłby
dość niepraktyczny w implementacji. - Kupa różnych poprawek.
- I chyba najważniejsze: obsługa subskrypcji obecności per-kontakt. Teraz
powinny działać listy prywatności, ustawianie online/offline dla konkretnych użytkowników,
jednokierunkowe subskrypcje (ja go widzę, a on mnie nie) itp.
Z ostatnim punktem związana jest pewna niedogodność: po upgrade’zie
użytkownicy będą musieli potwierdzić autoryzację
dla każdego swojego
kontaktu z GG. To może być bardzo dużo klikania. Użytkownicy niektórych
serwerów mają już to za sobą, więc dobrze wiedzą o co chodzi.
Z poprawek wspomnieć mogę np. rezygnację z używania
GIOChannel
do czegoś, do czego się zupełnie nie nadają (śledzenie aktywności na sockecie obsługiwanym
przez coś innego niż GLib), czy wywalenie zupełnie niepotrzebnego (a pełnego
błędów) buforowania danych zapisywanych do strumienia XMPP. Ta druga zmiana
podobno spowodowała znacznie zmniejszenie obciążenia w dużych (tysiące zarejestrowanych użytkowników)
instalacjach transportu. A to buforowanie miało niby być optymalizacją… Poza
tym usunąłem ileś memleaków i innych błędów wykrytych przez Valgrinda.
Wersja
z wczorajszego wieczora już podobno całkiem stabilnie działała, a ja mam
nadzieję, że dzisiaj nie tylko poprawiłem kilka kolejnych błędów, ale i nie
wprowadziłem żadnych nowych. Jednak, jak znam życie, to pewnie za chwilę
dostanę parę bugreportów dotyczących jakiś nowych (a może i starych)
i strasznie głupich błędów. Jeśli tak, to postaram się szybko wydać poprawioną
wersję, jeśli nie, to pewnie kolejne wydanie będzie za jakiś rok albo i później.