Changeset 1036:aecdc2fbf222 in freeDiameter for libfdproto/dictionary.c
- Timestamp:
- Apr 17, 2013, 1:53:51 AM (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdproto/dictionary.c
r1030 r1036 1180 1180 n = enumval->enum_value.os.len; 1181 1181 for (i=0; i < n; i++) 1182 fd_log_debug("0x%02 hhX/'%c' ", enumval->enum_value.os.data[i], ASCII(enumval->enum_value.os.data[i]));1182 fd_log_debug("0x%02.2X/'%c' ", enumval->enum_value.os.data[i], ASCII(enumval->enum_value.os.data[i])); 1183 1183 if (n == LEN_MAX) 1184 1184 fd_log_debug("..."); … … 1343 1343 { 1344 1344 int i; 1345 CHECK_FCT( dump_add_str(outstr, offset, outlen, "<") ); 1345 1346 for (i = 0; i < value->os.len; i++) { 1346 if (i == 24) { /* Dump only up to24 bytes of the buffer */1347 if (i == 1024) { /* Dump only up to 1024 bytes of the buffer */ 1347 1348 CHECK_FCT( dump_add_str(outstr, offset, outlen, "[...] (len=%zd)", value->os.len) ); 1348 1349 break; 1349 1350 } 1350 CHECK_FCT( dump_add_str(outstr, offset, outlen, "%02.2X ", value->os.data[i]) ); 1351 } 1351 CHECK_FCT( dump_add_str(outstr, offset, outlen, "%s%02.2X", (i==0 ? "" : " "), value->os.data[i]) ); 1352 } 1353 CHECK_FCT( dump_add_str(outstr, offset, outlen, ">") ); 1352 1354 return 0; 1353 1355 } … … 1424 1426 #define INOBJHDRVAL indent<0 ? 1 : indent, indent<0 ? "-" : "|" 1425 1427 1426 /* Format er for the AVP value dump line */1428 /* Formatter for the AVP value dump line */ 1427 1429 static int dump_avp_val(union avp_value *avp_value, 1428 1430 int (*def_dump_val_cb)(union avp_value *, char **, size_t *, size_t *), … … 1434 1436 char **outstr, 1435 1437 size_t *offset, 1436 size_t *outlen) 1437 { 1438 /* Header for all AVP values dumps: */ 1439 CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "value ", INOBJHDRVAL) ); 1440 1441 /* If the type is provided, write it */ 1442 if (type_name) { 1443 CHECK_FCT( dump_add_str(outstr, offset, outlen, "t: '%s' ", type_name) ); 1444 } 1445 1446 /* Always give the base datatype anyway */ 1447 CHECK_FCT( dump_add_str(outstr, offset, outlen, "(%s) ", type_base_name[datatype]) ); 1448 1449 /* Now, the value */ 1450 CHECK_FCT( dump_add_str(outstr, offset, outlen, "v: ") ); 1438 size_t *outlen, 1439 int header) 1440 { 1441 if (header) { 1442 /* Header for all AVP values dumps: */ 1443 CHECK_FCT( dump_add_str(outstr, offset, outlen, INOBJHDR "value ", INOBJHDRVAL) ); 1444 1445 /* If the type is provided, write it */ 1446 if (type_name) { 1447 CHECK_FCT( dump_add_str(outstr, offset, outlen, "t: '%s' ", type_name) ); 1448 } 1449 1450 /* Always give the base datatype anyway */ 1451 CHECK_FCT( dump_add_str(outstr, offset, outlen, "(%s) ", type_base_name[datatype]) ); 1452 1453 /* Now, the value */ 1454 CHECK_FCT( dump_add_str(outstr, offset, outlen, "v: ") ); 1455 } 1451 1456 if (const_name) { 1452 1457 CHECK_FCT( dump_add_str(outstr, offset, outlen, "'%s' (", const_name) ); … … 1469 1474 1470 1475 /* Dump the value of an AVP of known type into the returned str */ 1471 int fd_dict_dump_avp_value(union avp_value *avp_value, struct dict_object * model, int indent, char **outstr, size_t *offset, size_t *outlen )1476 int fd_dict_dump_avp_value(union avp_value *avp_value, struct dict_object * model, int indent, char **outstr, size_t *offset, size_t *outlen, int header) 1472 1477 { 1473 1478 char * (*dump_val_cb)(union avp_value *avp_value) = NULL; … … 1503 1508 1504 1509 /* And finally, dump the value */ 1505 CHECK_FCT( dump_avp_val(avp_value, get_default_dump_val_cb(model->data.avp.avp_basetype), dump_val_cb, model->data.avp.avp_basetype, type_name, const_name, indent, outstr, offset, outlen ) );1510 CHECK_FCT( dump_avp_val(avp_value, get_default_dump_val_cb(model->data.avp.avp_basetype), dump_val_cb, model->data.avp.avp_basetype, type_name, const_name, indent, outstr, offset, outlen, header) ); 1506 1511 return 0; 1507 1512 }
Note: See TracChangeset
for help on using the changeset viewer.