support multiple language preferences
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "imv_test_state.h"
|
#include "imv_test_state.h"
|
||||||
|
|
||||||
|
#include <utils/lexparser.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
typedef struct private_imv_test_state_t private_imv_test_state_t;
|
typedef struct private_imv_test_state_t private_imv_test_state_t;
|
||||||
@@ -107,14 +108,21 @@ METHOD(imv_state_t, get_reason_string, bool,
|
|||||||
private_imv_test_state_t *this, chunk_t preferred_language,
|
private_imv_test_state_t *this, chunk_t preferred_language,
|
||||||
chunk_t *reason_string, chunk_t *reason_language)
|
chunk_t *reason_string, chunk_t *reason_language)
|
||||||
{
|
{
|
||||||
|
chunk_t pref_lang, lang;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
while (eat_whitespace(&preferred_language))
|
||||||
|
{
|
||||||
|
if (!extract_token(&pref_lang, ',', &preferred_language))
|
||||||
|
{
|
||||||
|
/* last entry in a comma-separated list or single entry */
|
||||||
|
pref_lang = preferred_language;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0 ; i < countof(reasons); i++)
|
for (i = 0 ; i < countof(reasons); i++)
|
||||||
{
|
{
|
||||||
chunk_t lang;
|
|
||||||
|
|
||||||
lang = chunk_create(reasons[i].lang, strlen(reasons[i].lang));
|
lang = chunk_create(reasons[i].lang, strlen(reasons[i].lang));
|
||||||
if (chunk_equals(lang, preferred_language))
|
if (chunk_equals(lang, pref_lang))
|
||||||
{
|
{
|
||||||
*reason_language = lang;
|
*reason_language = lang;
|
||||||
*reason_string = chunk_create(reasons[i].string,
|
*reason_string = chunk_create(reasons[i].string,
|
||||||
@@ -122,6 +130,7 @@ METHOD(imv_state_t, get_reason_string, bool,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* no preferred language match found - use the default language */
|
/* no preferred language match found - use the default language */
|
||||||
*reason_string = chunk_create(reasons[0].string,
|
*reason_string = chunk_create(reasons[0].string,
|
||||||
|
|||||||
Reference in New Issue
Block a user