Bug report for Apache httpd-1.3 [2004/04/25]

2004-04-25 Thread bugzilla
+---+
| Bugzilla Bug ID   |
| +-+
| | Status: UNC=Unconfirmed NEW=New ASS=Assigned|
| | OPN=ReopenedVER=Verified(Skipped Closed/Resolved)   |
| |   +-+
| |   | Severity: BLK=Blocker CRI=CriticalMAJ=Major |
| |   |   MIN=Minor   NOR=Normal  ENH=Enhancement   |
| |   |   +-+
| |   |   | Date Posted |
| |   |   |  +--+
| |   |   |  | Description  |
| |   |   |  |  |
| 7741|New|Nor|2002-04-04|some directives may be placed outside of proper co|
| 7982|New|Maj|2002-04-11|mod_rewrite URL string empty when passed unicoded |
| 8311|Opn|Nor|2002-04-19|error in PUT directive gives confusing error messa|
| 8329|New|Nor|2002-04-20|mime_magic gives 500 and no error_log on Microsoft|
| 8372|Ass|Nor|2002-04-22|Threadsaftey issue in Rewrite's cache [Win32/OS2/N|
| 8849|New|Nor|2002-05-07|make install errors as root on NFS shares |
| 8882|New|Enh|2002-05-07|[PATCH] mod_rewrite communicates with external rew|
| 9037|New|Min|2002-05-13|Slow performance when acessing an unresolved IP ad|
| 9126|New|Blk|2002-05-15|68k-next-openstep v. 4.0  |
| 9726|New|Min|2002-06-09|Double quotes should be flagged as T_HTTP_TOKEN_ST|
| 9894|New|Maj|2002-06-16|getline sub in support progs collides with existin|
| |New|Nor|2002-06-19|Incorrect default manualdir value with layout.|
|10038|New|Min|2002-06-20|ab benchmaker hangs on 10K https URLs with keepali|
|10073|New|Maj|2002-06-20|upgrade from 1.3.24 to 1.3.26 breaks include direc|
|10169|New|Nor|2002-06-24|Apache seg faults due to attempt to access out of |
|10178|New|Maj|2002-06-24|Proxy server cuts off begining of buffer when spec|
|10195|New|Nor|2002-06-24|Configure script erroneously detects system Expat |
|10199|New|Nor|2002-06-24|Configure can't handle directory names with unders|
|10243|New|Maj|2002-06-26|CGI scripts not getting POST data |
|10354|New|Nor|2002-06-30|ErrorDocument(.htaccess) fails when passed URL wit|
|10470|New|Cri|2002-07-04|proxy module will not correctly serve mixed case f|
|10666|New|Enh|2002-07-10|line-end comment error message missing file name  |
|10744|New|Nor|2002-07-12|suexec might fail to open log file|
|10747|New|Maj|2002-07-12|ftp SIZE command and 'smart' ftp servers results i|
|10760|New|Maj|2002-07-12|empty ftp directory listings from cached ftp direc|
|10890|New|Cri|2002-07-17|if et locale is used, configure fails   |
|10939|New|Maj|2002-07-18|directory listing errors  |
|11020|New|Maj|2002-07-21|APXS only recognise tests made by ./configure |
|11236|New|Min|2002-07-27|Possible Log exhaustion bug?  |
|11265|New|Blk|2002-07-29|mod_rewrite fails to encode special characters|
|11765|New|Nor|2002-08-16|.apaci.install.tmp installs in existing httpd.conf|
|11986|New|Nor|2002-08-23|Restart hangs when piping logs on rotation log pro|
|11993|Opn|Cri|2002-08-23|PDFs served through ProxyPass show up blank   |
|12096|New|Nor|2002-08-27|apxs does not handle binary dists installed at non|
|12391|New|Maj|2002-09-07|DBM_LIB should be blank for OS X 10.2 |
|12551|New|Nor|2002-09-11|mod_proxy fails to shutdown when client cancels   |
|12574|New|Nor|2002-09-12|Broken images comes from mod_proxy when caching ww|
|12583|New|Nor|2002-09-12|First piped log process do not handle SIGTERM |
|12598|New|Maj|2002-09-12|Apache hanging in Keepalive State |
|13120|New|Cri|2002-09-29|CGI procs defunctioning   |
|13188|New|Nor|2002-10-02|does not configure correctly for hppa64-hp-hpux11.|
|13274|Ass|Nor|2002-10-04|Subsequent requests are destroyed by the request e|
|13577|New|Nor|2002-10-13|mod_proxy mangles query string|
|13607|Opn|Enh|2002-10-14|Catch-all enhancement for vhost_alias?|
|13687|New|Min|2002-10-16|Leave Debug symbol on Darwin  |
|13822|New|Maj|2002-10-21|Problem while running Perl modules accessing CGI::|
|14031|New|Nor|2002-10-29|POST handling for multi part forms incorrect  |
|14095|Opn|Nor|2002-10-30|Change default Content-Type (DefaultType) in defau|
|14250|New|Maj|2002-11-05|Alternate UserDirs don't work intermittantly  |
|14358|New|Enh|2002-11-07|rotatelogs using TZ settings  |
|14443|New|Maj|2002-11-11|Keep-Alive randomly causes TCP RSTs   |

Bug report for Apache httpd-2.0 [2004/04/25]

2004-04-25 Thread bugzilla
+---+
| Bugzilla Bug ID   |
| +-+
| | Status: UNC=Unconfirmed NEW=New ASS=Assigned|
| | OPN=ReopenedVER=Verified(Skipped Closed/Resolved)   |
| |   +-+
| |   | Severity: BLK=Blocker CRI=CriticalMAJ=Major |
| |   |   MIN=Minor   NOR=Normal  ENH=Enhancement   |
| |   |   +-+
| |   |   | Date Posted |
| |   |   |  +--+
| |   |   |  | Description  |
| |   |   |  |  |
| 7483|Ass|Enh|2002-03-26|Add FileAction directive to assign a cgi interpret|
| 7862|New|Enh|2002-04-09|suexec never log a group name.|
| 8167|New|Min|2002-04-16|--with-module does not build MODULE_DIRS correctly|
| 8483|Opn|Min|2002-04-24|apache_2.0 .msi installer breaks .log and .conf fi|
| 8500|Ass|Cri|2002-04-25|authorization user does not logged|
| 8713|New|Min|2002-05-01|No Errorlog on PROPFIND/Depth:Infinity|
| 8867|Opn|Cri|2002-05-07|exports.c generation fails when using a symlink to|
| 8880|New|Enh|2002-05-07|AcceptPathInfo does not apply to DirectoryIndex fi|
| 8925|New|Cri|2002-05-09|Service Install (win32 .msi/.exe) fails for port i|
| 8993|Opn|Nor|2002-05-10|openssl library location(s) are hardcoded in confi|
| 9046|New|Min|2002-05-13|Cleaned up PNG/MNG converted icons|
| 9484|New|Enh|2002-05-29|Dynamic ServerAdmin configuration |
| 9513|Opn|Nor|2002-05-30|Missing start menu items  |
| 9656|New|Nor|2002-06-06|Support of FTP Proxy only partially documented|
| 9727|New|Min|2002-06-09|Double quotes should be flagged as T_HTTP_TOKEN_ST|
| 9945|New|Enh|2002-06-18|[PATCH] new funtionality for apache bench |
|10114|Ass|Enh|2002-06-21|Negotiation gives no weight to order, only q value|
|10154|Ass|Nor|2002-06-23|ApacheMonitor interferes with service uninstall/re|
|10575|New|Enh|2002-07-09|no option to autoindex auth protected files/folder|
|10598|Opn|Nor|2002-07-09|Apache will break down files bigger than 64KB |
|10722|New|Nor|2002-07-12|ProxyPassReverse doesn't change cookie paths  |
|10775|Ass|Cri|2002-07-13|SCRIPT_NAME wrong value   |
|11000|New|Enh|2002-07-20|Mutex permission problems: configuration template |
|11035|New|Min|2002-07-22|Apache adds double entries to headers generated by|
|11259|New|Enh|2002-07-29|'make install' should provide a deinstaller   |
|11294|New|Enh|2002-07-30|desired vhost_alias option|
|11331|New|Cri|2002-07-31|stale cgi process entries when using suexec   |
|11427|Opn|Maj|2002-08-02|Possible Memory Leak in CGI script invocation |
|11514|New|Maj|2002-08-07|worker MPM stalls on UnixWare 7.11|
|11521|New|Nor|2002-08-07|Addition of  Japanese error message   |
|11540|New|Nor|2002-08-07|ProxyTimeout ignored  |
|11580|Opn|Enh|2002-08-09|generate Content-Location headers |
|11660|New|Enh|2002-08-13|a New Hebrew Translation for Test Page for Apache|
|11960|New|Maj|2002-08-23|Apache default config doesn't include uk langauge |
|12033|Opn|Nor|2002-08-26|Graceful restart immidiately result in [warn] long|
|12187|Opn|Blk|2002-08-30|Standard config with perchild; Apache is blocked  |
|12340|Opn|Nor|2002-09-05|WindowsXP proxy, child process exited with status |
|12355|Opn|Nor|2002-09-06|SSLVerifyClient directive in location make post to|
|12426|Ass|Nor|2002-09-09|mod_proxy broken under high load ?|
|12625|New|Enh|2002-09-13|[PATCH] Restoration of mod_ssl compatibility env v|
|12680|New|Enh|2002-09-16|Digest authentication with integrity protection   |
|12885|New|Enh|2002-09-20|windows 2000 build information: mod_ssl, bison, et|
|12894|New|Nor|2002-09-21|not assuming the DEFAULTTYPE for PHP files without|
|12981|New|Nor|2002-09-25|Apache Bench can't take binary post data  |
|13029|New|Nor|2002-09-26|failure to generate StdEnvVars depending on charse|
|13101|New|Cri|2002-09-27|Using mod_ext_filter with mod_proxy and http/1.1 c|
|13272|Opn|Nor|2002-10-04|Documentation doesn't mention that SSL is not in b|
|13328|New|Nor|2002-10-05|Apache kills processgroup.|
|13343|New|Maj|2002-10-06|Apache2 dies if signal HUP is sent to master proce|
|13368|New|Maj|2002-10-07|IIS prevents Apache from starting (missing -w opti|
|13507|New|Enh|2002-10-10|capturing stderr from mod_cgi |

Re: mod_proxy distinguish cookies?

2004-04-25 Thread Igor Sysoev
On Sat, 24 Apr 2004, Neil Gunton wrote:

 Neil Gunton wrote:
 
  Hi all,
 
  I apologise in advance if this is obvious or otherwise been answered
  elsewhere, but I can't seem to find any reference to it.
 
  I am using Apache 1.3.29 with mod_perl, on Linux 2.4. I am running
  mod_proxy as a caching reverse proxy front end, and mod_perl on the
  backend. This works really well, but I have noticed that mod_proxy does
  not seem to be able to distinguish requests as being different if the
  URLs are the same, but they contain different cookies. I would like to
  be able to enable more personalization on my site, which would best be
  done using cookies. The problem is that when a page has an expiration
  greater than 'now', then any request to the same URL will get the cache
  version, even if the requests have different cookies. Currently I have
  to pass options around as part of the URL in order to make the requests
  look different to mod_proxy.
 
  Am I missing something here? Or, will this be included in either future
  versions of mod_proxy or the equivalent module in Apache 2.x? Any
  insights greatly appreciated.

 I should perhaps make clear that I do have cookies working through the
 proxy just fine, for pages that are set to be 'no-cache'. So this isn't
 an issue with the proxy being able to pass cookies to/from the backend
 and browser (which I think I have seen mentioned before as a bugfix),
 but rather with mod_proxy simply being able to distinguish otherwise
 identical URL requests that have different cookies, and cache those as
 different requests.

 So for example, the request GET /somedir/somepage.html?xxx=yyy passed
 with a cookie that value 'pics=small' should be seen as different from
 another identical request, but with cookie value 'pics=large'. Currently
 my tests indicate that mod_proxy returns the same cached page for each
 request.

 I assume that mod_proxy only checks the actual request string, and not
 the HTTP header which contains the cookie.

 Obviously, under this scheme, if you were using cookies to track
 sessions then all requests would get passed to the backend server - so,
 perhaps it would be a nice additional feature to be able to configure,
 through httpd.conf, how mod_proxy (or its successor) pays attention to
 cookies. For example, you might say something to the effect of ignore
 this cookie or differentiate requests using this cookie. Then we
 could have sitewide options like e.g. 'pics' (to set what size pictures
 are shown), and this could be used to distinguish cached pages, but
 other cookies might be ignored on some pages. This would allow for more
 flexibility, with some cached pages being sensitive to cookies, while
 others are not. An obvious way this would be useful is in the use of
 login cookies. These will be passed in by the browser for every page on
 the site, but this doesn't mean we want to distinguish cached pages
 based on it for every page. Some user-specific pages would have
 'no-cache' set, while other pages could be set to ignore this login
 cookie, thus gaining the benefits of the proxy caching. This would be
 useful for pages that have no user-specific or personalizable aspects -
 they could be cached regardless of who is logged in.

 Sorry if this wasn't clear from the original post, just wanted to
 clarify and expand... any advice on this would be VERY welcomed, since
 my options with personalization are currently rather limited.

 Also, if this is actually addressed to the wrong list for some reason
 then a pointer would be much appreciated...

mod_accel ( http://sysoev.ru/en/ ) allows to take cookies into account while
caching:

AccelCacheCookie  some_cookie_name another_cookie_name

You can set it on per-location basis.

Besides, my upcoming light-weight http and reverse proxy server nginx
will allow to do it too.


Igor Sysoev
http://sysoev.ru/en/


Re: [PATCH] RFC: Allow modification/deletion of specific headers in apr_table_t

2004-04-25 Thread Brian Pane
On Apr 21, 2004, at 9:11 AM, Sumeet Singh wrote:

Hi,
  In my use-case I am dealing with multiple headers with the same key 
(e.g. Cookie), and need to modify or remove a specific header based on 
its key and value (e.g. remove a certain cookie header while leaving 
the rest in). There is no api in apr_tables that would allow me to 
remove a given header instance. apr_table_unset will remove all 
cookies. And I can't have my code remove a header from the 
apr_array_table_t array because that will render the internal hash 
index incorrect. Secondly, eventhough I can modify the value of a 
specific header by iterating over the apr_array_header_t, that would 
be inefficient because I wouldn't be able to use the internal 
index_first and index_last values. Therefore I have written three 
functions (patch files attached) and am hoping that the powers-that-be 
will be willing to review and roll them into the APR codeline.

1) apr_table_set_one (apr_table_t *t, const char *key, const char 
*oldVal, const char *newVal)
  replaces value of header key and value oldVal with value 
newVal. If oldVal is null, then the first occurance of the header 
is replaces (this is an optimization for situations where we know that 
only one header exists and don't care about its current value). If the 
header is not found, then it behaves like apr_table_add.
I finally got a chance to read  through the patch.  The code makes 
sense, but I
have a question: will apr_table_set_one and apr_table_unset_one provide
all the functionality you need?

Using Cookie and Set-Cookie  headers as an example, it seems like an 
exact
match on the oldVal wouldn't be sufficient.  If your response headers 
include
something like this:
  Content-Type; text/html
  Set-Cookie: userID=1; max-age=86400; domain=.example.com
  Cache-Control: private
  Set-Cookie: sessionID=54321; max-age=1800; domain=.example.com
and you want to change or remove the userID cookie, it's a lot easier
to do a prefix match on userID= than on the entire value of that table
entry.  (If that table entry was set by some other module, we may not
know what the full value of that entry is.)

In the general case, an application might need to:
  1. iterate through all the elements in a table that match a given key,
  2. selectively modify the value of one or more of the matching
 elements, or delete one or more of the matching elements,
  3. and optionally stop iterating based on some application-defined
 criteria.
This sounds a lot like apr_table_do, except that apr_table_do
doesn't allow modification of the table elements.
If there were a variant of apr_table_do that allowed  modification
of the value (but not the key) of visited elements, and the deletion
of visited elements, would that work  for your application?
Brian



Proposal: AP_FTYPE_PREPROCESS

2004-04-25 Thread Nick Kew

Content-transforming filters are a major and increasingly-popular
application of Apache, and serve many purposes.  Implementing
major functionality in an output filter rather than a handler
has the great advantage of making it re-usable with different
handlers, including mod_proxy.

The place for such filters is of course AP_FTYPE_RESOURCE.
But they may often require a pre-processing step.  My recent update
to mod_deflate provides a filter to decompress gzipped content for
manipulation by a content-transforming filter.  In the context
of a proxy, this pre-processing can only happen in an output
filter.  I hacked this in mod_deflate by declaring the gunzip
filter as of AP_FTYPE_RESOURCE-1.

There are many similar situations.  My own work in progress includes
decoding image formats for an image processing filter, and is
likely to include an error-recovering iconv filter to ensure
graceful recovery when proxying content containing bogus characters
through a markup filter.

Rather than use hacks like AP_FTYPE_RESOURCE-1, would it not be
better to introduce a new output filter type AP_FTYPE_PREPROCESS
below RESOURCE for this kind of application?


-- 
Nick Kew

Nick's manifesto: http://www.htmlhelp.com/~nick/


Exception handling and MPMs

2004-04-25 Thread Nick Kew

I'm writing a jpeg module, using libjpeg to implement cjpeg/djpeg filters.

Looking at error handling, I find that libjpeg by default exits on
fatal error.  This can be overridden with a setjmp/longjmp construct.

However, I seriously doubt setjmp/longjmp is safe with threaded MPMs,
and there's no apr_setjmp.  So that's not an attractive option.

It seems that other libraries inherit this behaviour.  For example,
gd does both the above, and is harder to override than libjpeg,
so that doesn't help.

An alternative might be to use C++ try/catch, with a throw()
in the fatal-error handler.  This seems to offer the compiler
more scope for generating thread-safe code than setjmp/longjmp,
but I really don't know if that's wishful thinking ...

Where do I stand using either setjmp/longjmp or try/throw/catch
with different MPMs?


-- 
Nick Kew

Nick's manifesto: http://www.htmlhelp.com/~nick/


Re: [PATCH] RFC: Allow modification/deletion of specific headers in apr_table_t

2004-04-25 Thread Sumeet Singh
Brian Pane wrote:

On Apr 21, 2004, at 9:11 AM, Sumeet Singh wrote:

Hi,
  In my use-case I am dealing with multiple headers with the same key 
(e.g. Cookie), and need to modify or remove a specific header based 
on its key and value (e.g. remove a certain cookie header while 
leaving the rest in). There is no api in apr_tables that would allow 
me to remove a given header instance. apr_table_unset will remove all 
cookies. And I can't have my code remove a header from the 
apr_array_table_t array because that will render the internal hash 
index incorrect. Secondly, eventhough I can modify the value of a 
specific header by iterating over the apr_array_header_t, that would 
be inefficient because I wouldn't be able to use the internal 
index_first and index_last values. Therefore I have written three 
functions (patch files attached) and am hoping that the 
powers-that-be will be willing to review and roll them into the APR 
codeline.

1) apr_table_set_one (apr_table_t *t, const char *key, const char 
*oldVal, const char *newVal)
  replaces value of header key and value oldVal with value 
newVal. If oldVal is null, then the first occurance of the header 
is replaces (this is an optimization for situations where we know 
that only one header exists and don't care about its current value). 
If the header is not found, then it behaves like apr_table_add.


I finally got a chance to read  through the patch.  The code makes 
sense, but I
have a question: will apr_table_set_one and apr_table_unset_one provide
all the functionality you need?

Using Cookie and Set-Cookie  headers as an example, it seems like an 
exact
match on the oldVal wouldn't be sufficient.  If your response headers 
include
something like this:
  Content-Type; text/html
  Set-Cookie: userID=1; max-age=86400; domain=.example.com
  Cache-Control: private
  Set-Cookie: sessionID=54321; max-age=1800; domain=.example.com
and you want to change or remove the userID cookie, it's a lot easier
to do a prefix match on userID= than on the entire value of that table
entry.  (If that table entry was set by some other module, we may not
know what the full value of that entry is.)

That's a good point.

In the general case, an application might need to:
  1. iterate through all the elements in a table that match a given key,
  2. selectively modify the value of one or more of the matching
 elements, or delete one or more of the matching elements,
  3. and optionally stop iterating based on some application-defined
 criteria.
Agreed.

This sounds a lot like apr_table_do, except that apr_table_do
doesn't allow modification of the table elements.
If there were a variant of apr_table_do that allowed  modification
of the value (but not the key) of visited elements, and the deletion
of visited elements, would that work  for your application?
Yes that should suffice. Thanks.

-sumeet

Brian