[ekg2-devel] Nieprawidłowe nawiązywanie rozm

Michał Kazior kazikcz w gmail.com
Nie, 17 Lut 2008, 21:50:52 CET


On Sun, Feb 17, 2008 at 09:24:11PM +0100, Jakub Zawadzki wrote:
> On Sun, Feb 17, 2008 at 08:44:31PM +0100, Michał Górny wrote:
> > Dnia 17-02-2008 o 20:28:13 Michał Kazior <kazikcz w gmail.com> napisał(a):
> 
> >> Przedwczoraj postanowiłem sprawdzić Ekg2. Pamiętam, że wcześniejsze
> >> wersje miały dość sporo problemów z kontami jabbera na gmail-u, ale
> >> teraz wszystko chodzi ładnie. Dobra robota!
> 
> Troche spoznione gratulacje, ale dzieki :)
> http://zdzichubg.jogger.pl/2005/08/24/no-prosze-panstwa/
> http://gim.jogger.pl/2006/03/05/google-talk/
> 
> (Wiele sie nie zmienilo, nadal ekg2 nie umie resolvowac rekordow T_SRV ;/)

Rok temu miałem ciężką kaszane z gmail-em. Nie dało się łączyć, albo
rozłączało po kilku sekundach (i tak w kółko).


> >> Problem 2.
> >>   Jeżeli rozpocznę rozmowę z samym sobą (z Gajim do Ekg2), to
> >> osoba, która w najbliższym czasie zmieni swój status (w Ekg2) zostanie
> >> `wsadzona' jako rozmówca w okno rozmowy z samym sobą (z Gajim).
> >> Następne próby komunikacji z samym sobą (Gajim->Ekg2) będą tworzyć
> >> następne okna, które będą kolejno zajmowane przez dość losowe
> >> kontakty. Próba odpowiedzi (Ekg2->Gajim) na zmutowanym oknie będzie
> >> wysyłać wiadomości do `wylosowanego' uprzednio kontaktu.
> >
> > Nie obsługujemy zasobów w Jabberze, co będzie tutaj podstawowym źródłem 
> > problemów. Dj kiedyś zrobił nawet całkiem ładnie prezentującego się patcha, 
> > acz wadliwego ??? 
> 
> Jak ja pamietam swojego patcha, to on tylko umozliwial przelaczanie zasobow w ekg2.
> Nie bylo kodu ktory z tego korzystal w jabberze.. (z w->resource)
> Ogolnie to bylo moje proof-of-conspect nt. jak mialo wygladac zarzadzanie
> zasobami w ekg2 (na podstawie dyskusji @ ekg2-devel)
> 
> Gajim umie zasoby, wiec jak dla mnie workaround jest banalny.
> Ustalic ekg2 priorytet ponizej priorytetu Gajima, komunikacja idzie
> domyslnie na wiekszy priorytet, wiec bedzie OK.

Nie w tym rzecz, czy Gajim umie, czy nie też umie. Tu wcale nie chodzi
o konflikt priorytetów. Chodzi o sam fakt niemożności rozmawiania z
inną instancją własnego konta.
Zresztą nie można powiedzieć, że problem jest z głowy, bo znaleziono
jest workaround.


> >> Pozwoliłem sobie zajrzeć do źródeł w poszukiwaniu odpowiedzi i byćmoże
> >> rozwiązania tych problemów. Udało mi się ustalić (nie wiem czy
> >> poprawnie), że wina leży w konstrukcji window_t, która jako
> >> identyfikator rozmowy przyjmuje nick kontaktu. Myslę, że w tym miejscu
> >> powinien znaleźć się UID, który jest unikalny i pozwala na
> >> jednoznaczne określenie rozmówcy.
> 
> Jak bylo wyzej wspomniane, ekg2 nie obsluguje userlist gdzie ten sam
> nick wystepuje wielokrotnie. ekg2 obsluguje gg i tlena natywnie, wiec
> 
> workaroundy:
>  - nie korzystac z transportow w czasie uzywania ekg2.
>    Korzystac natywnie z protokolow. Dla osob z ktorymi mamy kontakt
>    przez kilka protokolow poustawiac metakontakty.

Odpada. Nie raz zdarza mi się zmienić komputer. Wtedy zalogowanie
chociażby na gmail.com udostępnia mi komunikację ze znajomymi,
nieważne czy z tymi na GG, czy na Jabberze (m.in dlatego właśnie
używam Jabbera na Gmail-u).


> [tutaj juz wymagajace naprawy w zrodlach, ale nalezaloby wybrac ktoras opcje]
>  - podczas pobierania userlisty, sprawdzac czy nie dostajemy nicka
>    jakiego juz mamy w userliscie. Jesli tak ustawic na NULL, i przy
>    generatorze wygeneruje sie jakis unikalny..
> 
>  - podczas pobierania userlisty, sprawdzac czy nie dostajemy nicka
>    jakiego juz mamy w userliscie, jesli tak to zalozyc metakontakt
>    (automagicznie) i ustawic z foo na foo1. Poinformowac o tym uzytkownika.
>    [tutaj wypada pomyslec o konfliktach nazw, i czy taki metakontakt powinien
>     byc zapisywany do pliku]

Nie do końca rozumiem.. Czuję się powaznie skonfundowany niektórymi
nazwami w kodzie (userlist_t kojarzy mi się raczej z listą
użytkowników, a nie użytkownikiem).

Nie byłoby może lepiej, gdyby zamiast `char *target' w `window_t'
dowiązać `userlist_t *target' ? W ten sposób mielibyśmy dostęp do
danego kontaktu i jego informacji (uin,target,groups), w tym do
wskaźnika void *priv. Dzięki temu możnaby zrobić niebezpośredni dostęp
do zasobów Jabberowych (już w samej wtyczce Jabbera).

To tylko taki pomysł odemnie. Tak ja bym to zrobił, chociaż brakuje mi
jeszcze informacji o dokładnej budowie Ekg2 przez co moge bredzić.


Pozdrawiam.


Więcej informacji o liście dyskusyjnej ekg2-devel