Changeset 903:4382d7420e65 in freeDiameter for libfdproto/dictionary.c
- Timestamp:
- Dec 15, 2012, 5:24:34 AM (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdproto/dictionary.c
r834 r903 977 977 break; 978 978 979 case AVP_BY_STRUCT: 980 { 981 struct dict_avp_request_ex * _what = (struct dict_avp_request_ex *) what; 982 struct dict_object * vendor = NULL; 983 984 CHECK_PARAMS( _what->avp_vendor.vendor || _what->avp_vendor.vendor_id || _what->avp_vendor.vendor_name ); 985 CHECK_PARAMS( _what->avp_data.avp_code || _what->avp_data.avp_name ); 986 987 /* Now look for the vendor first */ 988 if (_what->avp_vendor.vendor) { 989 CHECK_PARAMS( ! _what->avp_vendor.vendor_id && ! _what->avp_vendor.vendor_name ); 990 vendor = _what->avp_vendor.vendor; 991 } else if (_what->avp_vendor.vendor_id) { 992 CHECK_PARAMS( ! _what->avp_vendor.vendor_name ); 993 CHECK_FCT( search_vendor( dict, VENDOR_BY_ID, &_what->avp_vendor.vendor_id, &vendor ) ); 994 } else { 995 CHECK_FCT( search_vendor( dict, VENDOR_BY_NAME, &_what->avp_vendor.vendor_name, &vendor ) ); 996 } 997 998 if (vendor == NULL) { 999 if (result) 1000 *result = NULL; 1001 else 1002 ret = ENOENT; 1003 goto end; 1004 } 1005 1006 /* We now have our vendor = head of the appropriate avp list */ 1007 if (_what->avp_data.avp_code) { 1008 CHECK_PARAMS( ! _what->avp_data.avp_name ); 1009 SEARCH_scalar( _what->avp_data.avp_code, &vendor->list[1], avp.avp_code, 1, (struct dict_object *)NULL ); 1010 } else { 1011 SEARCH_os0( _what->avp_data.avp_name, &vendor->list[2], avp.avp_name, 1); 1012 } 1013 } 1014 break; 1015 979 1016 case AVP_BY_NAME_ALL_VENDORS: 980 1017 {
Note: See TracChangeset
for help on using the changeset viewer.