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.
Czy pomyka to już na którymś z serwerów tak że można przetestować?
PolubieniePolubienie
U mnie jest 2.2.0, a na autocomie dość świeży kod z SVN. Na chrome od jakiegoś czasu chodzi fork z częścią opisanych zmian (bez kontroli obecności per-kontakt i poprawek z ostatnich trzech dni).
PolubieniePolubienie
hmm… czas na konto na autocom'ie 😀
PolubieniePolubienie
Od jakiejś pół godziny temu i na Chrome. ;]
PolubieniePolubienie
Właśnie 😉
PolubieniePolubienie
Napiszę kilka słów. Podziwiam takich ludzi jak Ty. Kolejnych sukcesów w klepaniu kodu 😉
PolubieniePolubienie
A jaka jest szansa żebyś napisał jakiś fajny interface do przesyłania plików Jabber <-> GG ? Tzn dopisał to do transportu 🙂
PolubieniePolubienie
Movi: myślę że szansa jest mała bo wtedy pliki musiałyby przechodzić przez transport (czyt. serwer na którym stoi transport). Nawet gadu_dot_com sobie nie mogli na to pozwolić i pliki są przesyłane bez pośrednictwa serwer'a, a co dopiero biedne, nieopłacane serwery jabber'a…
PolubieniePolubienie
btw, mogłem sobie napisać skrypt do autoryzacji kontaktów z gg bo tyle klikania to drobna przesada… ale już po krzyku 😉
PolubieniePolubienie
listek : no właśnie o tym myślałem 😉 Ale rozumiem, że nawet z limitem wysyłania byłby to overkill dla serwera.
PolubieniePolubienie
choć w zasadzie można coś takiego napisać… w końcu transport do gg możesz mieć na własnym kompie… wtedy musi to być tylko ładnie konfigurowalne jakie jid'y mogą korzystać z transportu, jakie mogą przesyłać pliki, itp…
o ile serwer jabber'a musi być stale włączony (odbieranie wiadomości podczas bycia offline) to transport gg może być włączony gdy tylko chcemy z niego korzystać, czyli zwykle gdy włączamy komputer… hm…
może by jednak dopisać przesyłanie plików 😉
PolubieniePolubienie
Nie chciał by być mądrzejszy od autora, ale chyba chodzi o wersję 2.2.0, a nie 2.2.2 :> (no, że czegoś nie wiem :).
PolubieniePolubienie
Pawel: racja, dzięki. Ciekawe, że nikt wcześniej tego nie zauważył… 🙂
PolubieniePolubienie
a to nie przestało działać przypadkiem? Nie ma żadnego followup… niestety
PolubieniePolubienie