Changeset 1230:e72c9dad62ac in freeDiameter for libfdproto/messages.c
- Timestamp:
- Jul 21, 2013, 6:57:39 PM (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdproto/messages.c
r1229 r1230 2371 2371 CHECK_FCT_DO( fd_dict_getval(model_avp, &avp_info), return NULL ); 2372 2372 2373 /* Set an initial size */ 2374 avp->avp_public.avp_len = GETAVPHDRSZ( avp->avp_public.avp_flags ) + avp_value_sizes[avp_info.avp_basetype]; 2375 2373 2376 /* Prepare the empty value */ 2374 2377 memset(&val, 0, sizeof(val)); … … 2377 2380 val.os.data = os; 2378 2381 val.os.len = sizeof(os); 2382 avp->avp_public.avp_len += val.os.len; 2379 2383 case AVP_TYPE_INTEGER32: 2380 2384 case AVP_TYPE_INTEGER64: … … 2440 2444 pr_data->pei->pei_errcode = "DIAMETER_MISSING_AVP"; 2441 2445 pr_data->pei->pei_avp = empty_avp(rule->rule_avp); 2446 pr_data->pei->pei_avp_free = 1; 2442 2447 } 2443 2448 return EBADMSG; … … 2453 2458 pr_data->pei->pei_errcode = "DIAMETER_AVP_OCCURS_TOO_MANY_TIMES"; 2454 2459 pr_data->pei->pei_avp = empty_avp(rule->rule_avp); /* Well we are supposed to return the (max + 1)th instance of the AVP instead... Pfff... */ TODO("Improve..."); 2460 pr_data->pei->pei_avp_free = 1; 2455 2461 } 2456 2462 return EBADMSG; … … 2472 2478 pr_data->pei->pei_message = "AVP was not in its fixed position"; 2473 2479 pr_data->pei->pei_avp = empty_avp(rule->rule_avp); 2480 pr_data->pei->pei_avp_free = 1; 2474 2481 } 2475 2482 return EBADMSG; … … 2485 2492 pr_data->pei->pei_message = "AVP was not in its fixed position"; 2486 2493 pr_data->pei->pei_avp = empty_avp(rule->rule_avp); 2494 pr_data->pei->pei_avp_free = 1; 2487 2495 } 2488 2496 return EBADMSG;
Note: See TracChangeset
for help on using the changeset viewer.