Re: Solaris build fixes
Kalle Olavi Niemitalo <[email protected]>
| Newsgroups | gmane.comp.web.links |
|---|---|
| Message-ID | <[email protected]> |
John Hawkinson <[email protected]> writes: > Kalle Olavi Niemitalo <[email protected]> wrote on Sun, 3 Jun 2007 > at 10:48:09 +0300 in <[email protected]>: > >> Have you tested the resulting binary, especially with slow sites >> and Transfer-Encoding: chunked? > > I have not...do you have a good test case? ----------------------------------------------------------------- #! /usr/bin/perl use strict; use IPC::Open2; print <<EOH; Content-Type: text/plain Content-Encoding: gzip EOH local $| = 1; open PLAIN, "<", "/home/Kalle/src/elinks-0.12/COPYING" or die; my $pid = open2(\*GZIP, "<&PLAIN", "gzip -1"); local $/ = \4567; while (<GZIP>) { print; sleep 1 } ----------------------------------------------------------------- md5sum: 759ed239c8364afc037c8ab486b55f1f COPYING If I comment out the gzclearerr call in gzip_read, the output is truncated after "that is to say, a work". With different input files, ELinks can display garbage too. No such problems in ELinks 0.11.3. > Would it be sufficient to call clearerr() on the fd that > gzip_open() was called with? I guess it would be hairy to save > the fd. clearerr() needs a FILE *, not a file descriptor. And gzip_open() calls fdopen() itself, so ELinks never sees the FILE *. There is no function in zlib for retrieving the pointer, either. So then, there seem to be four options: (a) Just skip gzclearerr and ignore the resulting corruption. This would be a regression from 0.11.3. (b) Revert all the decompression changes from elinks-0.12, returning to what was in ELinks 0.11.3. (c) Partially or completely disable gzip decompression on platforms that don't have gzclearerr. Document that ELinks needs at least zlib 1.2.0.2 for full support. (d) Rewrite the decompression code or at least the gzip part of it. I don't have an estimate on how long this would take. It would be too easy to slip in new bugs in this process. I think it would be best to do (c) in 0.12.GIT and (d) in 0.13.GIT. _______________________________________________ elinks-dev mailing list [email protected] http://linuxfromscratch.org/mailman/listinfo/elinks-dev
signature.asc
(application/pgp-signature, 188 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFGZISSHm9IGt60eMgRArqvAJ4gzSaJx1O+s2Ds2ghHR7Ld9cfSQwCeN/Bq t0P4h82zlp/QnOZtkMR3SGI= =pw5Y -----END PGP SIGNATURE-----