Nov 16

POSTDATA mit mod_perl im Falle von chunked Posts

Allgemein, Linux, Work Kommentare deaktiviert für POSTDATA mit mod_perl im Falle von chunked Posts

Eure modperl2-Scripte verschlucken im Legacy-Mode (CGI-Emulation) POSTDATA wenn der Client den Payload mit “Transfer-Encoding: chunked” abkippt und ihr diesen per “my $payload=$cgi->param(‘POSTDATA’)” einsammelt?

Probiert mal folgendes: ($r ist das Apache::RequestRec-Object, dass Ihr per “shift” am Anfang des Scripts einsammelt könnt)

        my $content = '';
        my $cnt=0;
        my $offset=0;
        do {
                $cnt = $r->read($content,8192,$offset);
                $offset += $cnt;
        } while($cnt > 0);
									

Bei mir hats geholfen. Wenn man den Payload per read einsammelt, dann “dechunked” mod/perl den Kram automagisch.

Tagged with:
preload preload preload