} else {
return crt_list[IDX_FROM_DOMAIN];
}
+ } else if (flags & AVP_CLASS_GLOBAL) {
+ return *crt_glist;
}
- return *crt_glist;
+ return NULL;
}
inline static avp_id_t compute_ID( str *name )
*/
if ((flags & AVP_CLASS_ALL) == 0) flags |= AVP_CLASS_URI;
if ((flags & AVP_TRACK_ALL) == 0) flags |= AVP_TRACK_FROM;
- list = select_list(flags);
+ if (!(list = select_list(flags)))
+ return -1;
if (flags & AVP_CLASS_URI) avp_class = AVP_CLASS_URI;
else if (flags & AVP_CLASS_USER) avp_class = AVP_CLASS_USER;
/* Return the current list of user attributes */
avp_list_t get_avp_list(avp_flags_t flags)
{
- return *select_list(flags);
+ avp_list_t *list;
+
+ list = select_list(flags);
+ return (list ? *list : NULL);
}
}
}
- list = select_list(ident.flags);
+ if (!(list = select_list(ident.flags)))
+ return NULL;
state->flags = ident.flags;
state->avp = *list;
{
int matched;
avp_t* avp;
+ avp_list_t *list;
if (s == 0) {
LOG(L_ERR, "search_next:avp: Invalid parameter value\n");
if (s->flags & AVP_CLASS_URI) {
s->flags &= ~AVP_CLASS_URI;
- s->avp = *select_list(s->flags);
+ list = select_list(s->flags);
} else if (s->flags & AVP_CLASS_USER) {
s->flags &= ~AVP_CLASS_USER;
- s->avp = *select_list(s->flags);
+ list = select_list(s->flags);
} else if (s->flags & AVP_CLASS_DOMAIN) {
s->flags &= ~AVP_CLASS_DOMAIN;
- s->avp = *select_list(s->flags);
+ list = select_list(s->flags);
} else {
s->flags &= ~AVP_CLASS_GLOBAL;
return 0;
}
+ if (!list) return 0;
+ s->avp = *list;
}
return 0;