version 1.1, 2003/07/15 17:02:49
|
version 1.1.2.2, 2003/08/13 19:39:50
|
|
|
#include <Pegasus/Common/LanguageParser.h> | #include <Pegasus/Common/LanguageParser.h> |
#include <Pegasus/Common/InternalException.h> | #include <Pegasus/Common/InternalException.h> |
#include <Pegasus/Common/Tracer.h> | #include <Pegasus/Common/Tracer.h> |
|
#include <Pegasus/Common/MessageLoader.h> //l10n |
#include <cstring> | #include <cstring> |
| |
//PEGASUS_USING_STD; | //PEGASUS_USING_STD; |
|
|
hdr.remove(0,i+3); // remove everything but the quality value | hdr.remove(0,i+3); // remove everything but the quality value |
} | } |
else{ | else{ |
throw InvalidAcceptLanguageHeader( |
//l10n |
"AcceptLanguage contains too many characters or non-alpha characters"); |
//throw InvalidAcceptLanguageHeader( |
|
//"AcceptLanguage contains too many characters or non-alpha characters"); |
|
String s0 = "AcceptLanguage"; |
|
MessageLoaderParms parms("Common.LanguageParser.TOO_MANY_OR_NON_ALPHA_CHARACTERS", |
|
"$0 contains too many characters or non-alpha characters", |
|
s0); |
|
throw InvalidAcceptLanguageHeader(MessageLoader::getMessage(parms)); |
} | } |
//validate quality | //validate quality |
quality = atof(hdr.getCString()); | quality = atof(hdr.getCString()); |
if(quality > 1.0 || quality < 0.0){ | if(quality > 1.0 || quality < 0.0){ |
throw InvalidAcceptLanguageHeader( |
//l10n |
"AcceptLanguage contains an invalid quality value"); |
//throw InvalidAcceptLanguageHeader( |
|
//"AcceptLanguage contains an invalid quality value"); |
|
String s0 = "AcceptLanguage"; |
|
MessageLoaderParms parms("Common.LanguageParser.INVALID_QUALITY_VALUE", |
|
"$0 contains an invalid quality value", |
|
s0); |
|
throw InvalidAcceptLanguageHeader(MessageLoader::getMessage(parms)); |
} | } |
} | } |
else{ // extract and store language, quality defaults to 1.0 | else{ // extract and store language, quality defaults to 1.0 |
if(isValid(hdr, validate_length)) language_tag = hdr; | if(isValid(hdr, validate_length)) language_tag = hdr; |
else throw InvalidAcceptLanguageHeader( |
else{ |
"AcceptLanguage contains too many characters or non-alpha characters"); |
//l10n |
|
//throw InvalidAcceptLanguageHeader( |
|
//"AcceptLanguage contains too many characters or non-alpha characters"); |
|
String s0 = "AcceptLanguage"; |
|
MessageLoaderParms parms("Common.LanguageParser.TOO_MANY_OR_NON_ALPHA_CHARACTERS", |
|
"$0 contains too many characters or non-alpha characters", |
|
s0); |
|
throw InvalidAcceptLanguageHeader(MessageLoader::getMessage(parms)); |
|
} |
} | } |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
|
|
while((i = value.find("(")) != PEG_NOT_FOUND){ // get rid of anything in parenthesis in hdr if found | while((i = value.find("(")) != PEG_NOT_FOUND){ // get rid of anything in parenthesis in hdr if found |
if((j = value.find(")")) != PEG_NOT_FOUND) | if((j = value.find(")")) != PEG_NOT_FOUND) |
value.remove(i, (j-i)+1); | value.remove(i, (j-i)+1); |
else throw InvalidContentLanguageHeader( |
else{ |
"ContentLanguage does not contain terminating ) character"); |
//l10n |
|
//throw InvalidContentLanguageHeader( |
|
//"ContentLanguage does not contain terminating ) character"); |
|
String s0 = "ContentLanguage"; |
|
MessageLoaderParms parms("Common.LanguageParser.DOES_NOT_CONTAIN_TERMINATING", |
|
"$0 does not contain terminating ) character", |
|
s0); |
|
throw InvalidContentLanguageHeader(MessageLoader::getMessage(parms)); |
|
} |
} | } |
// get rid of any beginning or trailing whitespaces | // get rid of any beginning or trailing whitespaces |
while( (i = value.find(" ")) != PEG_NOT_FOUND ){ | while( (i = value.find(" ")) != PEG_NOT_FOUND ){ |
value.remove(i,1); | value.remove(i,1); |
} | } |
if(!isValid(value)) throw InvalidContentLanguageHeader( |
if(!isValid(value)){ |
"ContentLanguage contains too many characters or non-alpha characters"); |
//l10n |
|
//throw InvalidContentLanguageHeader( |
|
//"ContentLanguage contains too many characters or non-alpha characters"); |
|
String s0 = "ContentLanguage"; |
|
MessageLoaderParms parms("Common.LanguageParser.TOO_MANY_OR_NON_ALPHA_CHARACTERS", |
|
"$0 contains too many characters or non-alpha characters", |
|
s0); |
|
throw InvalidContentLanguageHeader(MessageLoader::getMessage(parms)); |
|
|
|
} |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
return value; | return value; |
} | } |