Le tridi 3 fructidor, an CCXXIII, Stephan Holljes a écrit : > Actually I just noticed that Pragma-headers may appear multiple times. > What would be a good way to handle that? I thought about expanding the > header tag from "Pragma" to "Pragma-%02d" with either an incrementing > number or just using s->nb_headers. Is there a better solution?
Well, this is annoying, I had hoped we could disregard duplicated headers as a badly-formed request warranting sending nasal demons to the client. Suffixing a number would be very impractical for the application, and would cause strange behaviours if the client were to send a header with a number. Another option would be to allow duplicated key entries in AVDictionary, but that would require specifying the order of the entries. Fortunately, the RFC saves us here: Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. Therefore, when dealing with any header already present in the dictionary: append a comma and the new value to it. Note that FFserver's behaviour with regard to duplicated Pragma entries is currently broken: if (av_strncasecmp(p, "Pragma: log-line=", 17) == 0) { logline = p; break; } if (av_strncasecmp(p, "Pragma: client-id=", 18) == 0) client_id = strtol(p + 18, 0, 10); That code recognizes: Pragma: log-line=foobar Pragma: client-id=bazqux but not: Pragma: log-line=foobar,client-id=bazqux Hopefully, fixing it would be a side effect of using the new HTTP server API. Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel