Closed Bug 210668 Opened 21 years ago Closed 21 years ago

No images from my NPE server are rendering in 1.4 RC2, RC3

Categories

(Core :: Graphics: ImageLib, defect)

PowerPC
macOS
defect
Not set
major

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: rayryan8, Assigned: jdunn)

References

()

Details

User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/20030624
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4) Gecko/20030624

I'm afraid that the URL is behind the AOL/Netscape firewall. I don't think I'm
going to be able to do anything about that, but I can try if it's an issue.

We're devloping a web app to be deployed on Netscape Portal Server (NPE) 1.3.
I'm finding that Mozilla 1.4 RC2 and RC3 on Mac OS X don't show any images in
html pages it serves. This is a regression, Mozilla 1.3.1 handles this nicely,
and so do all other browsers we throw at it.

The server's access log and a packet sniffer reveal that the images are never
being requested.

I keep my cache off (fetch every time), and set to size zero. I've played with
these parameters, and have deleted the on disc cache files, and had no effect.
I've seen it happen when about:cache doesn't function (cache size zero), when it
shows that the images are not in the cache, and when they are in the cache
(e.g., if I have browsed to them directly, which works fine BTW).

Here is what about:cache says about one of the images that won't display:

key:	http://trowel.netscape.com:9000/signon-logo.gif
fetch count: 	

2

last fetched: 	

Wed Jun 25 11:31:42 2003

last modified: 	

Wed Jun 25 10:48:35 2003

expires: 	

Wed Jun 25 10:48:39 2003

Data size: 	

4220

file on disk: 	

none

Security: 	

This document does not have any security info associated with it.

Client: 	

HTTP

request-method: 	

GET

response-head: 	

HTTP/1.1 200 OK
Server: Netscape-Brew/6.3
Date: Wed, 25 Jun 2003 17:48:35 GMT
Etag: "0-0-1-107c-4e271480-4e271480"
Last-Modified: Wed, 25 Jun 2003 17:47:46 GMT
Content-Type: image/gif


And here is a relevant packet sniff:

tcpflow[1062]: listening on en0
010.169.072.019.51354-010.169.084.160.09000: GET /moz14bugdemo.html HTTP/1.1
Host: trowel.netscape.com:9000
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4)
Gecko/20030624
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: DB_COMMAND_HISTORY=frames.persistantPipeFrame.document.location;
lastscreenname=raytest2; aowuser=raytest2; sampler=1053374378;
CONSOLE_PREFS=%28%7B%27showLevel_Info%27%3Atrue%2C%0A%27showLevel_Warning%27%3Atrue%2C%0A%27showLevel_Error%27%3Atrue%2C%0A%27showCat_heartbeat%27%3Atrue%2C%0A%27showCat_default%27%3Atrue%2C%0A%27showCat_channel%27%3Atrue%2C%0A%27showCat_chat%27%3Atrue%7D%29
Pragma: no-cache
Cache-Control: no-cache


010.169.084.160.09000-010.169.072.019.51354: HTTP/1.1 200 OK
Server: Netscape-Brew/6.3
Date: Wed, 25 Jun 2003 18:33:32 GMT
Content-Language: en
ETag: "0-0-1-6cf-13bd7780-8bf5f200"
Last-modified: Wed, 25 Jun 2003 16:53:28 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=30,max=4
Content-Type: text/html; charset=ISO-8859-1

6cf

010.169.084.160.09000-010.169.072.019.51354: <!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Aim Express Signin</title>
  </head>

<body bgcolor="#FFFFFF" style="margin-top:0px;margin-left:0px">
<blockquote>

  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <FORM method=POST onSubmit="return verifyForm();" name="mainForm"
action="/Signin.svc">
    <img src="/aolcom/images/signon-logo.gif"
style="position:absolute;top:19px;left:40px">
    <input type="image" name="submit" src="/aolcom/images/signon-button.gif"
style="position:absolute;top:88px;left:270px">
    <input type="text" name="screenname" id="screenname" size="25"
value="@screenname@" style="position:absolute;top:90px;left:65px; width: 99px;
height: 20px;.BORDER-RIGHT: black 0px solid;BORDER-TOP: black 0px
solid;BORDER-LEFT: black 0px solid;BORDER-BOTTOM: black 0px solid;">
    <input type="password" name="password" id="password" size="24"
value="@password@" style="position:absolute;top:90px;left:166px; width: 93px;
height: 20px; BORDER-RIGHT: black 0px solid;BORDER-TOP: black 0px
solid;BORDER-LEFT: black 0px solid;BORDER-BOTTOM: black 0px solid;">
  <!-- @FormErrorBlock@ -->
    <br>
   <p class="mzFormError"> <font color="red" face="Arial, Helvetica, sans-serif">
   @FormErrorMessage@ </font> </p>
.<!-- @/FormErrorBlock@ -->
 </FORM>

  <table width=500><tr><td><font face="Arial, Helvetica, sans-serif">AIM Express
4.0 software is in
    development an
010.169.084.160.09000-010.169.072.019.51354: d hasn't been tested 
    for all situations and platforms. It is recommended that you demo on
    Windows 98 or Windows 2k with IE 5.5 or Netscape 6.2.</font></p>
  <p><font face="Arial, Helvetica, sans-serif">Version:<b> alpha-1
</b></font></p></tr></td></table>
</blockquote>
</body>
</html>

0






Reproducible: Always

Steps to Reproduce:
1. Browse to the above URL (again, have to be inside Netscape/AOL--sorry).


Actual Results:  
Page with no images

Expected Results:  
Page with two images

Since I only see this happening browsing our NPE setup, I'm attaching our
brew.dtd and brew.xml files.

-----%<-----%<-----%< brew.dtd -----%<-----%<-----%<-----

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- @version: -->
<!--
DTD for BREW Server configuration
-->
<!-- Global entities -->
<!ENTITY % standard_config SYSTEM "standard_config.xml">
%standard_config;
<!ENTITY % path 'CDATA'>
<!ENTITY % file 'CDATA'>
<!ENTITY % unsigned-number 'CDATA'>
<!-- Attributes for library type elements -->
<!ENTITY % shlib-name.attr 'shlib %path; #IMPLIED'>
<!ENTITY % jar-name.attr 'jar %path; #IMPLIED'>
<!ENTITY % lib.attr
   'prefix CDATA #REQUIRED
   %shlib-name.attr;
   %jar-name.attr;'>
<!-- common name attributes -->

<!ENTITY % prop-name.attr 'name CDATA #REQUIRED'>
<!ENTITY % uniq-name.attr 'name ID #REQUIRED'>
<!ENTITY % name.attr 'name CDATA #REQUIRED'>
<!ENTITY % sym-name.attr 'name ID #REQUIRED'>
<!ENTITY % sym-name-ref.attr 'symbol IDREF #REQUIRED'>
<!ENTITY % boolean '(TRUE|FALSE)'>
<!ENTITY % cache-common.attr 
   'enable %boolean; "FALSE"
    hitOrder %boolean; "FALSE"
    maxEntries CDATA "65535"
    maxHeap CDATA "1048576"
    maxAge CDATA "-1"
    hashInit CDATA "128"
    hashMax CDATA "1024"
    dirmonPoll CDATA "-1"'>

<!ENTITY dtd_version "6.3001">

<!--
Outermost type for config.
-->
<!ELEMENT brew-config
(magnus-config?,service*,java-service*,service-module*,cache-update-listeners*,back-end*,content-config*,extra-headers*,metadata-config?,revocator-config?,jvm-config?,static-cache?,component-cache?,proxy-cache?,error-log?,watchdog-log?,access-log?,profile-config?,client-config*,xslt-config?,vlauth-config?,webauth-config?,ua-config*,config*,soap2-processor*,authentication*,server+,listener-group+,watchdog?)>
<!ATTLIST brew-config dtd-version CDATA "&dtd_version;">

<!--
A magnus-config is the global config attributes holder

    read-buffsize                   default size of the read buffer in bytes
    write-buffsize                  default size of the write buffer in bytes
    max-recycled-buffers            maximum number of recycled entries for
buffered layers (0 - unbounded)
    compress-buffsize               default size of streaming compression buffer
    max-recycled-compress-buffers   maximum number of recycled compression
buffers (0 - unbounded)
    use-bound-threads               Use bound threads for I/O on Solaris

    async-*   async layer proprties:
    async-max-blocking-calls		# of concurrent I/O  calls before the layer
switches to non-blocking sockets
    async-max-blocking-timeout 	maximum specified (PR_Recv, PR_Send/etc.)
timeout in Ms allowed for blocking
                                    calls
    async-poll-array-size      	the size of the poll array per thread inside of
the layer
    async-poll-timeout         	default timeout in Ms for PR_Poll  in async layer
    async-poll-low-timeout     	lowest possible timeout in Ms in auto-adjust mode
    async-poll-high-timeout    	highest possible timeout in auto-adjust mode
    async-poll-inc-timeout     	timeout increment in Ms in auto-adjust mode
    async-mode                 	"normal"|"autoadjust"
    async-timeout-trend-limit       regulates how often the timeout will be adjusted
    pool-block-size                 size of pool memory chunks
    client-max-connections          maximum total number of http connections the
client module will allow
    client-stalled-cache-timeout    a duration during which the http client will
serve data from cache even
                                    if the real backend server in unavailable
    client-suppress-read-errors     suppress reporting read errors for http client
    client-suppress-write-errors    suppress reporting write errors for http client
    client-suppress-http-errors     suppress reporting of http errors for http
client
    client-keep-alive-timeout       default keep-alive connection for http client
    client-expires-timeout          value in seconds to be substracted from
Expires headers to prevent caching
                                    very short-lived requests
    client-expires-plus-timeout     value in seconds to be added to Expires
header to extend cache entry life
    client-date-deviation-interval  deviation in seconds in Date headers where
the request is still considered
                                    to be the same
    client-min-cache-buffer-size    initial size of cache content buffer (per
request)
    client-max-cache-buffer-size    maximum size of cache content buffer
    client-ext-cache-buffer-size    increase value for cache content buffer
    client-chunk-cache-buffers      chunk-allocate cache buffers

    dns-timeout                     DNS cache expiration timeout
    concurrency                     PR_SetConcurrency setting (#, "num-cpus",
"os-default")
    default-timed-event-timeout     default interval in seconds for timed events
    can-unload-services             global property defining wheather one can
unload services
-->
<!ELEMENT magnus-config EMPTY>
<!ATTLIST magnus-config
    server-root                    %path; #IMPLIED
    server-user                    CDATA "nobody"
    read-buffsize                  CDATA "2048"
    write-buffsize                 CDATA "2048"
    max-recycled-buffers           CDATA "200"
    compress-buffsize              CDATA "2048"
    max-recycled-compress-buffers  CDATA "250"
    use-bound-threads              %boolean; "FALSE"
    async-max-blocking-calls       CDATA "0"
    async-max-blocking-timeout     CDATA "100"
    async-poll-array-size          CDATA "1000"
    async-poll-timeout             CDATA "100"
    async-poll-low-timeout         CDATA "20"
    async-poll-high-timeout        CDATA "200"
    async-poll-inc-timeout         CDATA "10"
    async-mode                     (normal|autoadjust) "normal"
    async-timeout-trend-limit      CDATA "4"
    pool-block-size                CDATA "2048"
    client-sock-send-buffsize      CDATA #IMPLIED
    client-sock-recv-buffsize      CDATA #IMPLIED
    client-no-delay-socket         %boolean; "FALSE"
    client-max-connections         CDATA "1000"
    client-stalled-cache-timeout   CDATA "0"
    client-min-write-timeout       CDATA "30"
    client-write-min-bps           CDATA "300"
    client-read-timeout            CDATA "60"
    client-connect-timeout         CDATA "10"
    client-expires-timeout         CDATA "0"
    client-date-deviation-interval CDATA "0"
    client-expires-plus-timeout    CDATA "0"
    client-suppress-read-errors    %boolean; "FALSE"
    client-suppress-write-errors   %boolean; "TRUE"
    client-suppress-http-errors    %boolean; "FALSE"
    client-keep-alive-timeout      CDATA "120"
    client-min-cache-buffer-size   CDATA "2048"
    client-max-cache-buffer-size   CDATA "5048"
    client-ext-cache-buffer-size   CDATA "2048"
    client-chunk-cache-buffers     %boolean; "FALSE"
    dns-timeout                    CDATA "1800"
    concurrency                    CDATA "os-default"
    default-timed-event-timeout    CDATA "30"
    can-unload-services            %boolean; "FALSE"
    ocsp-enable	                 %boolean; "FALSE"
>
<!--
An http-provider is a module which can fulfill requests

    shlib-flags   library loading flags (default,lazy, global, etc)
-->

<!ELEMENT service EMPTY>
<!ATTLIST service
    %uniq-name.attr;
    %shlib-name.attr;
    shlib-flags   CDATA #IMPLIED
    options       CDATA #IMPLIED
    can-unload    %boolean; "TRUE">

<!--
 Java service - this is brew-like generic java service; primary use is internal
low-lever layer
 to plug third-party servlet engines into brew
-->
<!ELEMENT java-service EMPTY>
<!ATTLIST java-service
    %uniq-name.attr;
    classname     CDATA #REQUIRED
    classpath     CDATA #IMPLIED
    options       CDATA #IMPLIED >

<!--
A generic service module instance - like mime.types

  service-name    refers to loaded BREW service
  config          config-specific parameter
  classid         can refer to a specific class of object to instatiate, uses
COM-style CID
  classname       same as classid, by uses normal names
-->
<!ELEMENT service-module (param*) >
<!ATTLIST service-module
   service-name IDREF   #REQUIRED
   config    CDATA      #IMPLIED
   classid   CDATA      #IMPLIED
   classname CDATA      #IMPLIED
   must-initialize    %boolean; "FALSE"
>

<!--
A cache-update-listeners is a host with a name, a port, and an option attribute
-->
<!ELEMENT cache-update-listeners (update-listener+)>
<!ATTLIST cache-update-listeners group ID #REQUIRED>

<!ELEMENT update-listener EMPTY>
<!ATTLIST update-listener
   host CDATA #REQUIRED
   port CDATA "2000"
   option CDATA "direct">

<!--
  Extended client config
-->
<!ELEMENT client-config (server-capabilities-config*,filter*)>

<!ELEMENT server-capabilities-config EMPTY>
<!--
    server-header       mandatory server header string or regexp (i.e.
Netscape/Enterprise 3.6)
    search-flag         search flag
    http-capabilities 	coma-separated list of exluding http capabilities:
no-keepalive,no-http11,
                       
no-post-keepalive,no-zero-contentlength,no-pipelining,no-redirects,no-compression
-->
<!ATTLIST server-capabilities-config
        server-header         CDATA #REQUIRED
        search-flag     	(REGEXP|EXACT|BEGINS) "BEGINS"
        http-capabilities     CDATA #REQUIRED
>

<!--
The ssl-config is the service specific SSL config

   cert-nickname  Certificate nickname to use for this listener
   enable-ssl2    Enable SSL2 on this socket
   enable-ssl3    Enable SSL3 on this socket
   enable-tls     Enable TLS on this socket
   request-cert   Enable upfront client auth on this socket
   enable-rehandshake   enable dynamic rehandshake (typically used when client
auth is later requested)
   handshake-timeout    handshake timeout in seconds
   handshake-bufsize    set-aside buffer size for the rehandshake

-->
<!ELEMENT ssl-config (ssl-cipher+)>
<!ATTLIST ssl-config
          cert-nickname CDATA "Server-Cert"
          enable-ssl2   %boolean; "TRUE"
          enable-ssl3   %boolean; "TRUE"
          enable-tls    %boolean; "FALSE"
          request-cert  %boolean; "FALSE"
          enable-rehandshake 	%boolean; "FALSE"
          handshake-timeout	CDATA	"10"
          handshake-bufsize	CDATA	"65535"
>
<!--
The ssl-cipher enables or disables a cipher for a listener.

   name is the name of the cipher
   enable enable or disable this cipher
-->
<!ELEMENT ssl-cipher EMPTY>
<!ATTLIST ssl-cipher
          name
(SSL_EN_RC4_128_WITH_MD5|SSL_EN_RC4_128_EXPORT40_WITH_MD5|SSL_EN_RC2_128_CBC_WITH_MD5|SSL_EN_RC2_128_CBC_EXPORT40_WITH_MD5|SSL_EN_IDEA_128_CBC_WITH_MD5|SSL_EN_DES_64_CBC_WITH_MD5|SSL_EN_DES_192_EDE3_CBC_WITH_MD5|SSL_NULL_WITH_NULL_NULL|SSL_RSA_WITH_NULL_MD5|SSL_RSA_WITH_NULL_SHA|SSL_RSA_EXPORT_WITH_RC4_40_MD5|SSL_RSA_WITH_RC4_128_MD5|SSL_RSA_WITH_RC4_128_SHA|SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5|SSL_RSA_WITH_IDEA_CBC_SHA|SSL_RSA_EXPORT_WITH_DES40_CBC_SHA|SSL_RSA_WITH_DES_CBC_SHA|SSL_RSA_WITH_3DES_EDE_CBC_SHA|SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA|SSL_DH_DSS_WITH_DES_CBC_SHA|SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA|SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA|SSL_DH_RSA_WITH_DES_CBC_SHA|SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA|SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA|SSL_DHE_DSS_WITH_DES_CBC_SHA|SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA|SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA|SSL_DHE_RSA_WITH_DES_CBC_SHA|SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA|SSL_DH_ANON_EXPORT_WITH_RC4_40_MD5|SSL_DH_ANON_WITH_RC4_128_MD5|SSL_DH_ANON_EXPORT_WITH_DES40_CBC_SHA|SSL_DH_ANON_WITH_DES_CBC_SHA|SSL_DH_ANON_WITH_3DES_EDE_CBC_SHA|SSL_FORTEZZA_DMS_WITH_NULL_SHA|SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA|SSL_FORTEZZA_DMS_WITH_RC4_128_SHA|TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA|TLS_RSA_EXPORT1024_WITH_RC4_56_SHA|TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA|TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA|TLS_DHE_DSS_WITH_RC4_128_SHA|SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA|SSL_RSA_FIPS_WITH_DES_CBC_SHA)
#IMPLIED
          enable %boolean; "TRUE"
>
<!--
A back-end is a host with a name, a port, and a redirect rule.
-->
<!ELEMENT back-end (provider+,ssl-config*)>
<!--
The redirect tells where to redirect if the host fails. The value is
either one of the other back-ends, or one of ROUND-ROBIN or RANDOM.
   group                group name - normally DNS-like (foo.bar.com)
   type                 type of connection
   redirect             loadbalancing type
   duration             automatically-controlled maximum duration of the request
(0 - unlimited)
   http-capabilities 	coma-separated list of exluding http capabilities:
no-keepalive,no-http11,
                       
no-post-keepalive,no-zero-contentlength,no-pipelining,no-redirects
   use-ssl              use SSL when SSL config is present
-->
<!ATTLIST back-end 
   group                CDATA #REQUIRED
   type                 (HTTP|NPE|SPIT|OTHER) "HTTP"
   redirect             (ROUND-ROBIN|RANDOM|STICKY) "STICKY"
   duration             CDATA "0"
   http-capabilities    CDATA #IMPLIED
   use-ssl              %boolean; "FALSE"
>

<!-- 
providers describe the host and port for back-end groups 

   http-version         declares absolute compatibility version, it's  only for
 POST  anyway,  where
                        transfer-encoding may be automatically requested for
flaky 1.1 sites, use 1.0
   duration             automatically-controlled maximum duration of the request
(0 - unlimited)
   expand-hosts         tells brew to expand hosts list using DNS (foo.bar.com
can have multiple IPs)
   http-capabilities 	coma-separated list of exluding http capabilities:
no-keepalive,no-http11,
                       
no-post-keepalive,no-zero-contentlength,no-pipelining,no-redirects
   family               AF_INET, AF_INET6
-->
<!ELEMENT provider EMPTY>
<!ATTLIST provider
   host CDATA           #REQUIRED
   port CDATA           "80"
   retry-interval       CDATA "60"
   expand-hosts         %boolean; "TRUE"
   maxconn CDATA        "2"
   http-version         CDATA "1.1"
   duratton             CDATA "0"
   http-capabilities    CDATA #IMPLIED
   family               CDATA #IMPLIED
>
<!--
A xslt-config is a set of heterogeneous XSLT engine like sablotron,xalan, msxml
-->
<!ELEMENT xslt-config (xslt-provider+)>
<!ATTLIST xslt-config
   type CDATA "DEFAULT"
   default CDATA #REQUIRED>

<!ELEMENT xslt-provider EMPTY>
<!ATTLIST xslt-provider
    name CDATA #REQUIRED
    config CDATA "NONE"
    docpath CDATA "./"
    dirmonrefresh CDATA "60"
    shlib CDATA #REQUIRED>
<!--
A content-config is a set of potentially heterogeneous DS (data-source)
such as LDAP, local FS, Gen. DB, ...
-->
<!ELEMENT content-config (content-provider+, ssl-config*)>
<!ATTLIST content-config
   group CDATA #REQUIRED
   type (LDAP|HTTP|NPE|FS|OTHER) "LDAP">
<!--
content-providers describe the type of a content-DS
-->
<!ELEMENT content-provider (ldap-config*)>
<!ATTLIST content-provider
   provider-name    CDATA #REQUIRED
   timeout-interval CDATA "60"
   maxconn 	    CDATA  "2"
   use-ssl        %boolean; "FALSE">
<!--
ldap-config describes the configuration of a content ldap server connection
-->
<!ELEMENT ldap-config EMPTY>
<!ATTLIST ldap-config
   name CDATA	"default"
   host CDATA 	#IMPLIED
   port CDATA   #IMPLIED
   url  CDATA   #IMPLIED
   maxsessions  CDATA "16"
   binddn	CDATA #REQUIRED
   passwd	CDATA #REQUIRED
   suffix       CDATA #REQUIRED
   subtree	%boolean; "FALSE"
   subtreename	CDATA #IMPLIED
   debug	%boolean; "FALSE">
<!--
extra-headers
-->
<!ELEMENT extra-headers (request-header*, response-header*)>
<!ATTLIST extra-headers
    %uniq-name.attr;
    expires CDATA "10">
<!ELEMENT metadata-config EMPTY>
<!ATTLIST metadata-config
   file-location        %path; "&standard-config-path;/conf/workers.properties"
   refresh-interval     CDATA   "10000"
   refresh-url          CDATA  #IMPLIED
>
<!--
revocator-config describes the CRL configuration
-->
<!ELEMENT revocator-config EMPTY>
<!ATTLIST revocator-config
   crl-file             CDATA  #REQUIRED
   refresh-interval     CDATA   "10000"
   max-age              CDATA  #REQUIRED
>

<!--
jvm-config - jvm-options - to pass extra options to jvm like min/max heap size
etc.,.
catch-signals - which signals should be restored from jvm
print-errors - level of java print errors
                0 - java error display disabled (default)
                1 - print to error log
                any other value non zero value - print to stderr
redirect-java-stderr   redirect java System.err to given file
                             (special value of npe_error_log makes it
                                redirect to error log)
redirect-java-stdout   redirect java System.out to given file
                          (special value of npe_error_log makes it
                             redirect to error log with LOG_DEBUG message level)
classpathx - extra classpath - appended before CLASSPATH and CLASSPATHX 
                               env vars value
coredirs - list of application dirs which should be searched 
           recursively for jar files for framing classpath segment 
           before classpathx
appdirs  - list of application dirs which should be searched recursively
           for jar files for framing classpath segment after classpathx
-->
<!ELEMENT jvm-config EMPTY>
<!ATTLIST jvm-config
    jvm-options CDATA #IMPLIED
    catch-signals CDATA #IMPLIED
    print-errors CDATA #IMPLIED
    redirect-java-stderr CDATA #IMPLIED
    redirect-java-stdout CDATA #IMPLIED
    appdirs CDATA #IMPLIED
    coredirs CDATA #IMPLIED
    classpathx CDATA #IMPLIED>
<!ELEMENT request-header EMPTY>
<!ATTLIST request-header
   %name.attr;
   value CDATA #IMPLIED
   vhost CDATA ""
   overwrite %boolean; "FALSE"
   add       %boolean; "FALSE">
<!ELEMENT response-header EMPTY>
<!ATTLIST response-header
   %name.attr;
   value CDATA #IMPLIED
   vhost CDATA ""
   overwrite %boolean; "FALSE"
   add       %boolean; "FALSE">
<!--
Http error configuration 
-->
<!ELEMENT http-errors EMPTY>
<!ATTLIST http-errors 
	errors-uri	CDATA #REQUIRED
>

<!ELEMENT static-cache EMPTY>
<!ATTLIST static-cache
  %cache-common.attr;
  maxFiles CDATA "65535"
  maxMmap CDATA "20971520"
  maxOpen CDATA #IMPLIED
  limSmall CDATA "4096"
  limMedium CDATA "128000"
  copyFiles %boolean; "FALSE"
  contentCache %boolean; "TRUE"
  dirmonEnable %boolean; "TRUE"
  tempDir %path; "/tmp"
  useTF %boolean; "FALSE">
<!ELEMENT component-cache EMPTY>
<!ATTLIST component-cache
  %cache-common.attr;>
<!ELEMENT proxy-cache EMPTY>
<!ATTLIST proxy-cache
  %cache-common.attr;>
<!--
   error-log controls error logging configuration
   log-file             File to write to if not using syslog or stdio
   log-level            Error level to include in log
   use_stdio            Specify syslog, standard descriptor or file (NONE)
   log-id               Identifier included in log message
   rotate-interval      Number of time units between rotations
   rotate-units         time units
   buff-size            Maximum size of message
   flush-interval       Interval between flushes of outstanding messages
   time-fmt             Not used
   max-messages         Max messages to allow per message stack
   rotation-schedule    "12:30,16:00" ...
   rotation-filesize    max filesize in bytes
   enable-compression   enable on the fly log files compression
   filename-format      time format for renamed rotated logs
-->
<!ELEMENT error-log EMPTY>
<!ATTLIST error-log
   log-file            %file; "&standard-logs-path;/error.log"
   log-level          (CRIT|MAJOR|MINOR|WARN|NORM|STATS|DEBUG|VERBOSE) "NORM"
   use_stdio          (NONE|SYSLOG|STDOUT|STDERR) "NONE"
   log-id              CDATA "brew"
   rotate-interval     CDATA "24"
   rotate-units       (HOURS|MINUTES) "HOURS"
   buff-size           CDATA "4096"
   flush-interval      CDATA "10"
   time-fmt            CDATA #IMPLIED
   max-messages        CDATA "5"
   rotation-schedule   CDATA #IMPLIED
   rotation-filesize   CDATA #IMPLIED
   enable-compression  %boolean; "FALSE"
   filename-format     CDATA "%Y_%m%d%H%M%S"
   >

<!ELEMENT watchdog-log EMPTY>
<!ATTLIST watchdog-log
   log-file            %file; "&standard-logs-path;/wdog.log"
   log-level          (CRIT|MAJOR|MINOR|WARN|NORM|STATS|DEBUG|VERBOSE) "NORM"
   use_stdio          (NONE|SYSLOG|STDOUT|STDERR) "NONE"
   log-id CDATA        "brew-wdog"
   rotate-interval     CDATA "24"
   rotate-units       (HOURS|MINUTES) "HOURS"
   buff-size           CDATA "512"
   flush-interval      CDATA "1"
   time-fmt            CDATA #IMPLIED
   max-messages        CDATA "2"
   rotation-schedule   CDATA #IMPLIED
   rotation-filesize   CDATA #IMPLIED
   enable-compression  %boolean; "FALSE"
   filename-format     CDATA "%Y_%m%d%H%M%S"
   >

<!--
  access log controls access logging (flexlog) configuration
   log-file             File to write to if not using syslog or stdio
   use_stdio            Specify syslog, standard descriptor or file (NONE)
   relaxed              Controls access log format restrictions
   delimiter            Field separator charater
   rotate-interval      Number of time units between rotations
   rotate-units         time units
   buff-size            Maximum size of message
   flush-interval       Interval between flushes of outstanding messages
   max-messages         Max messages to allow per message stack
   rotation-schedule    "12:30,16:00" ...
   rotation-filesize    max filesize in bytes
   enable-compression   %boolean; "FALSE"
   filename-format      CDATA "%Y_%m%d%H%M%S"
   enable-compression   enable on the fly log files compression
   filename-format      time format for renamed rotated logs
-->
<!ELEMENT access-log ANY>
<!ATTLIST access-log
   log-file           %file; "&standard-logs-path;/access.log"
   use_stdio          (NONE) "NONE"
   relaxed %boolean;  "FALSE"
   delimiter          CDATA ":"
   rotate-interval    CDATA #IMPLIED
   rotate-units      (HOURS|MINUTES) "HOURS"
   buff-size          CDATA "1024"
   flush-interval     CDATA "60"
   max-messages       CDATA "20"
   rotation-schedule  CDATA #IMPLIED
   rotation-filesize  CDATA #IMPLIED
   enable-compression %boolean; "FALSE"
   filename-format    CDATA "%Y_%m%d%H%M%S"
   >
<!--
Profile service configuration attributes:
-->
<!ELEMENT profile-config EMPTY>
<!ATTLIST profile-config
   max-samples    CDATA "3"
   psp-rate       CDATA "900"
   sys-rate       CDATA "300"
   max-pages      CDATA "100"
   lock-timeout   CDATA "300"
   skip-first     %boolean; "TRUE"
   sys-profiling  %boolean; "FALSE"
   psp-profiling  %boolean; "FALSE"
   aspect-ratio   CDATA "1"
>

<!--
The listener server element
-->
<!--
  Generic listener group configuration:

  service-name           the name of the controller
  service-processor      the name of the processor which will process the actual
requests
  maxWorkerThreads       a number of worker threads on the controller (these are
user-level threads)
  stackSize              worker thread's stack size (0 will use OS default)
  shutdown-socket        always call shutdown on socket before close
  accept-buffer-size     initial read buffer size
  debug-level            debug level
  must-initialize        defines wheaher successfull service startup is required
for BREW engine to operate
  min-concurrency        minimum# of threads that must be allowed to run (0 = no
adjustable concurrency is allowed)
  max-suspends           maximum# of suspended connections
  max-suspended-pool-mem-size maximum size of request/response pool is allowed
to grow to in async mode (0 - unbounded)
  max-suspended-pool-mem-growth maximum multiple of memory growth of
request/response pool comaring to the original
                         size of the first request for async mode (0 - unbounded)
  alloc-flags            tells what to allocate from heap - allowed parameters:
"attributes"
  classid                can refer to a specific class of object to instatiate,
uses COM-style CID
  classname              same as classid, by uses normal names
-->
<!ELEMENT listener-group (listener+)>
<!ATTLIST listener-group
   %uniq-name.attr;
   service-name 		         IDREF #REQUIRED
   service-processor 	         IDREF #REQUIRED
   maxWorkerThreads 	         CDATA "100"
   stackSize		         CDATA "131072"
   shutdown-socket               %boolean; "TRUE"
   accept-buffer-size            CDATA "2048"
   must-initialize               %boolean; "FALSE"
   debug-level 		         CDATA #IMPLIED
   min-concurrency               CDATA "0"
   max-suspends                  CDATA "35000"
   max-suspended-pool-mem-size   CDATA "0"
   max-suspended-pool-mem-growth CDATA "10"
   alloc-flags                   CDATA "attributes"
   classid                       CDATA #IMPLIED
   classname                     CDATA #IMPLIED
   >

<!ELEMENT listener (ssl-config*)>
<!--
  Listener configuration:

  host                   host to listen on (can be a hostname, an IPv4 IP or
"ANY" for INADDR_ANY)
  name                   explicit hostname for this listener (for further
controller identification)
  port                   port to listen on
  listenQ                listen queue
  acceptorMultiplier     these controls the number of acceptor LWPs
(acceptorThreads = numCPU * acceptorMultiplier)
  sock-send-buff-size    the size of the send buffer for the socket (0 will use
OS default)
  sock-recv-buff-size    receive buffer size for the socket
  accept-pipeline-length # of requests accepted in non-blocking mode before
queueing them up. Value > 1
                         increases peformance under heavy load. Decreases
performance under light load.
  reuse-socket           set an option for the socket reuse
  no-delay-socket        set no delay option on a socket (done on every request)
  addr-in-use-timeout    timeout in seconds to wait for additional retry
  enable-ssl             enable ssl on this socket
-->
<!ATTLIST listener
   host                       CDATA "ANY"
   name                       CDATA #IMPLIED
   port 		            CDATA "&standard-server-port;"
   listenQ 		            CDATA "100"
   acceptorMultiplier 	      CDATA "1"
   sock-send-buffsize         CDATA #IMPLIED
   sock-recv-buffsize         CDATA #IMPLIED
   accept-pipeline-length     CDATA "1"
   reuse-socket               %boolean; "TRUE"
   no-delay-socket            %boolean; "TRUE"
   addr-in-use-timeout        CDATA "30"
   enable-ssl                 %boolean; "FALSE"
   family                     (AF_INET|AF_NCA|AF_INET6) "AF_INET"
   >

<!--
SOAP plugins
  service-name    refers to loaded BREW service
  classid         can refer to a specific class of object to instatiate, uses
COM-style CID
  classname       same as classid, by uses normal names
-->
<!ELEMENT soap2-processor (soap2-service-provider*)>
<!ATTLIST soap2-processor
   %uniq-name.attr;
   service-name 		IDREF #REQUIRED
   classid              CDATA #IMPLIED
   classname            CDATA #IMPLIED
   >

<!--
SOAP plugins
  service-name    refers to loaded BREW service
  classid         can refer to a specific class of object to instatiate, uses
COM-style CID
  classname       same as classid, by uses normal names
-->
<!ELEMENT soap2-service-provider EMPTY>
<!ATTLIST soap2-service-provider
   service-name         IDREF #REQUIRED
   service-uri		CDATA #IMPLIED
   service-action		CDATA #IMPLIED
   service-namespace	CDATA #IMPLIED
   service-method		CDATA #IMPLIED
   service-target       CDATA #IMPLIED
   classid              CDATA #IMPLIED
   classname            CDATA #IMPLIED
>

<!--
The server element is the root of the deployment descriptor for 
the applications.
-->
<!ELEMENT server
(tag-library*,config*,service-provider*,filter*,http-config?,http-errors*,ureg-config?,jakarta-config?,webapps-config?,soap-service-config*,soap2-service-config*,psp-config?,invocation-map*,uri-map*,utf8-map*,vlauth-config?,uri-transform*,uri-transform-set*,httpaccel-config*)>

<!--
  Generic listener controller configuration:

  service-name        the name of the controller
  debug-level         debug level
  must-initialize     defines wheaher successfull service startup is required
for BREW engine to operate
  classid             can refer to a specific class of object to instatiate,
uses COM-style CID
  classname           same as classid, by uses normal names
-->
<!ATTLIST server 
   %uniq-name.attr;
   service-name 		IDREF #REQUIRED
   must-initialize      %boolean; "FALSE"
   debug-level 		CDATA #IMPLIED
   classid              CDATA #IMPLIED
   classname            CDATA #IMPLIED
   >
<!--
A global tag library defines a prefix and a shared library that is globally
available. Used to load system libraries.
-->
<!ELEMENT tag-library EMPTY>
<!ATTLIST tag-library
   %lib.attr;>
<!--
The config node is a place for tag libraries to add extra information.
The data node can be well-defined XML and accessed via the DOM
interface from PSP.
-->
<!ELEMENT config (prop+)>
<!ATTLIST config 
   %uniq-name.attr;>
<!ELEMENT prop (prop*,rawdata?)>
<!ATTLIST prop
   %prop-name.attr;
   value CDATA #IMPLIED>
<!ELEMENT rawdata ANY>
<!--
Service providers tell which services to use for this server
   service-name            a reference to a loaded service provider
   service-class           a numeric value, representing a service class. All
methods will be group by
                           service classes and executed in groups
   service-flags           a comma-separated list of ("normal",
"serialize-first-request",
                           "process-aborted", "skip-redirect")
   service-uri             a comma-separated list of uri-prefixes for this
service (i.e. "/servlet,/iiop")
   service-ext             a comma-separated list of extensions for this service
(i.e. "jps,php")
   service-methods         a comma-separated list of supported http methods
(i.e. "GET,HEAD"
    	                     service-ext/uri/methods within single line will
costitute an "AND" condition
   service-hosts           a comma-separated list of virtual hosts (as defined
by Host: header)
   service-remote          a comma-separated list of remote IP addresses or hosts
   service-ports           a comma-separated list of ports
   service-config          a service specific blob of data
   service-concurrency     maximum service concurrency (or "unlimited")
   classid                 can refer to a specific class of object to
instatiate, uses COM-style CID
   classname               same as classid, by uses normal names
   service-id              unique service ID for the master service
   run-as                  tell the service to piggiback on the other instance
-->
<!ELEMENT service-provider (param*) >
<!ATTLIST service-provider
   service-name            IDREF #REQUIRED
   service-class           CDATA "10"
   service-flags           CDATA "normal"
   service-concurrency     CDATA "unlimited"
   service-uri             CDATA #IMPLIED
   service-ext             CDATA #IMPLIED
   service-methods         CDATA #IMPLIED
   service-hosts           CDATA #IMPLIED
   service-remote          CDATA #IMPLIED
   service-ports           CDATA #IMPLIED
   service-config          CDATA #IMPLIED
   must-initialize    %boolean; "FALSE"
   classid                 CDATA #IMPLIED
   classname               CDATA #IMPLIED
   service-id              CDATA #IMPLIED
   run-as                  CDATA #IMPLIED
>

<!ELEMENT param (param*)>
<!ATTLIST param
   name    CDATA #REQUIRED
   value   CDATA #REQUIRED
>

<!--
Filter plugins
  service-name    refers to loaded BREW service
  classid         can refer to a specific class of object to instatiate, uses
COM-style CID
  classname       same as classid, by uses normal names
-->
<!ELEMENT filter (param*) >
<!ATTLIST filter
   service-name            IDREF #REQUIRED
   input-types             CDATA #IMPLIED
   output-types            CDATA #IMPLIED
   classid                 CDATA #IMPLIED
   classname               CDATA #IMPLIED
>

<!--
Authentication plugins
  service-name    refers to loaded BREW service
  domain          refers to a specific authentication domain
  classid         can refer to a specific class of object to instatiate, uses
COM-style CID
  classname       same as classid, by uses normal names
-->

<!ELEMENT authentication (authenticator+)>
<!ELEMENT authenticator (param*) >
<!ATTLIST authenticator
   domain                  CDATA #REQUIRED
   service-name            IDREF #REQUIRED
   classid                 CDATA #IMPLIED
   classname               CDATA #IMPLIED
>

<!--
HTTP configuration attributes

HTTP I/O properties:
   MaxConnections		      maximum # of new connections (excluding existing
keep-alive connections)
   MaxKeepAlives		      maximum # of keep alive connections
   KeepAliveTimeout	      standard timeout for keep-alive connections in Seconds
   MinKeepAliveTimeout	      minimum  timeout for keep-alive connections in Seconds
   ReadTimeout		      read timeout for http parser in Seconds
   keepalive-on-post          allow keep-alives on POST?
   max-pipeline-length        maximum number of request in the pipeline
   fs-nocache-buffer-size     read buffer size for files which do not fit into cache
   fs-allow-put               PUT/DELETE methods are allowed on file content
   suppress-read-errors       supress read  I/O error messages
   suppress-write-errors      supress write I/O error messages
   lb-cookie-name             automatic cookie name being added to every request
for frontend loadbalancers
   lb-cookie-timeout          expiration time for the cookie in seconds
   lb-cookie-enable           set loadbalancing cookie
   redirect-depth             maximum depth for internal redirect
   min-write-timeout          minimum write timeout in seconds
   write-min-bps              minimum write bps rate (used to calculate actual
write timeout)
   post-param-total-size      total size of all parameters, passed via post for
application/x-www-form-urlencoded
   post-param-name-max-size   maximum size of any given parameter name
   post-param-name-chunk      the size of memory allocation chunk when parsing
parameter name
   post-param-value-max-size  maximum size of any given parameter value
   post-param-value-chunk     the size of memory allocation chunk when parsing
parameter value
   default-language           default content language
   default-charset            default content charset
   directory-default-index    default index.html-type of file for the direcory
   directory-display-index    display directory index
   deny-existance-name        list of names to deny existance by file content
   enable-parsed-html         allows shtml files to be processed
   parsed-html-extensions     a comma-separated list of parsed shtml extensions
   enable-compression         enable http compression
   enable-byteranges          enable byte ranges
   resolve-peer-host          enable DNS resolver for the peer host (cached, but
still slow)
   max-input-length           maximum input data length for DOS protection (0 -
unlimited)
-->
<!ELEMENT http-config EMPTY>
<!ATTLIST http-config
   document-root %path; "&standard-doc-root;"
   MaxConnections	            CDATA "15000"
   MaxKeepAlives	            CDATA "10000"
   KeepAliveTimeout	      CDATA "30"
   MinKeepAliveTimeout	      CDATA "4"
   ReadTimeout		      CDATA "10"
   max-pipeline-length        CDATA "20"
   fs-nocache-buffer-size     CDATA "65536"
   fs-allow-put               %boolean; "FALSE"
   suppress-read-errors       %boolean; "TRUE"
   suppress-write-errors      %boolean; "TRUE"
   keepalive-on-post          %boolean; "TRUE"
   lb-cookie-name             CDATA "BrewLoadBalance"
   lb-cookie-timeout          CDATA "600"
   lb-cookie-enable           %boolean; "FALSE"
   redirect-depth             CDATA "10"
   min-write-timeout          CDATA "60"
   write-min-bps              CDATA "300"
   post-param-total-size      CDATA "131072"
   post-param-name-max-size   CDATA "1024"
   post-param-name-chunk      CDATA "256"
   post-param-value-max-size  CDATA "16384"
   post-param-value-chunk     CDATA "1024"
   default-language           CDATA "en"
   default-charset            CDATA "ISO-8859-1"
   directory-default-index    CDATA "index.html,index.htm"
   directory-display-index    %boolean; "TRUE"
   enable-parsed-html         %boolean; "TRUE"
   parsed-html-extensions     CDATA "shtml"
   deny-existance-name        CDATA "WEB-INF,META-INF"
   enable-compression         %boolean; "FALSE"
   enable-byteranges          %boolean; "FALSE"
   resolve-peer-host          %boolean; "FALSE"
   max-input-length           CDATA "0"
>
<!--
Jakarta service configuration attributes:

   config         path to workers.properties file (i.e.
"C:/Jakarta/build/tomcat/conf/workers.properties")
   log_level      "debug"|"info"|"error"|"emerg"
   log            log file name for jakarta connector (special value of
npe_error_log make it redirect
                  to error log)
   connector      connector (worker) used to connect to Jakarta daemon
(ajp12,ajp13,inprocess)
   flush_on_write for each write of tomcat connector, whether a flush should bc
called or not in
                  brew level
-->
<!ELEMENT jakarta-config EMPTY>
<!ATTLIST jakarta-config
   config		%path; "&standard-config-path;/conf/workers.properties"
   log_level	CDATA	"error"
   log		CDATA "&standard-logs-path;/jkserv.log"
   connector	CDATA	"jni"
   flush_on_write         %boolean; "TRUE"
>
<!ELEMENT webapps-config (param*)>
<!ATTLIST webapps-config
   config		%path; "&standard-config-path;/web-apps.xml"
>


<!ELEMENT soap2-service-config EMPTY>
<!ATTLIST soap2-service-config
   soap-service-processor     IDREF #REQUIRED
>

<!--
Ureg service configuration attributes:
-->
<!ELEMENT ureg-config EMPTY>
<!ATTLIST ureg-config
   keyring-file   CDATA "../config/ureg/keyring.dat"
   ureg-mode      CDATA "3"
   ureg-test      CDATA "FALSE"
   ureg-secure    CDATA "FALSE"
   default-user   CDATA "NONE"
   default-auth   CDATA "NONE"
   default-cobrand CDATA "NONE"
   default-displayuser CDATA "NONE"
>

<!--
PSP configuration attributes
-->
<!ELEMENT psp-config EMPTY>
<!ATTLIST psp-config
   page-root %path; #IMPLIED
   XAOLKey CDATA #IMPLIED
   QCMapFile CDATA "qc_mapping.tcl"
   needs-java %boolean; "FALSE"
   always-parse %boolean; "FALSE"
   needs-i18n %boolean; "FALSE"
   strip-wspace %boolean; "FALSE"
   dont-stream %boolean; "FALSE"
   classpathx CDATA #IMPLIED
   tag-directory CDATA #IMPLIED
   default-locale CDATA #IMPLIED
   auto-load-enable %boolean; "FALSE"
   auto-load-dir CDATA #IMPLIED
   auto-load-mode CDATA "NORMAL"
   check-path %boolean; "TRUE"
   preload-pages %boolean; "FALSE"
   error-page CDATA "/err.psp"
   error-pattern CDATA "/*">

<!--
Page invocation attributes
-->
<!ELEMENT invocation-map EMPTY>
<!ATTLIST invocation-map
   prefix CDATA "/*.psp"
   page %path; #IMPLIED>

<!--
URI configuration attributes
-->
<!ELEMENT uri-map EMPTY>
<!ATTLIST uri-map
   prefix CDATA #IMPLIED
   page %path; #IMPLIED>

<!--
Utf8 configuration attributes
-->
<!ELEMENT utf8-map EMPTY>
<!ATTLIST utf8-map
   locale CDATA #IMPLIED
   charset CDATA #IMPLIED>

<!--
The watchdog starts the daemon and keep it running
-->
<!ELEMENT watchdog EMPTY>
<!ATTLIST watchdog
   log-prefix     CDATA "(WATCHDOG)"
   core-directory CDATA "&standard-cores-path;/cores"
   daemon-path    CDATA "&standard-binary-path;/daemon"
   daemon-min-run-time CDATA "1000"
>
<!--
VL Authentication Service Config 
VL Plugin library, VL Configuration file, mode
-->
<!ELEMENT vlauth-config EMPTY>
<!ATTLIST vlauth-config
   %shlib-name.attr;
   conf %file; "vl.conf"
   mode CDATA "soft,noaction"
>

<!--
Webauth Authentication Service Config
-->
<!ELEMENT webauth-config EMPTY>
<!ATTLIST webauth-config
   %shlib-name.attr;
   RefreshURI                   CDATA  "/_cqr/_rr"
   McDebug                      CDATA  #IMPLIED
   McKeyringFile                %file; #REQUIRED
   McAppSpecCookieName          CDATA  #IMPLIED
   McAppSpecCookiePath          %path; #REQUIRED
   McAppSpecCookieDomain        CDATA  #IMPLIED
   McSecureCookieDomain         CDATA  #IMPLIED
   McInfoCookieName             CDATA  #IMPLIED
   McInfoCookieDomain           CDATA  #IMPLIED
   McProductName                CDATA  #REQUIRED
   McPromoCode                  CDATA  #REQUIRED
   McBrandingIconURL            CDATA  #IMPLIED
   McFakeXaolHeader             CDATA  #IMPLIED
   McUaCheck                    CDATA  #IMPLIED
   McCookieExpireEarly          CDATA  #IMPLIED
   McCookieNoDomainCheck        CDATA  #IMPLIED
   McReqNoaction                CDATA  #IMPLIED
   McAuthenticationSuccessURL   CDATA  #REQUIRED
   McAuthenticationCancelURL    CDATA  #IMPLIED
   McRegistrationSuccessURL     CDATA  #REQUIRED
   McRegistrationCancelURL      CDATA  #IMPLIED
   McAuthenticationServerURL    CDATA  #REQUIRED
   McSignInURL                  CDATA  #REQUIRED
   McSignOutURL                 CDATA  #REQUIRED
   McDefaultEntryURL            CDATA  #REQUIRED
   McXaolDecryptKey             CDATA  #REQUIRED
   McQcMappingFile              %file; #REQUIRED
>

<!--
User Agent (ua) Driven configuration of Default Content Type (ctype) 
and User Agent Class (uaclass) 

ua =      wildcard pattern matching one or more User-Agents
ctype =   default content type for requests from a matching User Agent
uaclass = default class for requests from a matching User Agent  

For a User Agent that does not match any ua pattern in the configuration,
the default values are: ctype="text/html"; uaclass="html"
-->
<!ELEMENT ua-config EMPTY>
<!ATTLIST ua-config
   ua       CDATA  #REQUIRED
   ctype    CDATA  #REQUIRED
   uaclass  CDATA  #REQUIRED
>

<!--
URI Transformation Configuration 
   Configure per-URL transformations, or per-URL request/response headers
   (similar to the extra-headers service but on a per-URL basis)

   The transforms should be in named sets (uri-transform-set element).
   The name of the transform set is reffered to in service-provider entry 
   of uritransform svc. The uri-transform elements outside of any set
   have been left around for backward compatibility, and are used when the
   service-provider entry for uritransform svc does not specify a set name.

   A uri-transform element consists of :

   uri    =  a comma-separated list of uri's (e.g. "/, /index.psp")
   uri-prefix =  a comma-separated list of uri prefixes (e.g. "/, /rapi")
   ext    =  a comma-separated list of uri extensions (e.g. "psp,php")
   result =  an expression for the transformed uri containing the following
             substitutable macro variables

             ${uri}                         - URI
             ${uri_path}                    - URI without the last component
             ${uri_fn}                      - the last component (filename)
             ${uri_noext}                   - URI without the extension
             ${port}                        - port
             ${host}                        - host header (without the port)
             ${ext}                         - extension
             ${qs}                          - query string
             ${qs_esc}                      - escaped query string
             ${agent_vendor}                - browser vendor (Netscape or IE)
             ${agent}                       - the agent (Mozilla)
             ${agent_version}               - 4.0
             ${agent_major_version}         - 4
             ${agent_vendor_version}        - vendor's version
             ${agent_vendor_major_version}  - vendor's major version
             ${agent_simple}                - simple agent version - something 
                                              we determine oursevles, there 
                                              are 4 primary types: NS3, NS4, 
                                              IE3/4, IE5 - we may add more in 
                                              the future
             ${lang}                        - accept language
             ${enc}                         - primary accept encoding
             ${uaclass}                     - a coarse user-agent class 
                                              designated in the ua-config
                                              element
   request-header elements = set of headers to add to request
   response header elements = set of headers to add to response

-->

<!ELEMENT uri-transform (request-header*, response-header*)>
<!ATTLIST uri-transform
   uri           CDATA  #IMPLIED
   uri-prefix    CDATA  #IMPLIED
   ext           CDATA  #IMPLIED
   result        CDATA  #IMPLIED
>

<!ELEMENT uri-transform-set (uri-transform+)>
<!ATTLIST uri-transform-set
   %uniq-name.attr;
>

<!--
Http Accelerator Service Configuration:
   coresizelimit: can be "unlimited" or "N" (megabytes)
   defaultexpire: in minutes, used when no other expiration critera available.
   backend      : backend http servers
   cachegrouping : criteria for grouping of cached results
   adminuriprefix : a URI with this prefix is an admin cmd
   numlrulists : number of LRU lists to maintain (just 1 causes too much
                 contention). ignored if coresizelimit = "unlimited"

   ctype-expire : a list of content-type based expirations
   prefetch : a list of URLs to keep warm in the cache
   accel-headers : list of headers to include/exclude to/from a 
                   backend request or a backend response
--> 

<!ELEMENT httpaccel-config (ctype-expire*,prefetch*,accel-headers*)>
<!ATTLIST httpaccel-config
   coresizelimit         CDATA             "unlimited"
   defaultexpire         CDATA             "43200"
   backend               CDATA             #REQUIRED
   cachegrouping         (host|uri|none)   "none"
   adminuriprefix        CDATA             "/HA"
   numlrulists           CDATA             "8"
>

<!--
   ctype : content type to which the expiration applies
   expire : expiration in minutes
-->
<!ELEMENT ctype-expire EMPTY>
<!ATTLIST ctype-expire
   ctype     CDATA  #REQUIRED
   expire    CDATA  #REQUIRED
>

<!-- 
  url : URL to prefetch
-->

<!ELEMENT prefetch EMPTY>
<!ATTLIST prefetch
   url     CDATA  #REQUIRED
>

<!ELEMENT accel-headers (accel-hdr*)>
<!ATTLIST accel-headers
   type     (include|exclude)   #REQUIRED
   source   (request|response)  #REQUIRED
>

<!--
  for type "exclude", only name is needed.
  for type "include", a value/overwrite flag can be optionally provided.
      when not provided the value is picked up from the request or response
      depending on "source". when provided and value is present in source,
      overwrite=TRUE means the configured value wins
-->
<!ELEMENT accel-hdr EMPTY>
<!ATTLIST accel-hdr
   %name.attr;
   value        CDATA      #IMPLIED
   overwrite    %boolean;  "FALSE"
>


-----%<-----%<-----%< brew.xml -----%<-----%<-----%<-----

<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE brew-config SYSTEM "brew.dtd" [<!-- Local xml should not be used -->] >

<!-- COMMENT VL LINES IF NOT USING VL.  -->
<!-- Look for comment lines reading "COMMENT BELOW..."  -->
<!-- Also, remember to set devFlag=true in jvm12.conf   -->

<brew-config>
<!-- ################################################# -->
<!-- #   Engine config parms common to all servers   # -->
<!-- ################################################# -->
<magnus-config server-user="nobody" async-mode="normal"/> 

<!-- #### modules     -->

<service name="JavaModule"          
shlib="&standard-binary-path;/libjavamodule.so"   />
<service name="JavaModuleLoader"          
shlib="&standard-binary-path;/libjavamoduleloader.so"   />
<service name="JLayer"   shlib="&standard-binary-path;/libjlayermodule.so"/>
<service name="RedirectorFilter"     
shlib="&standard-filters-path;/libredirectorflt.so"/>
<service name="ServletDispatcher"    
shlib="&standard-services-path;/libservletdispatcher.so"/>

<service name="ExtraHeaders"         
shlib="&standard-services-path;/libextrahead.so"/>
<service name="MimeLookupService"    
shlib="&standard-binary-path;/libmimemodule.so"/>
<service name="HttpClientService"    
shlib="&standard-binary-path;/libhttpclientmodule.so"/>

<!-- #### authentication modules -->
<service name="AuthCntl"             
shlib="&standard-controllers-path;/libauth.so"/>
<service name="BasicAuthenticator"   
shlib="&standard-binary-path;/libbasicauthmodule.so"/>

<!-- #### controllers -->

<service name="HttpServerListener"   
shlib="&standard-controllers-path;/libhttpctl.so"/>
<service name="HttpServiceProcessor" 
shlib="&standard-controllers-path;/libhttprocessor.so"/>

<!-- #### services    -->
<service name="URITransform"	shlib="&standard-services-path;/liburitransform.so"
can-unload="FALSE"/>
<service name="ErrorService"       	 
shlib="&standard-services-path;/liberrorservice.so"/>
<service name="FileContent" 		 
shlib="&standard-services-path;/libfilecontent.so" can-unload="FALSE"/>
<service name="CandC" 			  shlib="&standard-services-path;/libcandcservice.so"/>
<service name="Flexlog" 		  shlib="&standard-services-path;/libflexlogservice.so"/>
<service name="BasicAuth"		  shlib="&standard-services-path;/libbasicauth.so"/>
<!-- COMMENT BELOW IF NOT USING VL 
<service name="VLAuth"	shlib="&standard-services-path;/libvlauth.so"/>-->
<service name="uaFix"		        shlib="&standard-services-path;/libuaFix.so"/>
<java-service name="ServletEngine"
classname="com.netscape.server.http.servlet.ServletEngine"/>
<java-service name="QuesoInitModule"
classname="com.aol.macaw.servlet.model.InitModule"/>
<java-service name="SystemStatusService"
classname="com.netscape.brew.http.SystemStatusService"/>

<service-module service-name="MimeLookupService"
config="&standard-config-path;/mime.types"/>
<service-module service-name="JavaModule"
config="&standard-config-path;/jvm12.conf"   must-initialize="TRUE"/>
<service-module service-name="JLayer"/>
<service-module service-name="JavaModuleLoader" config="QuesoInitModule"
must-initialize="TRUE"/>

<!-- ********************* -->

<service-module service-name="AuthCntl"/>
<service-module service-name="HttpClientService"/>

<!-- for extension jsg we need to send gzip header - since .jsg files are
javascript gzipped files-->
<extra-headers name="jsg-headers">   
  <response-header name="Content-Encoding" value="gzip" overwrite="TRUE"/>
</extra-headers>

<!-- expires header for non svc extension -->
<!-- FOR NOW SETTING THE EXPIRES TO 1 HR, WE MAY WANT TO INCREASE TO 4 DAYS WHEN
WE GO PROD -->
<!-- YAHOO USES 4 DAYS -->
<!-- extra-headers name="expires-headers" -->   
  <!-- response-header name="Expires" value="date.+3600"
  overwrite="TRUE"/ -->
<!--  <response-header name="Cache-Control" value="max-age=3600,
must-revalidate, s-maxage=3600, proxy-revalidate" overwrite="TRUE"/> -->
<!-- /extra-headers -->


<jvm-config
    jvm-options="-DBREW_DIR=&standard-server-root;
-DWHITE_LIST=&standard-server-root;/config/commandWhiteList -server  
-verbose:gc  -Xnoclassgc -Xrs -Xss512k -Xms128m -Xmx128m 
-Dtomcat.home=$env(TOMCAT_HOME,..)"
   
classpathx="&standard-binary-path;/classes/initquesomodule.jar:&standard-binary-path;/classes/brewcore.jar:&standard-binary-path;/classes/brewservlet.jar:&standard-binary-path;/classes/servletutil.jar:&standard-binary-path;/classes/jspengine.jar:&standard-binary-path;/classes/jaxp.jar:&standard-binary-path;/classes/crimson.jar:&standard-binary-path;/classes/gnu-regexp-1.0.8.jar:&standard-binary-path;/classes/servlet.jar"
    appdirs="&standard-doc-root;/WEB-INF/lib"
    print-errors="1"
    redirect-java-stderr="npe_error_log"
    redirect-java-stdout="npe_error_log"
/>

<static-cache enable="FALSE" maxHeap="1000000"/>
<component-cache enable="FALSE" maxHeap="1000000"/>
<proxy-cache enable="FALSE" />

<error-log
	log-level="VERBOSE" 
	use_stdio="NONE" 
	flush-interval="5" 
    buff-size="2048"
	rotate-interval="24"
    max-messages="10"
        rotate-units="HOURS"
        log-id="Brew"/>

<watchdog-log 
	log-level="VERBOSE" 
	use_stdio="NONE" 
	flush-interval  = "1" 
	rotate-interval = "24"
	rotate-units="HOURS"
	log-id="brew-watchdog"/>

<access-log
	use_stdio="NONE" 
	flush-interval="1" 
	rotate-interval="24"
    max-messages="10"
	rotate-units="HOURS"
	delimiter="">%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%]
"%Req->reqpb.clf-request%" %Req->srvhdrs.clf-status%
%Req->srvhdrs.content-length% "%Req->headers.user-agent%"
%npe.http.request.duration% </access-log>
<!-- COMMENT BELOW IF NOT USING VL 
<vlauth-config
  shlib="&standard-vl-path;/VlNpe.so"
  conf="&standard-vl-path;/vl.conf"
  mode="soft,noaction"/>-->
<authentication>
  <authenticator  domain="brew.auth.basic" service-name="BasicAuthenticator">
    <param name="user-db" value="&standard-config-path;/../userdb/users.db"/>
  </authenticator>
</authentication>

<!-- ################################################# -->
<!-- #	             Main HTTP Server                # -->
<!-- ################################################# -->

<server name="default-server"
    service-name	     = "HttpServiceProcessor"
    must-initialize    = "TRUE">

<!-- COMMENT BELOW IF NOT USING VL 
<service-provider service-name="VLAuth" service-ext="svc" must-initialize="TRUE"/> 
<service-provider service-name="VLAuth" service-uri="/ctxshare,/_cqr"/>
<service-provider service-name="VLAuth" service-uri="/turboweb/wskey"/>-->

<!-- below two lines required for serving gzip compressed files  extension jsg -->
<service-provider service-name="ExtraHeaders" service-config="jsg-headers"
service-ext="js,htm,html" service-uri="/gz" />
<service-provider service-name="FileContent"  service-methods="GET,HEAD"
service-uri="/gz" />
<service-provider service-name="ExtraHeaders" service-config="expires-headers"
service-ext="html,htm,js,gif,css" />
<service-provider service-name="URITransform"/>
<service-provider service-name="SystemStatusService"  service-uri="/_status" >
    <param name="sysstat_remoteip" value="10.169.192."/>
    <param name="sysstat_remoteip" value="10.169.85."/>
    <param name="sysstat_remoteip" value="10.169.72."/>
    <param name="sysstat_enableip" value="true"/>
    <param name="sysstat_remoteuser" value="eranti"/>
    <param name="sysstat_remoteuser" value="eranti"/>
    <param name="sysstat_remoteuser" value="eranti"/>
    <param name="sysstat_remoteuser" value="eranti"/>
    <param name="sysstat_enableuser" value="false"/>
</service-provider>

<service-provider service-name="ServletDispatcher"  service-uri="/"
service-methods="GET,POST" />
<service-provider service-name="FileContent"  service-methods="GET,HEAD"/>
<service-provider service-name="uaFix"        service-class="18"/>
<service-provider service-name="ErrorService" service-class="20"
service-flags="process-aborted"/>
<service-provider service-name="Flexlog"      service-class="30"/>
<filter service-name="RedirectorFilter"/>
<http-config document-root="&standard-doc-root;" />
<webapps-config config="&standard-config-path;/web-apps.xml"/>

<!-- <uri-transform uri="/_cqr/SNSSignin" result="/Login.svc"/> -->
<uri-transform uri="/_cqr/PreLaunch" result="/PreLaunch.svc"/>
<uri-transform uri="/_cqr/snsCookieMonitor.html"
result="/general/html/AEMonitorSNSCookie.html"/>
<uri-transform uri="/" result="/Login.svc"/>
</server>
<!-- ################################################# -->
<!-- #	        Command and Control Server           # -->
<!-- ################################################# -->
<server name="cc-server"
    service-name	     = "HttpServiceProcessor"
    must-initialize    = "TRUE">
    <service-provider service-name="BasicAuth">
        <param name="realm"  value="NPE Control Center"/>
        <param name="domain" value="brew.auth.basic"/>
    </service-provider>
    <service-provider service-name="CandC" service-uri="/cmd"/>
    <service-provider service-name="FileContent"/>
    <http-config document-root="&standard-config-path;"/>
</server>

<listener-group name = "default-listener" 
    service-name       = "HttpServerListener"
    service-processor  = "default-server"
    maxWorkerThreads   = "150"
    stackSize		= "1048576"
    must-initialize    = "TRUE">
    <listener
        port="&standard-server-port;" acceptorMultiplier = "1">
    </listener>
</listener-group>

<listener-group name="cc-listener" 
    service-name        = "HttpServerListener"
    service-processor   = "cc-server"
    maxWorkerThreads    = "2"
    stackSize		= "1048576"
    must-initialize     = "TRUE">
    <listener
        port="&standard-cc-port;" enable-ssl      = "FALSE">
    </listener>
</listener-group>

</brew-config>
Okay, turns out we were providing NO HEADERS due to NPE version/configuration mismatch 
issues. You could easily decide that this is not a bug. On the other, hand, only Moz 1.4 was 
stopped by it. Up to you guys to deal or not.

Anyway, we're all better now.
Ray, could you be a little more specific about what the problem was? I'm not
clear on that.

Reassigning to ImageLib, this problem isn't caused by Image Blocking.
Assignee: mstoltz → jdunn
Component: Image Blocking → ImageLib
QA Contact: tpreston
Sorry for talking too much in the bug report.

The symptom was that if you browsed to any HTML docs on my NPE server, none of the images 
would render.

I *think* the problem was that the server was misconfigured and not providing any headers, 
including no mime-type headers.

However, the problem didn't completely go away for pages that I had already visited until I deleted 
my profiles directory. I think corruption of history.dat may have happened, as that was the only 
place I could find references to the image URLs in question after I had nuked my cache.
After talking with ray... we are closing...
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.