public void processCookies(MimeHeaders headers) {
		if (headers == null)
			return;// nothing to process
		// process each "cookie" header
		int pos = 0;
		while (pos >= 0) {
			// Cookie2: version ? not needed
			pos = headers.findHeader("Cookie", pos);
			// no more cookie headers headers
			if (pos < 0)
				break;

			MessageBytes cookieValue = headers.getValue(pos);
			if (cookieValue == null || cookieValue.isNull()) {
				pos++;
				continue;
			}

			// Uncomment to test the new parsing code
			if (cookieValue.getType() != MessageBytes.T_BYTES) {
				Exception e = new Exception();
				log.warn("Cookies: Parsing cookie as String. Expected bytes.", e);
				cookieValue.toBytes();
			}
			if (log.isDebugEnabled())
				log.debug("Cookies: Parsing b[]: " + cookieValue.toString());
			ByteChunk bc = cookieValue.getByteChunk();
			processCookieHeader(bc.getBytes(), bc.getOffset(), bc.getLength());
			pos++;// search from the next position
		}
	}