ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

Re: [apache-talk] =?koi8-r?Q?Re=3A_=5Bapache-talk=5D__POST-=C7=D2=C1=C2=CC=C9?=



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@ran.pp.ru
Programmer                                  FIDO: 2:5020/371.32
Memonet Ltd.                      Work phone: +7 (095) 290-9055

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



 




Copyright © Lexa Software, 1996-2009.