Net::HTTP does not allow buffer size to be overridden in subclass [rt.cpan.org #25069]
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- perl
- Ambito
- networking
Direzione di ricerca
Inizia tracciando read_response_headers() attraverso my_readline() e la chiamata a sysread() descritta nell’issue, inclusa la dimensione codificata staticamente di 1024 byte. Il lavoro è completato quando la dimensione del buffer può essere configurata oppure l’helper di lettura può essere sovrascritto in modo pulito da una sottoclasse senza duplicare read_response_headers().
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Migrated from rt.cpan.org#25069 (status was 'open')
Requestors:
From [email protected] on 2007-02-21 22:00:19:
In Net::HTTP, read_response_headers() uses the function my_readline() to do it's dirty-work.
Under the hood, my_readline() calls sysread() with a HARD-CODED size of 1024. Ideally, this
should be an option, or otherwise parameterized. Alternately, it would make sense to
replace my_readline() in a subclass, but this is impossible since it is called as a function. One
would need to replace read_response_headers() entirely in a subclass if one wanted to
change the behavior here (to capture a larger buffer in the first read, cutting down on
latency.) Alternately, one could redefine the my_readline() function. The last two options are
terrible designs, since they involve cloning the existing code and replacing only a small bit,
and may result in future incompatibilities.
my $n = $self->sysread($_, 1024, length);
I suggest you expose or otherwise parameterize this currently hard-coded value.
Here is my current (nasty) workaround in a subclass:
package MyNetHTTP;
use base 'Net::HTTP';
sub my_sysread {
my $self = shift;
$_[1] = $READ_BUFFER_LENGTH;
$self->SUPER::sysread(@_);
}
sub read_response_headers {
my $self = shift;
local *sysread = *my_sysread;
$self->SUPER::read_response_headers( @_ );
}
From [email protected] on 2017-01-25 21:40:44:
migrated queues: libwww-perl -> Net-HTTP
- Lingua principale
- Perl
- Stelle
- 20
- Fork
- 27
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di libwww-perl/Net-HTTP
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
libwww-perl/Net-HTTP#99 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
libwww-perl/Net-HTTP#95 ·
-
t/live.t may failAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
libwww-perl/Net-HTTP#87 · 2 commenti ·
-
Improve error messageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
libwww-perl/Net-HTTP#79 · 6 commenti ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 48/100
libwww-perl/Net-HTTP#74 ·
Tutte le issue di libwww-perl/Net-HTTP
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 3 giorni
-
documentation Needs Triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 93/100
I maintainer di solito rispondono entro 1 giorno
-
Proposed Text EditsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
curl/everything-curl#658 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
PDLPorters/pdl#561 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
objectionary/eolang.sty#197 ·
I maintainer di solito rispondono entro 2 giorni