+static const char *lookup_index_from_string_attr(Z_AttributeList *attributes)
+{
+ int j;
+ int server_choice = 1;
+ for (j = 0; j < attributes->num_attributes; j++)
+ {
+ Z_AttributeElement *ae = attributes->attributes[j];
+ if (*ae->attributeType == 1) /* use attribute */
+ {
+ if (ae->which == Z_AttributeValue_complex)
+ {
+ Z_ComplexAttribute *ca = ae->value.complex;
+ int i;
+ for (i = 0; i < ca->num_list; i++)
+ {
+ Z_StringOrNumeric *son = ca->list[i];
+ if (son->which == Z_StringOrNumeric_string)
+ return son->u.string;
+ }
+ }
+ server_choice = 0; /* not serverChoice because we have use attr */
+ }
+ }
+ if (server_choice)
+ return "cql.serverChoice";
+ return 0;
+}
+