Google

[CSacek]
 
 
Home
Další vývoj
Co je CSáček
Download
FAQ
Instalace
Dokumentace
Kredit
Kontakty
Podpora
Historie
Licence

Další info o češtině
 
 
[Hosted by 4Web]
 
 
Valid HTML 4.01!

Historie

C-SaCzech vznikl během dubna a začátku května léta Páně tisícího devítistého devadesátého šestého.

Tato stránka zachycuje změny v jednotlivých verzích a data release.

* verze 2.1.9 (10.3.2002)

  • dokumentace z velké části přepsána a upravena pro zpřehlednění; je nyní také plně validní HTML 4.01 Transitional
  • v parseru opraveny další dva případy, kdy se parametr isspace() a toupper() nepřevedl na (unsigned char) a mohlo se tedy použít záporné číslo na architekturách, kde char je defaultně signed
  • parser chybně nezrušil jeden z vnitřních příznaků tehdy, když dorazil na konec bufferu při čtení příkazu nebo tagu, což vedlo k poškození předávaného dokumentu (několik znaků bylo přepsáno jinými) - jedná se o poměrně vzácnou chybu, bylo nutné splnit několik předpokladů, aby se chyba projevila
  • Apache: mod_ssl háček upraven tak, že se spustí vždy a ne jen tehdy, když se uživatel autentizuje serveru; nyní tedy CSáček s mod_ssl funguje správně i na anonymních serverech nepožadující autentifikaci. Je ale nutno mít správně nastavenou konfiguraci serveru - viz konfigurace mod_ssl_ s CSáčkem.

* verze 2.1.8 (17.2.2002)

  • META tag v xHTML tvaru (<meta ... />) je podporován - lomítko a původní názvy parametrů jsou zachovány
  • přidáno csacekTestJS: pokud zapnuto (default vypnuto), CSáček použije heuristiku pro uhádnutí, zda předávaný text/html text není ve skutečnosti čistý JavaScript
  • parser přegenerován novou verzí Bisonu - 2.18
  • výstup z csacek_info je nyní validní HTML 4.03 (oveřeno validátorem W3C)
  • zrušeno přepisování DOCTYPE (potřeba jen pro MSIE 3.0 a ten už není používán
  • při zpracování embedded JavaScriptu (kódu mezi <SCRIPT> a </SCRIPT>) se vypne přepisování všech tagů, včetně FONT
  • mírná optimalizace memory managementu pro dočasnou paměť
  • zajištěno, aby parametr při volání isspace(3) nebyl záporný - mohlo vést k pádu modulu pokud tag obsahoval české znaky
  • hlavička Content-Length se posílá i při metodě HEAD - nemusí být správně, ale jako informace je lepší než žádná hlavička
  • verze 2.1.7 obsahovala chybu (zanechaný debug výpis), 2.1.8 ji opravuje

* verze 2.1.6 (12.4.2001)

  • ISAPI: oprav pád při poslání POST formuláře bez dat, CSáček je nyní také opatrněji detekuje začátek nového požadavku; CSáček tak funguje na IIS 4.0 (pomoc: Jaromír Ocelka)
  • configure: pro převod na velká písmena použij tr abcd...z ABCD...Z misto tr [a-z] [A-Z] - tu druhou formu některé implementace tr neznají (našel: Libor Bubík)
  • cstools: přidán "stupeň" (DEGREE SIGN) a paragraf (SECTION SIGN)
  • oprava kódu počítajícího priority v Accept-Charset, což mohlo vést k výběru špatného kódování (Martin "Marji" Čermák)
  • hádání uživatelem podporovaného kódování se řídí hlavičkou Accept-Charset i tehdy, když klient v Accept-Language poslal cs (Martin "Marji" Čermák)
  • URL se opravuje i u atributu SRC tagu SCRIPT (doporučil: Daniel Kafka) tag znehodnotilo
  • configure: přidán parametr --with-apxs, který umožňuje explicitně zadat celou cestu k apxs, pokud není v cestě; také byl mírně upraven algoritmus hledání apxs, nyní se dívá také do několika často používaných adresářů, které nemusí být v cestě (opravu poslal Ivo Panáček)
  • součástí distribuce je nyní mod_czech kompatibilní soubor cestina.html (vyrobil a dal k dispozici Ivo Panáček)

* verze 2.1.5 (3.5.2000)

  • Apache + mod_ssl: při sub-requestu se nyní dává zpět SSL kontext, aby mod_ssl mohl udělat příslušná ověření; to mimo jiné znamená, že direktiva SSLRequireSSL funguje tak jak má
    (našel Petr Šimek)
  • opravena další chyba zpracování uvozovek/apostrofů v odkazech
    (našel Robert Janáček)
  • Apache: na csacek_info stránce se vypisuje i to, jestli byl modul zkompilován s podporou EAPI (podpora EAPI je nutná pro korektní funkci CSáčku s mod_ssl)
  • Apache: opravena chyba zanesená při úpravách ve verzi 2.1.4 - některé konfigurační parametry byly pro virtuální servery ignorovány a vždy se použily globální hodnoty
    (našel Pavel Kalián)

* verze 2.1.4 (31.3.2000)

  • oprava přepisování hlaviček Set-Cookie - při určitém tvaru cookie CSáček alokoval méně paměti než potřeboval a mohl přepsat kus náhodné paměti, což vedlo nejčastěji k brzkému pádu serveru (našel: Tomáš Zeman)
  • přidáno FAQ
  • seznam nakonfigurovaných CSáček serverů se udržuje jako globální (předtím se pro Apache sdílel jen seznam virtuálních serverů); direktiva csacekServers může být použita jen v konfiguračních souborech serveru (tedy nesmí být v .htaccess)
  • cstools: opraven překlad Ú (U s čárkou) a Ů (U s kroužkem) v kódování bratří kameníků (oprava: Tomáš Churavý)
  • při úpravě hlavičky Accept-Charset se jméno aktivní části (viz PART) přidá jen tehdy, pokud se nerovná prvnímu tokenu
  • implementována záplata na podivné chování PHP4v3
  • znak označující CSáček "tag" (defaultně ?) lze změnit pomocí parametru --with-cmdtag skriptu configure
  • PART: opraveno zpracování atributu OTHER
  • zrušena vlastnost CSáčku, kdy se v URL typu http://server/.XXX/neco/ část XXX vzala jako název části a předalo se URL http://server/neco/ - není užitečná z způsobuje problémy (na chybu upozornil Petr Linke)
  • CGI: server Zeus CGI skriptům tvrdí, že klient podporuje HTTP/1.1 i když to tak není (SERVER_PROTOCOL je vždy HTTP/1.1) - pokud CGI CSáček jede pod Zeusem, neveří mu v tomto ohledu ani slovo a vždy použije jen vlastnosti HTTP/1.0
  • doc: přidán velmi stručný soubor INSTALL - slouží pro odpíchnutí a informaci, kde lze najít více
  • opravena chyba, kdy pro určité stránky CSáček předal na výstup jen jejich část (s nalezením chyby pomohl Honza Dušák a Radek Vybíral)
  • při parsování dokumentu na CSáček příkazy se ošetřují i případné chyby v HTML kódu - jako konec příkazu se vždy povačuje první nalezené >, i když je v uvozovkách
  • při přepisování URL se názvy HTML tagů do výstupu píší ve stejné podobě, jako byly uvedeny v originále
  • změna průběhu hádání podporovaného kódování při implicitním překódování - Accept-Language se dává větší váha, Accept-Charset se parsuje správně tak, aby se použilo kódování s nejvyšší prioritou (iso-8859-2 je stále preferováno) - založeno na diskuzi s Petrem Součkem
  • Poláci, Maďaři dostávají dokumenty také v iso-8859-2, jako Češi a Slováci
  • Apache, ISAPI: pročištěn kód spravující konfiguraci CSáčku
  • změna struktury csa_params_t - místo sady "flagovitých" atributů se používají bitové příznaky v jediném atributu flags
  • debug pod MS Windows: místo čísla procesu se používá náhodné číslo - PID se pod Windows příliš rychle recykluje
  • CSA_USE_CHARSET už není nastavitelné, charset se v hlaviččce Content-Type posílá vždy - i tehdy, pokud je výstupní kódování US-ASCII
  • cstools: přidány aliasy lat, iso a koi - používá je mod_czech a usnadní se tak přechod na CSáček (oprava: Zdeněk Šindelář)

* verze 2.1.3 (25.2.2000)

  • změna licence na BSD-like
  • Apache: CSáček funční i se Strongholdem (testováno na Stronghold 2.4.2 pro NetBSD)
  • URL se v sekcích <SCRIPT> nepřepisuje - CSáček má problémy s JavaScriptem a ostatními klient-side skripty; tohle je dočasné řešení, než bude implementována opravdová oprava
  • pročištěn kód vyhledávající CSáček příkazy, je nyní optimalizován pro obvyklý případ, kdy nalezená sekvence <-- nebo <? neoznačuje CSáček příkaz
  • zoptimalizován a pročištěn kód starající se o překódování řetězců
  • opravena chyba v csa_decodequery() - pokud vstup obsahoval sekvence %XY, posunul se špatně ukazatel pozice a kód se pokoušel číst za koncem předaného řetězce
  • ISAPI: pročištěno zpracování vstupních dat (adaptace na změny csa_decodequery() v minulé verzi)
  • opraveno vypisování seznamu CSáček serverů v csacek_info
  • configure: jména parametrů a vypisované zprávy poangličtěny, mírné změny názvů (podrobněji viz ./configure --help); jako název defaultního kódování serveru lze použít jakýkoli název podporovaný v příkazech MYCHARSET nebo META tagu
  • mezi přípustné názvy kódování přidáno iso8859-2 a iso8859-1 - tato mutace správných MIME názvů se občas používá

* verze 2.1.2 (25.1.2000)

  • CSáček má své logo!
  • Apache: přidána podpora mod_ssl
  • Apache, CGI: odstraněny problémy s uploadem souborů, nyní funční (našel: Michal Krause)
  • ISAPI: opraveny problémy s autentifikací typu NTLM (našel: Ladislav Kubeš)
  • přepsán a zoptimalizován kód udržujíjí seznam CSáček serverů, rychlost vyhledávání pro seznam o velikosti 1000 se zvýšila asi 50-80x, pro 50 serverů asi 6-10x
  • Apache: opravena chyba s apxs - apxs se nevolalo ani v případě, že ho configure našel (našel: Radek Vybíral)
  • hlavička Vary se teď už opravdu posílá tehdy, když má (našel: Hynek Med)
  • přidána podpora XML tagu XML - pomocí tohoto tagu se indikuje mimo jiné použité kódování znaků; CSáček použije jednak pro určení, v čem je daný dokument napsán, druhak ji přepíše tak, aby odpovídala kódování, do kterého se dokument převádí
  • CSáček části: pokud název části nebyl uveden v URL předávaného dokumentu, necpe se ani do přepisovaných URL
  • opravena chyba zpracování Range v případě, že klient podporuje HTTP/1.1 a/nebo kompresi
  • dokumentace: dopsán podrobný průvodce instalací CSáčku
  • Apache: nyní je možné modul používat se zapnutým laděním (--with-debug) - csa_debug_register_cleanup() chybně nezadalo child_cleanup, což vedlo k dereferenci nulového ukazatele např. při spouštění CGI
  • přidán CSáček příkaz csacekServers, syntaxi má podobnou jako stejnojmenná konfigurační direktiva
  • pročištěna struktura csa_params_t, význam jednotlivých "flagovitých" atributů převzal atribut flags
  • csa_decodequery() zoptimalizováno a vrací nyní vždy řetezec o stejné délce jako byl ten původní; umožňuje to rapidní zjednodušení volajícího kódu (zejména v ISAPI modulu) - z Apache modulu byl nyní zbytečný kód odstraněn, z ISAPI ještě ne
  • úpravy kódu tak, aby byl zkompilovatelný pokud možno bez warningů i v případě zapnutí velmi přísných kontrol kompilátoru gcc; příslušné parametry se při kompilaci CGI použijí tehdy, pokud se skriptu configure dá parametr --with-debug

* verze 2.1.1 (15.11.1999)

  • opravena fce csa_strcasestr() aby se hledalo opravdu hledalo nezávisle na velkých/malých písmenech ve všech případech; chyba se projevila například tak, že Apache nebo ISAPI CSáček URL typu http://nekde/guess/cosi.html přesměroval na http://nekde/guessISO-8859-2/cosi.html místo na http://nekde/ISO-8859-2/cosi.html.
    Našel Jakub Rosa.
  • ISAPI: opravena potencialní chyba při předávání chunkovaných dat - pokud server posílal hlavičky na několikrát a Transfer-Encoding nebylo až v té poslední dávce, jádro CSáčku považovalo data za nechunkované
  • Apache: direktiva csacekChangeURL nyní funguje.
    Opravu poslal: Pavel Krebs
  • při přepisování META tagu se použijí stejné uvozovky jako byly ve zdroji; také opravena chyba ve vypisování atributu HTTP-Equiv, kde jeho hodnota se neukončovala uvozovkou
  • ISAPI, Apache: pokud na začátku URL byl jakýkoli podřetězec guess, whichcode nebo __CHARSET__, bralo se to chybně jako označení cílového kódování/akce; CSáček při následném zpracování zahlásil "Bad output code name".
    Našel Jakub Rosa.
  • ISAPI: expirující verze psala do Event Logu řetězec 991026:991126 nebo podobný; jednalo se o omylem zanechaný ladicí výpis
  • CGI: při subrequestu se nyní používá HTTP/1.1 a v odpovědi serveru se nyní posílají všechny hlavičky i tehdy, zpracovává-li se HTTP/0.9 požadavek - nyní HTTP/0.9 funguje proti Apache serveru i v případě, že požadavek jde přes CGI CSáček
  • CSáček nyní posílá hlavičku Vary - nutné proto, aby případná proxy keš věděla, podle čeho se odpověď mění a klientům nabídla pro ně vhodnou verzi dokumentu.
    Našel Hynek Med.
  • překódovávají se i chybové odpovědi od serveru
  • Apache: opravena chyba při použití chunked kódování (tj. proti HTTP/1.1 klientům), kdy se chunked odpověď nezakončovala sekvencí 0\r\n\r\n.
    Našel Patrik Rak.
  • Apache: použití direktivy csacekRecodeInput nyní nezpůsobí pád serveru při čtení konfigurace
  • Apache: opraveno zacyklení v případě, že HTTP/1.1 klient požádal o dokument delší než X_CSA_OUT_BUFLEN_CHUNK (tj. 8150) bajtů
  • úprava dokumentace (INSTALL): defaultní RedHat konfigurace Apache používá direktivy ClearModuleList a AddModule, pokud má CSáček jako modul fungovat, je třeba na příslušné místo přidat direktivu AddModule mod_csacek.c, jinak CSáček není aktivní (a tedy "nefunguje")
  • při přepisování tagů se použijí uvozovky nebo apostrofy tak, jak bylo uvedeno ve zdroji místo toho, aby se vždy použily uvozovky - znamená to, že např. následující JavaScript kód:
    val = "<A HREF='http://nekde/neco.html'>"
    je platný i po překódování CSáčkem

* verze 2.1.0 (23.9.1999)

  • CSáček nyní funguje i jako ISAPI modul
  • Apache: pokud je na systému k dispozici apxs, modul se s jeho pomocí rovnou i zkompiluje
  • plná podpora HTTP/1.1 uvnitř CSáčku, včetně podpory Range a chunked kódování; CSáček také HTTP/1.1 klientům posílá data dokumentu průběžně, což šetří paměť i čas
  • Apache, ISAPI: nová direktiva csacekImplicitWork - pokud se vypne, CSáček pracuje jen v případě, že kódování bylo explicitně určeno (tj. požadované URI bylo typu .../toXXX/...)
  • Apache, ISAPI: nová direktiva csacekServers, direktiva csacekServer zrušena
  • překódovává se cokoli, co má Content-Type začínající na text/ - kromě text/html se všechny takové dokumenty zpracovávají jako by byly typu text/plain
  • zrušen "příkaz" typu <?proměnná?> - praktické využití bylo jen pro whichcode (tam se to nyní dělá jinak) a jeho podpora zmanenala poměrně o dost víc práce při zpracování CSáček příkazů
  • přidána základní podpora azbuky - CSáček umí překódovávat mezi KOI8-R, ISO-8859-5, windows-1251 a CP866; podpora převodů azbuka <-> latinka a azbuka <-> Unicode bude přidána v 2.1.1

* verze 2.0.9 (13.9.1999)

  • META s označením kódování se nyní neruší, pouze se parametr charset přepíše na správnou hodnotu - MSIE naštěstí při ukládání (Save) dokumentu při případném převodu do jiného kódování přepisuje i META tag
  • překódovávání dat serveru: pokud vzorek vypadá na iso-8859-1, pokračuje se v hledání - může se jednat o text, který jen náhodou obsahuje platné iso-8859-1 znaky, ale jedná se ve zkutečnosti o text v iso-8859-2; např. tehdy, když text obsahuje jen znak 'ť' - v iso-8859-1 je na stejné pozici ve znakové sadě jeden druh apostrofu
  • Apache: při překódování dat od klienta se neupdejtovala hodnota vstupní hlavičky Content-Length, což mohlo vést k zajímavým efektům v případě, že tuto hodnotu někaterý modul používal k určení celkové délky vstupních dat; např. u PHP to vedlo k tomu, že se ke vstupním datům přidávalo náhodné "smetí"
    díky moc zejména Michalovi Krause za neocenitelnou pomoc při zjišťování, v čem je vlastně chyba
  • přidána podpora několika dalších windows znaků: left single quotation mark, right single quotation mark, right double quotation mark (Petr Snajdr)

* verze 2.0.8 (31.8.1999)

  • starší verze mod_html padala, pokud odpověd od CGI skriptu neobsahovala Content-Type - CSáček proto posílal jako Content-Type posílal text/plain v případě, že v původní odpovědi nebyl specifikován; nyní upraveno tak, aby se to dělalo jen u (Fast)CGI mutace a když opravdu CGI běží pod serverem s mod_html aktivním
  • hádaní kódování a jazyka při implicitním překódovóní: pokud klient má sk nebo cs mezi preferovanými jazyky a neposlal Accept-Charset, pošli mu dokument v iso-8859-2 -> eliminuje se z velke casti potreba delat DNS lookup
  • Apache-SSL: novejsi verze (minimalne od verze 1.29) uz neni treba patchovat, staci v apache_ssl.c nastavit SSL_IS_OPTIONAL na TRUE
  • z hlaviček If-Modified-Since se musí odstraňovat nestandardní parametr length, který používá MSIE - CSáčkem předaný dokument může mít jinou délku, než je fyzická velikost dokumentu a zbytečně se dokument předává znovu i tehdy, když se nezměnil
  • opraven problém s kompilací pod AIX 4.2 nativním IBM kompilátorem

* verze 2.0.7 (13.7.1999)

  • opraven nefunkční příkaz csacekServer: jméno serveru při vkládání do seznamu CSáček serveru nezkopírovalo do "trvalé" paměti a nechalo se zkopírované z dočasného poolu; díky tomu se později při testování hodnoty mohl pointr odkazovat na nějaké znovu využité místo a to mohlo obsahovat prakticky jakákoli data, pravděpodobně už však ne to původní jméno serveru; za určitých okolností to mohlo způsobit i pád CSáčku
    tato chyba neměla žádný vliv na direktivu csacekServers v konfiguraci serveru
  • opravena stará chyba v csa_DocParts() - při použití PART ve tvaru <? PART xx=yy OTHER=neco ?> se při platném OTHER jeho text vypíše jen poprvé nebo po <? PART ALL ?>
  • přepisování URL: neni-li v URL za CSáčkem uvedeno URI, připiš tam URI aktuálního dokumentu vč. QUERY_STRING - lze využít při odkazu na dokument v jiné jazykové verzi nebo třeba pro whichcode (v efektu je tato změna obdoba lampovského select až na to, že nepotřebuje, aby klient posílal hlavičku Referer)
  • cstools: opravena velmi stara chyba v cstools_guess_charset() - pokud v textu byly nějaké CSáčkovi neznámé znaky, při procházení cstools_map[] mohl číst za koncem pole, což v závislosti na OS nemuselo mít žádný následek nebo mohlo způsobit pád CSáčka (objeveno při ladění ISAPI filtru)
  • cstools: do tabulek přidán znak apostrof - ne ten klasický ', ale ten, vyskytující se v iso-8859-[12] a windows-1250 na pozici 180
  • Apache: zoptimalizováno zpracování dat při POST, nyní méně náročné na paměť
  • komprese: dává se přednost deflate před gzip
  • překódovávání dat od klienta do kódování serveru lze přepínat konfigurační direktivou, nastavení při kompilaci se používá jako default
  • zoptimalizováno překódovávání uživatelských dat
  • csacek_info předěláno, mimo jiné vypisuje konfiguraci platnou pro dané URL, informace lépe setříděny
  • zlepšena podpora přepínání jazykové varianty - pokud URL obsahuje .../to.XX/... nebo .../toGUESS.XX/... a uživatel si vybral nějaké určité kódování, ta CSáčkovská část se přepíše tak, aby zachoval uživatelův výběr kódování
  • CSáček na MS Windows: defaultní kodování změněno na windows-1250, samozřejmě lze změnit v konfiguraci (pro CGI jen přímou editaci NT/NTcsa_config.h a rekompilací)
  • User-Agent se nyní nijak nepřenastastavuje - zbytečně to zaneřádí logy
  • překódovávání dat od uživatele: opravena chyba v cstools_guess_charset(), která způsobila, že data obsahující znak "nový řádek" nebo tabelátor, se považovala za binární a nepřekódovala se
  • opravena chyba v csa_setitem(): za určitých okolností se mohlo zacyklit (nedělalo problémy v současném kódu, projevilo se až při vývoji ISAPI CSáčka)
  • whichcode_template.html: v anglické verzi opraveno několik gramatických chyb
  • csa_init_params(): pokud je cfg NULL, použij csa_cfg_def - také opravuje známou chybu CSáčku 2.0.6, při které CSáček hlásil "Bad default source code name"
  • Apache: opraveno předávání Set-Cookie, nyní se předájí správně všechny bez duplikací
  • zdrojový kód nyní testován lintem, který objevil několik potenciálních chyb a write-only proměnných
  • opraveno csa_is_csacek_server(): nyní opravdu funguje přepisování URL na ostatní CSáček servery
  • csa_process_headers() - mirná optimalizace: nezpracovávej hlavičky, ktere stejně nebudou předány klientovi

* verze 2.0.6 (24.2.1999)

  • pokud není výstupní kódování určeno explicitně a hádá se, použije se iso-8859-2 pro klienty, kteří nespecifikovali podporované kódování a chtějí dokument v češtině
  • Apache: POST data se předávají korektně i v případě, že je vypnuté automatické překódování uživatelského vstupu do kódování serveru
  • opravena chyba v převodu do Unicode (UTF-8), kód mírně zoptimalizován
  • při převodu z windows-1250 do jiného kódování se převádí znaky copyright sign, trade mark sign a registered sign do příslušné HTML/textové podoby; do překódovacích tabulek přidána podpora pro znak multiplication sign
  • zoptimalizováno "hádání" uživatelem podporovaného kódování/jazyka (eliminován DNS lookup v případě, že se už z hlaviček uhodne podporovaný jazyk a znaková sada), kód pročištěn a zčitelněn
  • zoptimalizován kód pro úpravu URL
  • zrušen banner (byl to HTML komentář, který CSáček vpisoval do předávaných HTML dokumentů)
  • opravena poměrně stará chyba ve zpracování hlaviček vrácených sub-requestem - na jednom místě se kopírovalo o jeden znak méně než mělo, takže například hodnota hlavička
    Content-Type: text/html; charset=iso-8859-2
    se pochopila jako text/htm a dokument se pak vůbec nekonvertil
  • komprese: kosmetické změny inicializačního kódu, žádné funční změny
  • ošetření chyb klientů: MSIE 3.0 nepoužije "české", tj. CE fonty pro fonty explicitně definované pomocí tagu FONT, pokud dokument není ve windows-1250; CSáček nyní při převodu do jiného kódování než windows-1250 upravuje <FONT FACE=...> tak, aby obsahovalo nejdříve CE variantu
  • ošetření chyb klientů: MSIE 3.0 nezobrazí dokument, pokud tento má vyznačené kódování v hlavičkách a obsahuje tag <!DOCTYPE> s uvedeným URL na použité DTD; CSáček nyní to URL odstraňuje, aby to fungovalo i přes proxy

* verze 2.0.5 (15.11.1998)

  • patch release - stabilní verze, doufejme už poslední v řadě 2.0.X
  • porty: použití alloca(3) nyní portabilnější, CSáček nyní funguje i na systémech bez (fungujícího) alloca(3)
  • Apache: pod Apache 1.1 nyní modul funguje (v kódu se používal Apachem 1.1 nepodporovaný návratový kód 301 Moved Permanently)
  • (Fast)CGI: opraveno dublování hodnoty Content-Length při přeposílání POST dat
  • opraveno dublování znaku '=' v URL (chyba zavlečena při opravě chyby s rovnítkem při zpracování parametrů typu jméno=hodnota); při té příležistosti přepsán kód kolem do mnohem čitelnější podoby
  • CSáček lze nyní zkompilovat také pod AIX 4.2; získal jsem nový přístup na RS6000 stroj s AIXem, takže je to nyní jedna z podporovaných platforem
  • CSáček lze nyni zkompilovat i pod HP-UX (testováno na HP/UX 10.20 s K&R cc); bohužel nemám stálý přístup k systému s HP/UX

* verze 2.0.4 (30.10.1998)

  • patch release
  • jedna velmi (alespoň půl roku) stará chyba - při zpracování parametru CSáček příkazu ve tvaru jméno=hodnota se příkaz špatně rozeznal a neprovedl pokud hodnota nebylo v uvozovkách a obsahovalo rovnítko
  • aby se upravoval obsah HTML tagu META, A, BODY a FORM, musí být v dokumentu opravdu uvedeny jako HTML tag; předchozí implementace umožňovala, aby byly uvedeny i v HTML komentáři (<!-- a -->), což mohlo někdy vadit
  • Apache: opraven kód tak, aby modul opět fungoval i pod Apache 1.1
  • (Fast)CGI: při předávání dokumentu přímo ze souboru se špatně nastavil příznak, zda se jedná o HTML dokument - byl vždy false (má význam jen pro vypisování CSáček banneru)
  • přepisování URL nefungovalo korektně, pokud přepisované URL už obsahovalo CSáček a začínalo na csacekIgnorePrefix (defaultně /cgi-bin)
  • plain UNICODE opravy: odstraněna chyba při překódování do plain unicode (tj. klasického 2B zapisu); banner a URL při automatickém přepisu URL se nyní před vložením do výstupu překódují
  • úprava zacházení se seznamem CSáček serverů - pokud není u direktivy csacekServer zadán port, chápe se to jako kterýkoli port - má význam pro automatické přepisování URL
  • Netscape a komprese: v NC 4.5b2 je chyba, která způsobí, že za určitých okolností se místo dokumentu zobrazí prázdná stránka; tento problém se dá obejít například tak, že hlavička Via má délku jakéhokoli tokenu maximálně rovnu 60 bajtům
  • Apache: opraveno zacházení s hlavičkami Connection a Keep-Alive, téměř nikdy by nyní server neměl posílat klientovi požadavek o uzavření spojení při Keep-Alive (tj. Connection: close) ani při předávání dynamických dat
  • komprese: chybně se kompresovalo vše a ne jen text/html a text/plain; pod Apache toto "vše" znamená text/html, text/plain a dynamicky generovaná data; za určitých okolností se na začátek dat připsala inicializační hlavička komprese, ale obsah se nekompresoval --> data se pokazila
  • __LAMPACHARSET__ se nenahrazovalo správnou hodnotou, pokud se používalo implicitní kódování (tj. když URL bylo bez /toXXX)
  • Apache: modul nešlo použít pod Apache 1.3X (na jednom místě bylo použito table_get() místo ap_table_get())

* verze 2.0.3 (13.10.1998)

  • patch release
  • opravena chyba 2.0.2, kdy CSáček překódovával vše (a ne jen text/html a text/plain)
  • do seznamu nazvu kodovani přidáno "ISO Latin 1" a "ISO Latin 2" - to druhé je časté (defaultní ?) nastavení preferovaného jazyka v Lynxu
  • cstools & Apache: chyba v kódu měla za následek, že i řetězec pouze částečně odpovídající nazvu kódování se bral jako platný match; CSáček tak mohl zbytečně "ořezávat" URL před předáním requestu dále Apache rutinám a perfektně platné URL najednou nefungovalo
  • dokumentace: v části Historie u 2.0.2 přepsána do háčkované češtiny, dodán uzavírající </TT> tag
  • díky použití neinicializované proměnné se na některých architekturách/OS místo stránky jako HTML zobrazil dokument jako text spolu s částí hlaviček; nyní se vše zobrazuje korektně kdekoli

* verze 2.0.2 (11.9.1998)

  • patch release
  • definitivně (doufejme) opraveno zacyklení kódu starajícího se o "nadějné" zbytky řetězce začínajícího na "_" v pracovním bufferu
  • Netscape servery: "správné" jméno virtuálního serveru se získávalo z SERVER_URL; to může obsahovat i číslo portu, s čímž se nepočítalo; nyní se na analýzu SERVER_URL používá csa_parse_url()
  • Apache: Linux (a možná další OSy): kód předpokladal, ze rewind() udělá implicitní lseek() na začátek souboru, i když představa stdio o streamu je, že nebyl měněn - což vadí, protože se na několika místech zapisuje do souboru přes deskriptor (Apache kód, ne přímo CSáček) - výsledek byl, že na Linuxu se místo dokumentu vrátily špatné hlavičky a žádné tělo; nyní se místo rewind() volá lseek(), takže to funguje korektně všude (a ne jen na BSD systémech)
  • opraveno nefungující PART v případě, že jmeno CGI skriptu mělo příponu, nepatřící do PART - například .cgi nebo .exe (fatální na NT serverech jedoucích pod IIS)
  • cstools: opravena mapa x-mac-ce (prohozené I acute a I circumflex, špatný kód pro division sign) a cp852 (prohozené I acute a I circumflex); opraveno překódování UTF-->8bit kodování (kód nezvládal ciste 8bit znaky)
  • čistě implementována podpora HTTP/0.9, HTTP/0.9 klientům se nyní neposílají hlavičky
  • přidána podpora URL typu http:/path/, používané Mrkvosoftem (a podporovane také Netscape)
  • WNT: urychlení kompilace pod MSVC++ použitím speciálních konstant pro preprocesor
  • W32: distribuční Makefile a copy_csacek.bat nyní funguje také pod W95
  • Apache: CSáček je nyní defaultně _zapnutý_, tj. pokud nemá být aktivní, je ho třeba explicitně vypnout

* verze 2.0.1 (21.6.1998)

  • patch release
  • opraveno zacyklení při určitém výskytu retězce __ v dokumentu, problém s whichcode (vypisování provedených příkazů PART do výstupu), CGI CSáček lze nyní bez problémů zkompilovat při použití metody HTTP vyzvedávání dokumentu, __CHARSET_ se nyní nahrazuje správnou hodnotou i při implicitním hádání vystupního kodování
  • specialně je ošetřeno, jestli klient žádá o dokument pomocí HEAD a pokud ano, tělo se vůbec neposílá; Apache si to bohuzel neošetřuje (alespoň ne ve verzi 1.2.6)

* verze 2.0 (3.6.1998)

Během téměř osmiměsíční práce byl kód takřka kompletně přepsán a byla přidána podpora FastCGI a Apache. CSáček je možno bez problémů přeložit na NetBSD, Linuxu, Solarisu, IRIXu i MS Windows NT - a díky nasazení GNU autoconf by měl být CSáček bez větších problémů zkompilovatelný i na kterémkoli jiném modernějším Un*xu. CSáček nyní vždy posílá hlavičku Content-Length a pokud to klient zvládne, textové dokumenty kompresuje. Byla přidána podpora Unicode ve formě UTF-8. Je podporováno vyznačení kódování dokumentu pomocí tagu META. Příkazy CSáčku jsou nyní implementovány čistě, s použitím lexikálního analyzátoru. Mohou nyní být na několik řádků a může jich být na jednom řádku i víc. Je také možné, aby na jednom řádku byl příkaz a zároveň HTML text. Při tom všem CSáček funguje rychleji -- CGI CSáček 2.0b1 je přibližně 1.2x - 2x rychlejší než CSáček 1.3.5.

* verze 1.3.4 (listopad 1997)

  • patch release - jen opraveny chyby nalezené ve verzi 1.3.3
* verze 1.3.3 (červen 1997)
  • patch release - jen opraveny chyby nalezené ve verzi 1.3.2
  • označení verze přesunuto do samostatného souboru version.h
* verze 1.3.2 (únor-březen 1997)
  • CSáček byl plně naportován na NT
  • DECODEQUERY je nyní doporučená volba
  • opravena chyba, kdy se pri určitém tvaru příkazu BAR CSáček zacyklil
  • opravena chyba s připisováním znaku ^Q do QUERY_STRING při určité délce předaného QUERY_STRING
  • opravena chyba dealokace pole ve freecmdarr() (mohla se projevit u příkazů jako je např. PART, tj. těch, které mohou mít víc parametrů)
  • opravena chyba v connect_server() - špatné mapování adresy na IP adresu (projeví se pokud CSáček nebyl zkompilován s LOCALHOSTHACK)
  • při kompilaci je možno zadat seznam přípon označujících soubory, které se mají vždy kódovat metodou http
  • CSáček filtry byly odstraněny a nadále nejsou podporovány; pokud bude poptávka, snad se jednou zas objeví v jiné formě
  • RESTRICTDOMAINS a MULTIPART bylo sloučeno dohromady pod hlavičkou MULTIPART
  • je-li aktivní NOCODE, příkazy PART, DOMAIN se ignorují
  • byly rozšíženy možnosti definování lišty s nabídkou kódování přímo v dokumentu; lze dynamicky měnit hlavičku české i anglické verze, závěr a pojmenování linky na volbu pomocí whichcode
  • z CSáčku byl odstraněn kód, starající se o SSI; nechává se nyní zcela na straně serveru
  • volba NPH spolu se souvisejícím kódem je také minulostí
  • pokud požadované URL ukazuje na adresář a nekončí na /, CSáček klienta přesměruje na URL/
* verze 1.3.1 (únor 1996) - interní velmi chybová verze, nebyla dána veřejně k dispozici

* verze 1.3 (srpen-listopad 1996)

  • podpora SSI a shtml
  • možnost více defaultních souborů (tzn. souborů, které se poskytnou pokud se zadá jako požadovaný dokument jméno adresáře)
  • u kódovaných dokumentů předáván parametr "charset" u Content-type
  • podpora autorizace přístupu
  • zavedení CSáček filtrů
  • optimalizovány nároky na paměť - na mnoha místech odstraněny statické buffery, nahrazeny pointry a dynamickou alokací
  • animované GIFy zůstávají animované i po dokončení první smyčky
  • zjednodušena struktura funkcí, opraveno mnoho drobných chyb, nejdůležitější asi správný přenos obrázků, předávání správného statutu, fungující podpora metody POST a PUT, zpracování hlavičky If-Modified-Since, uděláno více "blbuvzdorné", všude kde se může vyskytnout chyba je detekována a ohlášena, a mnoho dalšího
  • možnost zjištění zakompilované konfigurace CSáčku (?csacek_report)

* verze 1.23 (začátek června 1996)

  • dost chybový, doporučuji když tak jen vybrat opravenou verzi cstools.h
  • podpora skriptů volaných metodou POST
  • lépe zachovává HTTP hlavičky
  • opraveno chybné překódovávání některých znaků
  • opraven whichcode.sl
* verze 1.22 (konec května 1996)
  • možnost nastavení (téměř) jakéhokoli tvaru automaticky generované lišty s nabídkou kódování přímo v dokumentu
  • podpora vícejazyčných dokumentů - možnost mít v jednom dokumentu víc různých částí a dynamicky vybírat, které zobrazit
* verze 1.21 (konec května 1996)
  • součástí automaticky generované lišty s nabídkou kódování může být i možnost přepnout kódování pomocí původního whichcode.
  • opraveno špatné používání metody FILE (koliduje s definicí FILE ve stdio.h); názvy metod jsou nyní opět malými písmeny
* verze 1.2 (konec května 1996)
  • automatické vložení lišty s nabídkou kódování
  • kódovací tabulky rozšířeny o většinu ostatních znaků s diakritikou (i např. a se stříškou apod.)
  • opraven whichcode.src, aby vytvořený whichcode byl zpracovatelný i bashem
* verze 1.1 (květen 1996)
  • opraveno špatné nahrazování řetězce __CHARSET__ při metodě http
  • kódovací tabulky rozšířeny o slovenské znaky
  • chybové hlášky jsou "systémovější" - v hlavičce vrací (po vzoru SaCzechu 2.1) i Status s platným kódem.
  • __CHARSET__ rozpoznáván i v HTML hlavičkách při metodě http (umožňuje zachování kódu i v obrázcích s klikou)
  • lze překódovat i parametry, zadané programu (obsah proměnné QUERY_STRING)
  • zdokonaleno rozhodování, která metoda se má použít při guess tak, že metoda http se použije i tehdy, když požadované URL obsahuje CGISUFFIX.
* verze 1.0 (květen 1996)
  • možnost získávat kódované dokumenty prostřednictvím HTTP
  • podpora HTTP hlaviček Last-Modified, Content-Size a If-Modified-Since při zpracování souborů
  • možnost opatřit konverzní sadu příponou (např. .cgi) pokud to systém vyžaduje
  • při metodě HTTP nebo GUESS je volanému skriptu předáván i dotaz (QUERY_STRING)
  • korektní chování při chybně zadaném URL (neexistující soubor)
  • je možno používat více jmen kódů (aliasy)
  • součástí distribuce je which.src s příklady kódů

[Zpet] Zpět


This page is part of documentation of C-SaCzech. It has been created and is maintained by Jaromír Doleček, dolecek@sky.cz
$Id: historie.html,v 1.2 2002/03/10 20:03:31 dolecek Exp $