Czwarty patch do dirta. Adresuje on problem otrzymywania zakodowanych komunikatów w private log'u psyBNC. Z tym patchem dirt będzie rozkodowywał wysyłany przez psyBNC log po wydaniu polecenia /playprivatelog.
Dość przydatna funkcjonalność, ale jest jeden haczyk, choć o nim później. Najpierw szybka demonstracja tego, w jaki sposób można naciąć się na problem (na fullscreen widać więcej; upewnij się też, że uaktywniony jest tryb HD):
Krótki opis akcji w filmie:
00:02 - rozpakowywanie oryginalnych źródeł dirt'a (v1.0.0a25) z oficjalnej strony poleceniem aunpack. Argument -X sugeruje użycie katalogu dirt-noprivmsg.
00:15 - ściągnięcie a1-dirtpatch3.diff z bloga podając bezpośredni adres jako argument programu wget.
00:31 - aplikowanie patcha przy pomocy programu patch.
00:36 - kompilacja spatchowanych źródeł dirt'a. Bez aktywnego programu do nagrywania obrazu trwa nieco szybciej ;).
00:57 - uruchomienie edytora pliku ~/.dirtrc/dirt.ini, aby sprawdzić poprawność konfiguracji. Dirt powinien łączyć się na host i port, gdzie nasłuchuje psyBNC. W filmiku wykorzystałem tryb BNC dirt'a, ale nie powinno być problemu wykorzystanie trybu SOCKS.
01:22 - uruchomienie dirt'a z opcją foreground, tzn. bez przechodzenia w tło. Dzięki temu łatwo można potem z niego wyjść przy pomocy kombinacji klawiszy Ctrl+C.
01:28 - połączenie Pidgina z dirt'em. Konfiguracja konta ustawiona jest na host localhost, port 6666, czyli ten, który widniał wcześniej przy edycji pliku dirt.ini. Pidgin od razu po połączeniu wyświetla okno rozmowy -psyBNC z prośbą o obejrzenie loga, gdzie widać zakodowaną wiadomość.
Następuje teraz część aplikowania patcha z tej notki i jego testu. Zamiast zakodowanej wiadomości Pidgin powinien pokazać poprawnie zdekodowaną informację.
01:52 - Kopiowanie patcha do aktualnych źródeł i aplikowanie go.
02:09 - Rekompilacja dirta i ponowne jego uruchomienie.
... następnie ponowne połączenie się Pidginem i sprawdzenie loga privatelog.
Z problemem rozkodowywania wiadomości z privateloga wiąże się haczyk, o którym wspominałem wcześniej. Wyobraźmy sobie pewną hipotetyczną sytuację. Mamy sesję na IRC pod nikiem zombie. Awaynick ustawiony jest na zombie`off. Przy każdorazowej rozmowie, gdy jesteśmy zalogowani na sesję, wszystkie wymiany kluczy fish'a dokonujemy z nicka zombie. Gdy jednak wychodzimy z sesji, nasza sesja przyjmuje nick zombie`off, co spowoduje sytuację, gdzie osoba, która do nas pisze, posługuje się kluczem dla adresata zombie`off, a nie zombie. Jeśli nigdy nie wymienialiśmy klucza spod awaynicka, wtedy do private loga trafią wiadomości niezakodowane, co pociągnie niespatchowany dirt. Jeśli jednak wymienialiśmy klucz z awaynicka, do privateloga trafią wiadomości zakodowane fishem, co spowoduje efekt widoczny na filmiku powyżej.
Jest też jeszcze jedna możliwość: gdy nasz awaynick jest taki sam, jak primary nick — w takim przypadku do privateloga zawsze będą trafiały wiadomości zakodowane (dlatego zawsze potrzebny jest ten patch).
Instalacja jest identyczna, jak instalacja poprzednich wersji. Wystawiam dwa pliki:
- pierwszy patch
, będący połączonym patchem wszystkich poprzednich oraz patcha z tego posta; wybierz ten, jeśli chcesz aplikować go na czyste źródło (v1.0.0a25 — dostępne na oficjalnej stronie dirta),
- drugi patch
, będący samym czwartym patchem. Wybierz ten, jeśli chcesz aplikować go na spatchowane (a1-dirtpatch3.diff) źródło. Ten plik jest wykorzystywany w filmiku powyżej (
01:52).
Dodam tylko jeszcze raz, że oba pliki powyżej mają za zadanie przekonwertować źródło do tego samego stanu.


