Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] Re: [apache-talk] POST-грабли



On Thu, 10 Feb 2000, Artem Chuprina wrote:

> > PY> а куда пойдет запрос с
> > PY>  'application/x-www-form-urlencoded; charset=koi8-r'
> > 
> > PY> куда ?????
> > 
> > ОЙ. Ни разу не видел браузера, отдающего charset в content-type.
> > Соответственно - ни разу не видел этой ошибки. anyway - это легко
> > исправляется -
> > 
> > ===============
> > const char *fct = ap_table_get(r->headers_in, "Content-type");
> > const char *ct = strtok(fct, ";");
> > ===============
> > 
> > Типичный one liner ;) Надо бы автору написать...
> 
> Щазз... ap_table_get возвращает const char *, а strtok этого самого const ни в
> какую не хочет, и её можно понять:-)
> 
> В качестве quick-n-dirty можно писать туда, как и для multipart/form-data,
> strstr вместо strEQ, а заодно закомментировать нафиг проверку type в
> ApacheRequest_parse_urlencoded. Кстати, она там case insensitive... А
> по-хорошему надо, конечно, во всех трёх :-) случаях писать !strncasecmp либо
> !strncmp (как по стандарту правильно?) А автора убить нафиг, чтоб впредь
> стандарты читал, прежде чем писать ЭТО. Есть подозрение, что там и все
> остальные вхождения strEQ и strcaseEQ надо проверять...

Насчёт совсем сразу убить я, конечно, погорячился... Всё-таки тип
application/, а не text/, и мне не удалось найти ссылки на документ, где бы
говорилось, что он подразумевает параметр charset. Кто-нибудь может ссылочку
дать? Зато убедился, что проверка везде должна быть case
insensitive. Однако, прежде чем делать аккуратный патч...

В man strncmp сказано
CONFORMING TO
       SVID 3, POSIX, BSD 4.3, ISO 9899

а в man strncasecmp -
CONFORMING TO
       BSD 4.3

(у меня Linux). Внимание, вопрос: можно ли смело писать в коде (или хотя бы в
#define) это самое strncasecmp? Нет, я знаю, что в коде стоит strcasecmp...

-- 
Artem Chuprina                            E-mail: ran@xxxxxxxxx
Programmer                                  FIDO: 2:5020/371.32
Memonet Ltd.                      Work phone: +7 (095) 290-9055

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.