Changeset 296:e11a9f90a65a in freeDiameter for extensions/app_radgw/rgwx_auth.c
- Timestamp:
- May 10, 2010, 4:04:42 PM (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/app_radgw/rgwx_auth.c
r273 r296 50 50 #define ACV_OAP_RADIUS 1 /* RADIUS */ 51 51 #define ACV_ASS_STATE_MAINTAINED 0 /* STATE_MAINTAINED */ 52 #define ACV_ASS_NO_STATE_MAINTAINED 1 /* NO_STATE_MAINTAINED */ 52 53 #define ER_DIAMETER_MULTI_ROUND_AUTH 1001 53 54 #define ER_DIAMETER_LIMITED_SUCCESS 2002 … … 920 921 char buf[254]; /* to store some attributes values (with final '\0') */ 921 922 int ta_set = 0; 923 int no_str = 0; /* indicate if an STR is required for this server */ 922 924 uint8_t tuntag = 0; 923 925 unsigned char * req_auth = NULL; … … 1048 1050 CONV2RAD_STR(RADIUS_ATTR_STATE, buf, strlen(buf), 0); 1049 1051 } 1050 /* The RFC text says that this should always be the case, but it seems odd... */ 1052 1051 1053 if ((*rad_fw)->hdr->code == RADIUS_CODE_ACCESS_ACCEPT) { 1052 1054 /* Add the Session-Id */ 1053 1055 if (sizeof(buf) < snprintf(buf, sizeof(buf), "Diameter/%.*s", 1054 1056 sid->avp_value->os.len, sid->avp_value->os.data)) { 1055 TRACE_DEBUG(INFO, "Data truncated in Class attribute: %s", buf);1056 }1057 CONV2RAD_STR(RADIUS_ATTR_CLASS, buf, strlen(buf), 0);1058 1059 /* Add the auth-application-id required for STR */1060 CHECK_FCT( fd_msg_hdr( *diam_ans, &hdr ) );1061 if (sizeof(buf) < snprintf(buf, sizeof(buf), CLASS_AAI_PREFIX "%u",1062 hdr->msg_appl)) {1063 1057 TRACE_DEBUG(INFO, "Data truncated in Class attribute: %s", buf); 1064 1058 } … … 1206 1200 if ((!ta_set) && (ahdr->avp_value->u32 == ACV_ASS_STATE_MAINTAINED)) { 1207 1201 CONV2RAD_32B( RADIUS_ATTR_TERMINATION_ACTION, RADIUS_TERMINATION_ACTION_RADIUS_REQUEST ); 1202 } 1203 1204 if (ahdr->avp_value->u32 == ACV_ASS_NO_STATE_MAINTAINED) { 1205 no_str = 1; 1208 1206 } 1209 1207 break; … … 1669 1667 free(req_auth); 1670 1668 1669 if ((*rad_fw)->hdr->code == RADIUS_CODE_ACCESS_ACCEPT) { 1670 /* Add the auth-application-id required for STR, or 0 if no STR is required */ 1671 CHECK_FCT( fd_msg_hdr( *diam_ans, &hdr ) ); 1672 if (sizeof(buf) < snprintf(buf, sizeof(buf), CLASS_AAI_PREFIX "%u", 1673 no_str ? 0 : hdr->msg_appl)) { 1674 TRACE_DEBUG(INFO, "Data truncated in Class attribute: %s", buf); 1675 } 1676 CONV2RAD_STR(RADIUS_ATTR_CLASS, buf, strlen(buf), 0); 1677 } 1678 1671 1679 return 0; 1672 1680 }
Note: See TracChangeset
for help on using the changeset viewer.