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 */
"Welcome to our mercurial repository"