The APIs for working with HTTP headers appear to be designed
to support multi-valued (comma-separated) headers.  So as I
understand it, I should be able to do things like:

  nval = TSMimeHdrFieldValuesCount(...);
  for (i=0; i<nval; i++) {
    value = TSMimeHdrFieldValueStringGet(...);
    /* do something with value */
    TSMimeHdrFieldValueStringSet(... newvalue ...)
  }

Trying that on a multi-valued header in practice, I find
nval is always 1 and TSMimeHdrFieldValueStringGet returns
the entire string.  But by contrast,
TSMimeHdrFieldValueStringSet sets only the first value.

Trivial example: suppose I just want to uppercase my values.
Then in the above loop,

Header: value1, value2, value3

becomes

Header: VALUE1, VALUE2, VALUE3, value2, value3

as the entire string is processed and replaces value1,
leaving value2 and value3 untouched.

Is this a TS bug or a PBKAC?



-- 
Nick Kew

Reply via email to