Refactoring HTTP klienta v pRSSreaderu

Září 29, 2006

Probudil jsem se dnes s naladou dat do poradku bordel v implementaci HTTP klienta v pRSSreaderu. Zlate pravidlo sice zni: Kdyz neco funguje, nerejpej se v tom, ale jak se veci postupne nabalovaly, zacal byt HTTP klient pekna zrudicka.

Dodnes to v pRSSreaderu fungovalo tak, ze existovala trida CHTTPClient, ktera se pripojila k serveru, dokazala na server poslat data, precist data ze serveru. Casem pribyla moznost pristupovat na serveru pres proxy (SOCKS a HTTP). Nedavno jsem dopsal HTTPS. Tridu CHTTPClient pak vyuzivala trida CDownloader, ktera zajistovala logiku HTTP (pripojit, poslat pozadavek, prijmout odpoved, udelat authentikaci, zpracovat chybove stavy, atd.)

Dneska jsem procistil kod, vnitrne ucesal, vyhazel nektery epotrebny metody a datovy cleny. Take jsem vydelil novou tridu CHttpSocket, ktera zapouzdruje socketi funkce. Takze je to ted prehlednejsi a lip se to bude udrzovat.

Ale zjistil jsem zasadni problem. Nefunguje mi HTTPS zpoza proxy serveru. Tohle budu musel dodelat behem beta testovani, ted na to nemam naladu. Ani nevim jak na to. Musim si to nechat projit hlavou.

V souvislosti s refactoringem kodu, ktery se stara o HTTP, jsem zkousel jak je to s tim spojenim pres ActiveSync. Zase jsem stravil par hodin na groups.google.com a hledal. Uz se mi podarilo najit 2 lidi, ktery maji stejny problem. Sranda je, ze jim na jejich otazky nikdo neodpovedel :( Porad se tvari, ze popisovany problem neexistuje. Asi jeste nepsali RSS reader s masivnim cachovanim :) Zkousel jsem vsechno mozny, od prehazovani kodu po alternativni DNS resolvovani, ale nic zasadniho to neprineslo. Zajimavy zjisteni je: kdyz uz se nejde pripojit treba na news.google.com, tak se tam nikdo nepripoji - ani PIE. Takze PIE nedela zadny mind hack na ActiveSync, ktery by zajistil, ze se vzdy pripoji. Muze se to podelat. Jak to tak vypada, problem se od connect prenesl lehce smerem k DNS resolvovani. DNS se sice resolvne a connect() pak kiksne, ale problem bude asi v DNS cachovani na strane ActiveSync. Nechapu, jak muze takova chyba prezivat tak dlouho. Tady musim pochvalit vyvojare SynCE, ktery slape jak ma, ale IMHO to bude tim, ze linux na lip zpracovany TCP/IP stack nez Windows. Dal jsem zjistil, ze kdyz pres kazdym pozadavkem hodim Sleep(2000), tak je problem s Connection refused mensi, cili pripoji se to na vic siti. Jakoby se AS potreboval vzpamatovat z toho zahulu co na nej PDA chrli. Asi neni stavenej na rychlejsi prenosy, coz by vysvetlovalo, proc spojeni pres WiFI a BTH funguje.

Deni ve svete

Uz delsi dobu je mezi nami kernel 2.6.18. Uz se na nej tesim, doufam, ze uz mi pujde poradne MIC na laptopu. V 2.6.17 se ozval jednou, ale pak to nejak prestalo pracovat, nevim proc :( Uz se tesim, az se kernel objevi ve feedu packages.gentoo.org. A vubec nejlepsi bude az se objevi kernel 2.6.18-suspend2.

V souvislosti s MICem jsem vcera zahlidl novou verzi ALSA (1.0.13_rc3), takze nadeje na funkcni MIC jsou velke.

Taky je novy wine (0.9.22), tak si asi zkusim nainstalit nejakou strasi gamesku - kupr. AOEII. Ale nevim jak pak budu psat tu distertacku :)

Dalsi prijemna vec: lm_sensors jsou ve verzi 2.10.1. Cekam na ebuild a doufam, ze konecne budu moci monitorovat teplotu CPU a HDD v laptopu.

Jinak

Jinak jsem zase dostal par stupidnich majlu, ktery si stezovaly na veci, se kteryma moje prgy nemaji nic spolecneho. Zase se ozval jeden, co neumi cist. A zase me vytocili dementi, ktery telefonuji do rozhlasu a neumi se vyzvejknout. Standard.

Hudba

Ozzy Osbourne, R.E.M.

Entry Filed under: Linux, PocketPC, Vývojka, Ze života. .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to the comments via RSS Feed


Kalendář

Září 2006
P Ú S Č P S N
    Říj »
 123
45678910
11121314151617
18192021222324
252627282930  

Kategorie

Poslední příspěvky

Archiv

Nezařazeno

PocketPC

Software

Ze života

Statistika Blogu