MINOR: WURFL: wurfl_get() and wurfl_get_all() now return an empty string if device detection fails

This commit is contained in:
mbellomi 2019-05-21 16:41:24 +02:00 committed by Willy Tarreau
parent e9fedf560a
commit 9896981675

View File

@ -433,14 +433,14 @@ static int ha_wurfl_get_all(const struct arg *args, struct sample *smp, const ch
wh.wsmp = smp;
dHandle = wurfl_lookup(global_wurfl.handle, &ha_wurfl_retrieve_header, &wh);
if (!dHandle) {
ha_wurfl_log("WURFL: unable to retrieve device from request %s\n", wurfl_get_error_message(global_wurfl.handle));
return 1;
}
temp = get_trash_chunk();
chunk_reset(temp);
if (!dHandle) {
ha_wurfl_log("WURFL: unable to retrieve device from request %s\n", wurfl_get_error_message(global_wurfl.handle));
goto wurfl_get_all_completed;
}
list_for_each_entry(wi, &global_wurfl.information_list, list) {
switch(wi->data.type) {
@ -481,6 +481,8 @@ static int ha_wurfl_get_all(const struct arg *args, struct sample *smp, const ch
chunk_appendf(temp, "%c", global_wurfl.information_list_separator);
}
wurfl_get_all_completed:
wurfl_device_destroy(dHandle);
smp->data.u.str.area = temp->area;
smp->data.u.str.data = temp->data;
@ -507,14 +509,14 @@ static int ha_wurfl_get(const struct arg *args, struct sample *smp, const char *
wh.wsmp = smp;
dHandle = wurfl_lookup(global_wurfl.handle, &ha_wurfl_retrieve_header, &wh);
if (!dHandle) {
ha_wurfl_log("WURFL: unable to retrieve device from request %s\n", wurfl_get_error_message(global_wurfl.handle));
return 1;
}
temp = get_trash_chunk();
chunk_reset(temp);
if (!dHandle) {
ha_wurfl_log("WURFL: unable to retrieve device from request %s\n", wurfl_get_error_message(global_wurfl.handle));
goto wurfl_get_completed;
}
while (args[i].data.str.area) {
node = ebst_lookup(&global_wurfl.btree, args[i].data.str.area);
@ -567,6 +569,8 @@ static int ha_wurfl_get(const struct arg *args, struct sample *smp, const char *
i++;
}
wurfl_get_completed:
wurfl_device_destroy(dHandle);
smp->data.u.str.area = temp->area;
smp->data.u.str.data = temp->data;