Changeset 687:026802543f57 in freeDiameter for libfdproto/dictionary.c
- Timestamp:
- Jan 19, 2011, 5:08:21 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdproto/dictionary.c
r662 r687 1304 1304 1305 1305 /* Default dump functions */ 1306 static void dump_val_os(union avp_value * value )1306 static void dump_val_os(union avp_value * value, FILE * fstr) 1307 1307 { 1308 1308 int i; 1309 1309 for (i = 0; i < value->os.len; i++) { 1310 1310 if (i == 24) { /* Dump only up to 24 bytes of the buffer */ 1311 fd_log_debug ("[...] (len=%zd)", value->os.len);1311 fd_log_debug_fstr(fstr, "[...] (len=%zd)", value->os.len); 1312 1312 break; 1313 1313 } 1314 fd_log_debug ("%02.2X ", value->os.data[i]);1315 } 1316 } 1317 1318 static void dump_val_i32(union avp_value * value )1319 { 1320 fd_log_debug ("%i (0x%x)", value->i32, value->i32);1321 } 1322 1323 static void dump_val_i64(union avp_value * value )1324 { 1325 fd_log_debug ("%lli (0x%llx)", value->i64, value->i64);1326 } 1327 1328 static void dump_val_u32(union avp_value * value )1329 { 1330 fd_log_debug ("%u (0x%x)", value->u32, value->u32);1331 } 1332 1333 static void dump_val_u64(union avp_value * value )1334 { 1335 fd_log_debug ("%llu (0x%llx)", value->u64, value->u64);1336 } 1337 1338 static void dump_val_f32(union avp_value * value )1339 { 1340 fd_log_debug ("%f", value->f32);1341 } 1342 1343 static void dump_val_f64(union avp_value * value )1344 { 1345 fd_log_debug ("%g", value->f64);1314 fd_log_debug_fstr(fstr, "%02.2X ", value->os.data[i]); 1315 } 1316 } 1317 1318 static void dump_val_i32(union avp_value * value, FILE * fstr) 1319 { 1320 fd_log_debug_fstr(fstr, "%i (0x%x)", value->i32, value->i32); 1321 } 1322 1323 static void dump_val_i64(union avp_value * value, FILE * fstr) 1324 { 1325 fd_log_debug_fstr(fstr, "%lli (0x%llx)", value->i64, value->i64); 1326 } 1327 1328 static void dump_val_u32(union avp_value * value, FILE * fstr) 1329 { 1330 fd_log_debug_fstr(fstr, "%u (0x%x)", value->u32, value->u32); 1331 } 1332 1333 static void dump_val_u64(union avp_value * value, FILE * fstr) 1334 { 1335 fd_log_debug_fstr(fstr, "%llu (0x%llx)", value->u64, value->u64); 1336 } 1337 1338 static void dump_val_f32(union avp_value * value, FILE * fstr) 1339 { 1340 fd_log_debug_fstr(fstr, "%f", value->f32); 1341 } 1342 1343 static void dump_val_f64(union avp_value * value, FILE * fstr) 1344 { 1345 fd_log_debug_fstr(fstr, "%g", value->f64); 1346 1346 } 1347 1347 1348 1348 /* Get the dump function for basic dict_avp_basetype */ 1349 static void (*get_default_dump_val_cb(enum dict_avp_basetype datatype))(union avp_value * )1349 static void (*get_default_dump_val_cb(enum dict_avp_basetype datatype))(union avp_value *, FILE *) 1350 1350 { 1351 1351 switch (datatype) { … … 1382 1382 1383 1383 /* Formater for the AVP value dump line */ 1384 static void dump_avp_val(union avp_value *avp_value, void (*dump_val_cb)(union avp_value * avp_value), enum dict_avp_basetype datatype, char * type_name, char * const_name, int indent)1384 static void dump_avp_val(union avp_value *avp_value, void (*dump_val_cb)(union avp_value *, FILE *), enum dict_avp_basetype datatype, char * type_name, char * const_name, int indent, FILE * fstr) 1385 1385 { 1386 1386 /* Header for all AVP values dumps: */ 1387 fd_log_debug (INOBJHDR "value ", INOBJHDRVAL);1387 fd_log_debug_fstr(fstr, INOBJHDR "value ", INOBJHDRVAL); 1388 1388 1389 1389 /* If the type is provided, write it */ 1390 1390 if (type_name) 1391 fd_log_debug ("t: '%s' ", type_name);1391 fd_log_debug_fstr(fstr, "t: '%s' ", type_name); 1392 1392 1393 1393 /* Always give the base datatype anyway */ 1394 fd_log_debug ("(%s) ", type_base_name[datatype]);1394 fd_log_debug_fstr(fstr, "(%s) ", type_base_name[datatype]); 1395 1395 1396 1396 /* Now, the value */ 1397 fd_log_debug ("v: ");1397 fd_log_debug_fstr(fstr, "v: "); 1398 1398 if (const_name) 1399 fd_log_debug ("'%s' (", const_name);1400 (*dump_val_cb)(avp_value );1399 fd_log_debug_fstr(fstr, "'%s' (", const_name); 1400 (*dump_val_cb)(avp_value, fstr); 1401 1401 if (const_name) 1402 fd_log_debug (")");1402 fd_log_debug_fstr(fstr, ")"); 1403 1403 1404 1404 /* Done! */ 1405 fd_log_debug ("\n");1405 fd_log_debug_fstr(fstr, "\n"); 1406 1406 } 1407 1407 1408 1408 /* Dump the value of an AVP of known type */ 1409 void fd_dict_dump_avp_value(union avp_value *avp_value, struct dict_object * model, int indent )1410 { 1411 void (*dump_val_cb)(union avp_value *avp_value );1409 void fd_dict_dump_avp_value(union avp_value *avp_value, struct dict_object * model, int indent, FILE * fstr) 1410 { 1411 void (*dump_val_cb)(union avp_value *avp_value, FILE * fstr); 1412 1412 struct dict_object * type = NULL; 1413 1413 char * type_name = NULL; … … 1444 1444 1445 1445 /* And finally, dump the value */ 1446 dump_avp_val(avp_value, dump_val_cb, model->data.avp.avp_basetype, type_name, const_name, indent );1446 dump_avp_val(avp_value, dump_val_cb, model->data.avp.avp_basetype, type_name, const_name, indent, fstr); 1447 1447 } 1448 1448
Note: See TracChangeset
for help on using the changeset viewer.