Mercurial > hg > freeDiameter
comparison extensions/dict_legacy_xml/dict_lxml_xml.c @ 1317:bb5dd52bb9b8
extensions/dict_legacy_xml: enumerated has base type integer32
Not unsigned32.
author | Thomas Klausner <tk@giga.or.at> |
---|---|
date | Mon, 23 Jan 2017 15:14:46 +0100 |
parents | 1af09cc156d6 |
children | 2a5620128a9a |
comparison
equal
deleted
inserted
replaced
1313:a04bea4d1aa6 | 1317:bb5dd52bb9b8 |
---|---|
1311 | 1311 |
1312 PREDEF_TYPES( "OctetString", AVP_TYPE_OCTETSTRING ); | 1312 PREDEF_TYPES( "OctetString", AVP_TYPE_OCTETSTRING ); |
1313 PREDEF_TYPES( "Integer32", AVP_TYPE_INTEGER32 ); | 1313 PREDEF_TYPES( "Integer32", AVP_TYPE_INTEGER32 ); |
1314 PREDEF_TYPES( "Integer64", AVP_TYPE_INTEGER64 ); | 1314 PREDEF_TYPES( "Integer64", AVP_TYPE_INTEGER64 ); |
1315 PREDEF_TYPES( "Unsigned32", AVP_TYPE_UNSIGNED32 ); | 1315 PREDEF_TYPES( "Unsigned32", AVP_TYPE_UNSIGNED32 ); |
1316 PREDEF_TYPES( "Enumerated", AVP_TYPE_UNSIGNED32 ); | 1316 PREDEF_TYPES( "Enumerated", AVP_TYPE_INTEGER32 ); |
1317 PREDEF_TYPES( "Unsigned64", AVP_TYPE_UNSIGNED64 ); | 1317 PREDEF_TYPES( "Unsigned64", AVP_TYPE_UNSIGNED64 ); |
1318 PREDEF_TYPES( "Float32", AVP_TYPE_FLOAT32 ); | 1318 PREDEF_TYPES( "Float32", AVP_TYPE_FLOAT32 ); |
1319 PREDEF_TYPES( "Float64", AVP_TYPE_FLOAT64 ); | 1319 PREDEF_TYPES( "Float64", AVP_TYPE_FLOAT64 ); |
1320 | 1320 |
1321 /* When we reach this point, we have not yet found this type anywhere. */ | 1321 /* When we reach this point, we have not yet found this type anywhere. */ |
1451 | 1451 |
1452 if (!FD_IS_LIST_EMPTY(&a->type)) { | 1452 if (!FD_IS_LIST_EMPTY(&a->type)) { |
1453 /* special exception: we use per-AVP enumerated types in fD */ | 1453 /* special exception: we use per-AVP enumerated types in fD */ |
1454 if (!strcasecmp("Enumerated", (char *)((struct t_avptype *)a->type.next)->type_name)) | 1454 if (!strcasecmp("Enumerated", (char *)((struct t_avptype *)a->type.next)->type_name)) |
1455 goto enumerated; | 1455 goto enumerated; |
1456 /* Let's allow "Unsigned32" instead of "Enumerated" also... */ | 1456 /* Let's allow "Integer32" instead of "Enumerated" also... */ |
1457 if ((!FD_IS_LIST_EMPTY(&a->enums)) && (!strcasecmp("Unsigned32", (char *)((struct t_avptype *)a->type.next)->type_name))) | 1457 if ((!FD_IS_LIST_EMPTY(&a->enums)) && (!strcasecmp("Integer32", (char *)((struct t_avptype *)a->type.next)->type_name))) |
1458 goto enumerated; | 1458 goto enumerated; |
1459 | 1459 |
1460 /* The type was explicitly specified, resolve it */ | 1460 /* The type was explicitly specified, resolve it */ |
1461 CHECK_FCT( resolve_base_type(fD_dict, ((struct t_avptype *)a->type.next)->type_name, &ad.avp_basetype, &type) ); | 1461 CHECK_FCT( resolve_base_type(fD_dict, ((struct t_avptype *)a->type.next)->type_name, &ad.avp_basetype, &type) ); |
1462 } else { | 1462 } else { |
1479 struct dict_type_data tdata; | 1479 struct dict_type_data tdata; |
1480 | 1480 |
1481 enumerated: | 1481 enumerated: |
1482 snprintf(typename, sizeof(typename), "Enumerated*(%s)", ad.avp_name); | 1482 snprintf(typename, sizeof(typename), "Enumerated*(%s)", ad.avp_name); |
1483 memset(&tdata, 0, sizeof(tdata)); | 1483 memset(&tdata, 0, sizeof(tdata)); |
1484 tdata.type_base = AVP_TYPE_UNSIGNED32; | 1484 tdata.type_base = AVP_TYPE_INTEGER32; |
1485 tdata.type_name = &typename[0]; | 1485 tdata.type_name = &typename[0]; |
1486 CHECK_FCT( fd_dict_new ( fD_dict, DICT_TYPE, &tdata, fd_appl, &type ) ); | 1486 CHECK_FCT( fd_dict_new ( fD_dict, DICT_TYPE, &tdata, fd_appl, &type ) ); |
1487 if (nb_added) | 1487 if (nb_added) |
1488 *nb_added += 1; | 1488 *nb_added += 1; |
1489 | 1489 |
1490 ad.avp_basetype = AVP_TYPE_UNSIGNED32; | 1490 ad.avp_basetype = AVP_TYPE_INTEGER32; |
1491 } | 1491 } |
1492 } | 1492 } |
1493 } | 1493 } |
1494 | 1494 |
1495 /* At this point, ad.avp_basetype is defined and type might also be */ | 1495 /* At this point, ad.avp_basetype is defined and type might also be */ |