Pożeracz ramu

Przed chwilą ktoś się mnie spytał, czy to normalne, że transport GG zżera 64MB pamięci
(pole VIRT na topie). No normalne to nie jest, ale sprawdziłem u siebie… odpaliłem top,
dałem u jabber i moim oczom ukazało się
913MB w polu VIRT procesu jggtrans. Hmmm…
chyba mamy mały wyciek… Tylko kiedy ja to zbadam i poprawię?

Reklamy

JJ i CIA

Napisali o mojej twórczości w Jabber Journal, ale moja
wrodzona skromność nie pozwala mi się tym chwalić. Więc się nie pochwalę
:-P

Aby moja sława nie zanikła postanowiłem też zadbać o regularne donosy do
CIA. Niestety na JabberStudio nie mam dostępu
do /CVSROOT/ i nie mogę bezpośrednio instalować commit-skryptów.
Mam jednak możliwość skierowania informacji od commita na dowolny JID lub adres
e-mail i z tej właśnie możliwości skorzystałem. Musiałem tylko napisać skrypt
do konwersji wiadomości z JS na XML zrozumiały dla CIA – niecała godzinka
roboty. Od dziś więc notowane będą moje commity nie tylko do
PLD,
ale także do:
PyXMPP,
CJC,
JJIGW
i
Transportu GG.

Holandia?

Dostałem dzisiaj ciekawego majla:

Hello,

Is there already someone busy with translation your jabber-gg-transport into
dutch? If not, I will translate it. This will take a week, a month,… but it
will not take longer than 2 months normally. 🙂

Włączając mechanizmy gettext do kodu transportu GG nie sądziłem że będą
potrzebne do czegoś więcej niż język polski. Ale jak ktoś chce robić
holenderskie tłumaczenie… niech robi :-)

Prawie skończyłem implementację vCard w PyXMPP. Działa już wczytywanie
Jabberowego vcard-temp i standardowego formatu MIME directory
(RFC2426/RFC2425) oraz zapisywanie tego drugiego. Trzeba jeszcze przetestować
kompatybilność z innymi implementacjami RFC2426 (jakieś address-booki) oraz
dodać tworzenie XMLowej wizytówki. Wtedy będzie można implementować
/whois w CJC i w JJIGW.

W domu zacząłem co-nieco sprzątać. Jeśli w weekend (gdy przyjeżdża żona) ma
być czysto, to muszę zacząć już teraz ;-).

Transport GG wersja 2.0.9

Dzięki wielkiemu poświęceniu (nikt inny nie chiał tego zrobić ;-))
mmazura
Transport GG znowu obsługuje pobieranie listy kontaktów z serwera GG.
Powinno to ładnie działać w większości klientów Jabbera. W Psi nie bardzo,
bo Psi nie obsługuje jabber:x:roster. Stare obejście dla
psi (komenda import roster) zostało usunięte, bo było niezgodne
z protokołem XMPP. Z innych usprawnień wymienić należy: poprawienie błędu powodującego zwis po nieudanym połączeniu z serwerem Jabbera oraz innego – powodującego problemy po zapełnieniu bufora wyjściowego (dotyczyło to dużych serwerów).

W domu na ścianie, mimo dwukrotnego zamalowywania, dalej widać ślady
krysinych obiadków. Na szczęście jest to dużo mniej widoczne niż przed
zamazaniem, ale jednak – plama to plama. Trudno. Kiedyś zrobimy porządne
malowanie, to zdrapiemy resztki obiadków razem ze starą farbą. To już powinno
pomóc.

Zrobiłem to

Wydałem jabber-gg-transport 2.0.8. Trzeba było wreszcie to zrobić, bo
2.0.7 wykrzaczało się że aż wstyd. W CVS już dawno leżały odpowiednie
poprawki (dziękuję wszystkim którzy je przygotowali albo pomogli mi je
przygotować), ale dopiero dzisiaj zrobiłem „release”. Oto
lista najważniejszych zmian:

  • Wyłączony import kontaktów z serwera GG. Po zmianie protokołu i tak
    nie działał, a powodował wykrzaczanie się całego transportu.
  • Poprawki pozwalające użyć transport z serwerem jabberd 2.0.
  • Poprawiony błąd powodujący zwis przy ponownej rejestracji w
    transporcie.
  • Poprawiony błąd powodujący wykrzaczanie się transportu po odebraniu
    <presence> z pustym <priority>.
  • Poprawiona rejestracja transportu w rosterze użytkownika – już nie
    powinien on się pojawiać w rosterze dwa razy.
  • Poprawiona funkcja licząca skrót SHA tak, aby działała poprawnie na
    architekturach 64-bitowych (w tym na moich Opteronach).
  • Oraz parę mniej istotnych poprawek.

A teraz z innej beczki. Zainstalowałem na serwerach pocztowych
amavisd+ClamAV. Działają ślicznie, ale otrzymywałem skargi że niektóre
wiadomości nie dochodzą. Okazało się, że chodziło o majle które zostały
odrzucone za 8-bitowe znaki w nagłówkach (zabronione przez RFC 2822).
Odrzucanie źle sformatowanych wiadomości ma duży sens, bo nigdy nie
wiadomo czy Outlook tak samo zinterpretuje jej zawartość jak antywirus
i po prostu wirus mógłby umknąć. Na takim bugtraqu są zgodne opinie że
„be liberal in what you receive” w przypadku poczty i antywirusów
powoduje tylko problemy. A więc nie mam zamiaru przyjmować wiadomości
łamiących podstawowe standardy (userom dałem wybór – mogą sobie to
wyłączyć).

W logach sprawdziłem co to za wiadomości są odrzucane. Ta wiadomość
o której było tyle krzyku to najwyraźniej z jakiegoś walniętego albo źle
skonfigurowanego Outlooka, z niezakodowanym
„Środkowoeuropejski” w polu „Date: ”. Ale takich
było wśród odrzuconych niewiele. Większość to majle słane automatem z
różnych serwisów WWW (w większości w PHP). Jakoś mnie to nie dziwi.
Zawsze uważałem że olewanie (a raczej ignorancja w tej dziedzinie)
standardów jest podobna do użytkowników PHP. Ale pewnie jestem
uprzedzony…

Na koniec jeden link:
Head over Heels
. Wkleiłem już go do komentarza na blogu Zgody, ale
uznałem że na głównej stronie też powinien się pojawić. Bardzo
sympatyczna gierka. Nie poświęcam wiele czasu na granie (mam go zawsze
mało, szkoda mi go na takie przyjemności), ale 19% udało już mi się
zrobić. :-)

Nowy transport GG

From: Jacek Konieczny <jajcus@bnet.pl>
To: jggtrans@lists.bnet.pl
Subject: OGŁOSZENIE: Jabber GG Transport w wersji 2.0.7 jest

Witam wszystkich (trzech) czytelników listy :-)

Mam przyjemność was powiadomić, że właśnie wydałem nową wersję
transportu. Najważniejsze zmiany od wersji 2.0.6 to:

* Usunięty błąd powodujący pad transportu gdy próbował z niego korzystać
ktoś z pustym zasobem

* Usunięty błąd powodujący pad transportu podczas próby odczytania
wersji klienta GG przez niezarejestrowanego użytkownika

* Usunięty inny pad transportu, związany ze zmianą statusu użytkownika

* Gdy połączenie transportu z serwerem GG ulegnie zerwaniu wszyscy
użytkownicy GG zostają oznaczeni jako niedostępni

* Gdy włączona zostaje niewidzialność poprzez niewidzialność Jabberową
transport nie robi się niewidzialny - jest widoczny jako "away", a nie
"offline"

* Poprawiona obsługa wiadomości wielolinijkowych

Dla pewności podaję sumę MD5 (był ostatnio włam na JabberStudio
i teoretycznie ktoś mógłby się bawić plikami):

1064637800b0cde435cebc31d27ecc88 jabber-gg-transport-2.0.7.tar.gz

Pozdrowienia,

Jacek

Jabber GG Transport 2.0.6

Jak obiecałem tak zrobiłem. Transport GG w wersji 2.0.6 jest już dostępny. Najważniejsze zmiany to:

  • Poprawiony błąd który powodował wywrotkę transportu po otrzymaniu
    wiadomości od niezarejestrowanego użytkownika (zdalny DoS).
  • Poprawiona obsługa zmian obecności – teraz jggtrans powinien prawidłowo
    obsługiwać wiele sesji Jabbera jednego użytkownika.
  • Usprawniona obsługa statusów niedostępnych kontaktów – powinny być one
    widoczne w większości klientów.
  • Polecenie import roster zostało oznaczone jako „nie zalecane”, a w
    formularzu rejestracyjnym można wybrać pobranie listy kontaktów analogiczne
    do działania komendy get roster.
  • Anulowanie subskrypcji transportu na obecność użytkownika (wywalenie
    transportu z rostera, lub zmiana subskrypcji na „to” lub „none”) nie powoduje
    wyrejestrowania użytkownika z transportu – pozwala to na uniknięcie
    automatycznego logowania do transportu.

Wygląda na to że wersja ta działa stabilnie, a przynajmniej stabilniej od
poprzedniej. Uaktualnienie raczej zalecane, ale oczywiście „NO WARRANTY”. 😉