Multiple cookies?

 > Anselm, here is a simple cgi script that tries to set multiple
 > cookies.  Only the last one is set (test2=4321).  Is this a bug?  The
 > NCSA & Apache servers work fine with this script.  I tried to dig
 > through the code, but got lost.  I can't tell if the request is not
 > getting all of the cookies, or is not parsing the header correctly.
 > 

Go it, the CGI resource doesn't accumulate header values, instead it
override any previous header value with the new one. They are two ways
for you to fix that:

a) Modify w3c.jigsaw.forms.CgiResource in the following way:

    public void notifyHeader(String name, byte buf[], int off, int len)
        throws MimeParserException
    {
        if ( name.equalsIgnoreCase("status") ) {
            status = new String(buf, 0, off, len);
        } else if ( name.equalsIgnoreCase("location") ) {
            location = new String(buf, 0, off, len);
        } else {
            String extraval =  new String(buf, 0, off, len);
            if ( headers == null ) {
                headers = new Hashtable(11);
            } else {
                String val = (String) headers.get(name.toLowerCase());
                if ( val != null )
                    extraval = val + "," + extraval;
            }
            headers.put(name.toLowerCase(), extraval);
        }
    }

    Which is the real fix (included in next public release)

b) Modify your script to make it emit both cookies under the same
Set-Cookie header

Anselm.

Received on Thursday, 6 February 1997 17:01:43 UTC