Re: mod_perl2: 304 (not modified) and custom headers

Adam Prime <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Please send your responses to the list, not just me.

It looks like this was broken in apache itself prior to 2.2.0. see: 
https://issues.apache.org/bugzilla/show_bug.cgi?id=18388

Your bug report doesn't include your apache version though, so i'm not 
sure that this is related to your problem or not. I don't have a box 
around with a recent setup to test against at the moment.

Adam



On 14-11-12 12:47 PM, Alexandr Evstigneev wrote:
> Made a test script:
>
> =============================
> #!/usr/bin/perl
>
> use Apache2::RequestUtil;
>
> my $request = Apache2::RequestUtil->request;
>
> $request->headers_out->add('Testheader' => 'Testvalue');
> $request->err_headers_out->add('TestheaderErr' => 'TestvalueErr');
>
> $request->status(304);
> return 304;
> ===============================
> Returned this:
>
> HTTP/1.1 304 Not Modified
> Date: Wed, 12 Nov 2014 17:45:55 GMT
> Server: Apache
> Connection: Keep-Alive
> Keep-Alive: timeout=30
>
>
> 2014-11-12 19:45 GMT+03:00 Adam Prime <[email protected]
> <mailto:[email protected]>>:
>
>     Can we see the code you're running into this issue with?  It sounds
>     like confusion between $r->headers_out and $r->err_headers_out to me.
>
>     Adam
>
>
>     On 14-11-12 05:09 AM, Alexandr Evstigneev wrote:
>
>         1. Problem Description:
>
>         It seems, that if I set status to 304, all custom headers being
>         ignored
>         and not sent to to the client.
>         I'm making cross-domain ajax script and it should pass
>         Access-Control-Allow-Origin even on 304 response.
>         Works fine if data been modified but 304 response has no my headers.
>
>         2. Used Components and their Configuration:
>
>         *** mod_perl version 2.000008
>
>         *** using
>         /usr/local/lib/perl5/site___perl/5.20/mach/Apache2/__BuildConfig.pm
>
>         *** Makefile.PL options:
>             MP_APR_CONFIG  => /usr/local/bin/apr-1-config
>             MP_APR_LIB     => aprext
>             MP_APXS        => /usr/local/sbin/apxs
>             MP_COMPAT_1X   => 1
>             MP_GENERATE_XS => 1
>             MP_LIBNAME     => mod_perl
>             MP_USE_DSO     => 1
>
>
>         *** The httpd binary was not found
>
>
>         *** (apr|apu)-config linking info
>
>            -L/usr/local/lib -laprutil-1  -ldb-5.3 -lgdbm  -lexpat -liconv
>         -L/usr/lib -L/usr/local/lib -L/usr/local/lib/db5
>            -L/usr/local/lib -lapr-1 -lcrypt  -lpthread
>
>
>
>         *** /usr/local/bin/perl -V
>         Summary of my perl5 (revision 5 version 20 subversion 1)
>         configuration:
>
>             Platform:
>               osname=freebsd, osvers=9.3-release-p4,
>         archname=amd64-freebsd-thread-__multi
>               uname='freebsd storage.cobweb-software.com
>         <http://storage.cobweb-software.com>
>         <http://storage.cobweb-__software.com/
>         <http://storage.cobweb-software.com/>> 9.3-release-p4 freebsd
>
>         9.3-release-p4 #0 r273928: sat nov 1 17:16:18 msk 2014
>         [email protected].__com:usrobjusrsrcsysgeneric amd64 '
>               config_args='-sde -Dprefix=/usr/local
>         -Darchlib=/usr/local/lib/__perl5/5.20/mach
>         -Dprivlib=/usr/local/lib/__perl5/5.20
>         -Dman3dir=/usr/local/lib/__perl5/5.20/perl/man/man3
>         -Dman1dir=/usr/local/man/man1
>         -Dsitearch=/usr/local/lib/__perl5/site_perl/5.20/mach
>         -Dsitelib=/usr/local/lib/__perl5/site_perl/5.20
>         -Dscriptdir=/usr/local/bin
>         -Dsiteman3dir=/usr/local/lib/__perl5/5.20/man/man3
>         -Dsiteman1dir=/usr/local/man/__man1 -Ui_malloc -Ui_iconv
>         -Uinstallusrbinperl -Dcc=cc -Duseshrplib -Dinc_version_list=none
>         -Dccflags=-DAPPLLIB_EXP="/usr/__local/lib/perl5/5.20/BSDPAN"
>         -Doptimize=-g
>         -DDEBUGGING -Ui_gdbm -Dusemultiplicity=y -Duse64bitint
>         -Dusethreads=y
>         -Dusemymalloc=n'
>               hint=recommended, useposix=true, d_sigaction=define
>               useithreads=define, usemultiplicity=define
>               use64bitint=define, use64bitall=define, uselongdouble=undef
>               usemymalloc=n, bincompat5005=undef
>             Compiler:
>               cc='cc', ccflags
>         ='-DAPPLLIB_EXP="/usr/local/__lib/perl5/5.20/BSDPAN"
>         -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING
>         -fno-strict-aliasing
>         -pipe -fstack-protector -I/usr/local/include',
>               optimize='-g',
>               cppflags='-DAPPLLIB_EXP="/usr/__local/lib/perl5/5.20/BSDPAN"
>         -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DDEBUGGING
>         -fno-strict-aliasing
>         -pipe -fstack-protector -I/usr/local/include'
>               ccversion='', gccversion='4.2.1 20070831 patched [FreeBSD]',
>         gccosandvers=''
>               intsize=4, longsize=8, ptrsize=8, doublesize=8,
>         byteorder=12345678
>               d_longlong=define, longlongsize=8, d_longdbl=define,
>         longdblsize=16
>               ivtype='long', ivsize=8, nvtype='double', nvsize=8,
>         Off_t='off_t',
>         lseeksize=8
>               alignbytes=8, prototype=define
>             Linker and Libraries:
>               ld='cc', ldflags ='-pthread -Wl,-E  -fstack-protector
>         -L/usr/local/lib'
>               libpth=/usr/lib /usr/local/lib /usr/include/gcc/4.2 /usr/lib
>               libs=-lgdbm -lm -lcrypt -lutil
>               perllibs=-lm -lcrypt -lutil
>               libc=, so=so, useshrplib=true, libperl=libperl.so
>               gnulibc_version=''
>             Dynamic Linking:
>               dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='
>            -Wl,-R/usr/local/lib/perl5/5.__20/mach/CORE'
>               cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib
>         -fstack-protector'
>
>
>         Characteristics of this binary (from libperl):
>             Compile-time options: DEBUGGING HAS_TIMES MULTIPLICITY
>         PERLIO_LAYERS
>                                   PERL_DONT_CREATE_GVSV
>                                   PERL_HASH_FUNC_ONE_AT_A_TIME___HARD
>                                   PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
>                                   PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
>                                   PERL_TRACK_MEMPOOL USE_64_BIT_ALL
>         USE_64_BIT_INT
>                                   USE_ITHREADS USE_LARGE_FILES USE_LOCALE
>                                   USE_LOCALE_COLLATE USE_LOCALE_CTYPE
>                                   USE_LOCALE_NUMERIC USE_PERLIO
>         USE_PERL_ATOF
>                                   USE_REENTRANT_API
>             Built under freebsd
>             Compiled at Nov  9 2014 08:27:44
>             %ENV:
>               PERL5LIB="/raid/www/lib"
>               PERL_LWP_USE_HTTP_10="1"
>             @INC:
>               /raid/www/lib
>               /usr/local/lib/perl5/5.20/__BSDPAN
>               /usr/local/lib/perl5/site___perl/5.20/mach
>               /usr/local/lib/perl5/site___perl/5.20
>               /usr/local/lib/perl5/5.20/mach
>               /usr/local/lib/perl5/5.20
>               .
>
>         *** Packages of interest status:
>
>         Apache2            : -
>         Apache2::Request   : -
>         CGI                : 3.65
>         ExtUtils::MakeMaker: 6.98, 6.98
>         LWP                : 6.08
>         mod_perl           : -
>         mod_perl2          : 2.000008
>
>
>         3. This is the core dump trace: (if you get a core dump):
>
>             [CORE TRACE COMES HERE]
>
>         This report was generated by /usr/local/bin/mp2bug on Wed Nov 12
>         09:51:30 2014 GMT.
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.