# HG changeset patch # User Sebastien Decugis # Date 1366010227 -28800 # Node ID 0117a7746b2166b861ff66c42b21115cd17bfcc5 # Parent beb375690453eb7cc2985a7cd7205f2fb50ac446 Fix a number of errors and warnings introduced/highlighted by recent commits diff -r beb375690453 -r 0117a7746b21 extensions/acl_wl/aw_tree.c --- a/extensions/acl_wl/aw_tree.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/acl_wl/aw_tree.c Mon Apr 15 15:17:07 2013 +0800 @@ -128,7 +128,7 @@ struct tree_item * ti; char * s = NULL; - TRACE_ENTRY("%p %d %x", str, len, flags); + TRACE_ENTRY("%p %zd %x", str, len, flags); if (str) { CHECK_MALLOC_DO(s = malloc(len + 1), return NULL); diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_eap.c --- a/extensions/app_diameap/diameap_eap.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_eap.c Mon Apr 15 15:17:07 2013 +0800 @@ -56,7 +56,7 @@ } static void diameap_ba_policyupdate(struct eap_state_machine * eap_sm, - struct eap_packet eapPacket) + struct eap_packet *eapPacket) { TRACE_ENTRY("%p %p",eap_sm, eapPacket); if ((eap_sm->respMethod == TYPE_NAK)) @@ -65,10 +65,10 @@ eap_sm->user.pmethods = 0; u32 vendor; eap_type type; - u8 *data = (u8 *) eapPacket.data; + u8 *data = (u8 *) eapPacket->data; data += 5; id = 5; - while (id < eapPacket.length) + while (id < eapPacket->length) { vendor = VENDOR_IETF; type = G8(data); @@ -242,7 +242,7 @@ static boolean diameap_ba_policydopickup(eap_type type) { - TRACE_ENTRY("%p",type); + TRACE_ENTRY("%d",type); if (type == TYPE_IDENTITY) { return TRUE; @@ -330,7 +330,7 @@ case EAP_RECEIVED: TRACE_DEBUG(FULL+1,"%s[EAP Protocol] New EAP Response received",DIAMEAP_EXTENSION) ; - diameap_eap_dump(FULL + 1, eap_i->aaaEapRespData); + diameap_eap_dump(FULL + 1, &eap_i->aaaEapRespData); if ((eap_sm->rxResp == TRUE) && (eap_sm->respId == eap_sm->currentId) && ((eap_sm->respMethod == eap_sm->currentMethod) || ((eap_sm->respMethod @@ -364,7 +364,7 @@ case EAP_SEND_REQUEST: TRACE_DEBUG(FULL+1,"%s[EAP Protocol] New EAP packet request created.",DIAMEAP_EXTENSION) ; - diameap_eap_dump(FULL, eap_i->aaaEapReqData); + diameap_eap_dump(FULL, &eap_i->aaaEapReqData); eap_i->aaaEapResp = FALSE; eap_i->aaaEapReq = TRUE; eap_sm->eap_state = EAP_IDLE; @@ -515,7 +515,7 @@ eap_sm->methodData = NULL; } } - diameap_ba_policyupdate(eap_sm, eap_i->aaaEapRespData); + diameap_ba_policyupdate(eap_sm, &eap_i->aaaEapRespData); eap_sm->eap_state = EAP_SELECT_ACTION; break; case EAP_SELECT_ACTION: diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_eappacket.c --- a/extensions/app_diameap/diameap_eappacket.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_eappacket.c Mon Apr 15 15:17:07 2013 +0800 @@ -38,97 +38,97 @@ #include "libdiameap.h" -int diameap_eap_get_code(struct eap_packet eappacket, eap_code * eapcode) +int diameap_eap_get_code(struct eap_packet *eappacket, eap_code * eapcode) { TRACE_ENTRY("%p %p",eappacket,eapcode); - if (eappacket.data == NULL) + if (eappacket->data == NULL) { *eapcode = ERROR; TRACE_DEBUG(INFO,"%sEmpty data in EAP packet: no EAP Code to return.",DIAMEAP_EXTENSION); return EINVAL; } - if (eappacket.length < 1) + if (eappacket->length < 1) { *eapcode = ERROR; - TRACE_DEBUG(INFO,"%sEAP packet length %d : no EAP Code to return.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length %d : no EAP Code to return.",DIAMEAP_EXTENSION, eappacket->length); return EINVAL; } - *eapcode = G8(eappacket.data); + *eapcode = G8(eappacket->data); return 0; } -int diameap_eap_get_identifier(struct eap_packet eappacket, u8 * identifier) +int diameap_eap_get_identifier(struct eap_packet *eappacket, u8 * identifier) { TRACE_ENTRY("%p %p",eappacket,identifier); *identifier = 0; - if (eappacket.data == NULL) + if (eappacket->data == NULL) { TRACE_DEBUG(INFO,"%sEmpty data in EAP packet: no Identifier field to return.",DIAMEAP_EXTENSION); return EINVAL; } - if (eappacket.length < 2) + if (eappacket->length < 2) { - TRACE_DEBUG(INFO,"%sEAP packet length %d : no Identifier field to return.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length %d : no Identifier field to return.",DIAMEAP_EXTENSION, eappacket->length); return EINVAL; } - *identifier = G8(eappacket.data + 1); + *identifier = G8(eappacket->data + 1); return 0; } -int diameap_eap_get_length(struct eap_packet eappacket, u16 *length) +int diameap_eap_get_length(struct eap_packet *eappacket, u16 *length) { TRACE_ENTRY("%p %p",eappacket,length); *length = 0; - if (eappacket.data == NULL) + if (eappacket->data == NULL) { TRACE_DEBUG(INFO,"%sEmpty data in EAP packet: no Length field to return.",DIAMEAP_EXTENSION); return EINVAL; } - if (eappacket.ulength < 4) + if (eappacket->ulength < 4) { - TRACE_DEBUG(INFO,"%sEAP packet length %d : no Length field to return.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length %d : no Length field to return.",DIAMEAP_EXTENSION, eappacket->length); return EINVAL; } - *length = (u16) G16BIGE((eappacket.data + 2)); + *length = (u16) G16BIGE((eappacket->data + 2)); return 0; } -int diameap_eap_get_packetlength(struct eap_packet eappacket, u16 *length) +int diameap_eap_get_packetlength(struct eap_packet *eappacket, u16 *length) { TRACE_ENTRY("%p %p",eappacket,length); - if (eappacket.data == NULL) + if (eappacket->data == NULL) { TRACE_DEBUG(INFO,"%sEmpty data in EAP packet: no Length field to return.",DIAMEAP_EXTENSION); return EINVAL; } - *length = eappacket.ulength; + *length = eappacket->ulength; return 0; } -int diameap_eap_get_type(struct eap_packet eappacket, eap_type * eaptype) +int diameap_eap_get_type(struct eap_packet *eappacket, eap_type * eaptype) { TRACE_ENTRY("%p %p",eappacket,eaptype); *eaptype = 0; - if (eappacket.data == NULL) + if (eappacket->data == NULL) { TRACE_DEBUG(INFO,"%sEmpty data in EAP packet: no EAP Type field to return.",DIAMEAP_EXTENSION); return EINVAL; } - if (eappacket.length < 5) + if (eappacket->length < 5) { - TRACE_DEBUG(INFO,"%sEAP packet length %d : no EAP Type field to return.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length %d : no EAP Type field to return.",DIAMEAP_EXTENSION, eappacket->length); return EINVAL; } - *eaptype = (u32) G8(eappacket.data + 4); + *eaptype = (u32) G8(eappacket->data + 4); return 0; } boolean diameap_eap_check_code(eap_code code) { - TRACE_ENTRY("%p",code); + TRACE_ENTRY("%d",code); if (code != EAP_REQUEST && code != EAP_RESPONSE && code != EAP_SUCCESS && code != EAP_FAILURE) { @@ -138,51 +138,51 @@ return TRUE; } -int diameap_eap_get_packetdata(struct eap_packet eappacket, u8 ** data, +int diameap_eap_get_packetdata(struct eap_packet *eappacket, u8 ** data, int *len) { TRACE_ENTRY("%p %p",eappacket,data); - if (eappacket.length > 0) + if (eappacket->length > 0) { - *data = malloc(sizeof(u8) * eappacket.length); - U8COPY(*data,0,eappacket.length,eappacket.data); - *len = eappacket.length; + *data = malloc(sizeof(u8) * eappacket->length); + U8COPY(*data,0,eappacket->length,eappacket->data); + *len = eappacket->length; return 0; } - TRACE_DEBUG(INFO,"%sEAP packet length=%d: empty or wrong EAP Packet.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length=%d: empty or wrong EAP Packet.",DIAMEAP_EXTENSION, eappacket->length); *data = NULL; *len = 0; return EINVAL; } -int diameap_eap_get_data(struct eap_packet eappacket, u8 ** data, int * len) +int diameap_eap_get_data(struct eap_packet *eappacket, u8 ** data, int * len) { TRACE_ENTRY("%p %p",eappacket,data); - if (eappacket.length > 5) + if (eappacket->length > 5) { - *data = malloc(sizeof(u8) * (eappacket.length - 5)); - U8COPY(*data,0,(eappacket.length-5),(eappacket.data+5)); - *len = eappacket.length - 5; + CHECK_MALLOC( *data = malloc(sizeof(u8) * (eappacket->length - 5)) ); + U8COPY(*data,0,(eappacket->length-5),(eappacket->data+5)); + *len = eappacket->length - 5; return 0; } - TRACE_DEBUG(INFO,"%sEAP packet length=%d: empty or wrong EAP Packet.",DIAMEAP_EXTENSION, eappacket.length); + TRACE_DEBUG(INFO,"%sEAP packet length=%d: empty or wrong EAP Packet.",DIAMEAP_EXTENSION, eappacket->length); *data = NULL; *len = 0; return EINVAL; } -void diameap_eap_dump(int level, struct eap_packet eappacket) +void diameap_eap_dump(int level, struct eap_packet *eappacket) { - TRACE_ENTRY("%p %p",level,eappacket); + TRACE_ENTRY("%d %p",level,eappacket); if (!TRACE_BOOL(level)) return; - if (eappacket.data == NULL) + if (eappacket->data == NULL) return; - if (eappacket.length < 5) + if (eappacket->length < 5) return; - if (eappacket.ulength < 5) + if (eappacket->ulength < 5) return; fd_log_debug("------------- Dump EAP Packet-------------"); @@ -214,21 +214,21 @@ u16 length; CHECK_FCT_DO(diameap_eap_get_length(eappacket,&length),return); fd_log_debug("\t -Length : %d ", (unsigned int)length); - if (eappacket.length > 4) + if (eappacket->length > 4) { eap_type type; CHECK_FCT_DO(diameap_eap_get_type(eappacket,&type),return); fd_log_debug("\t -Type : %d ", type); } - if (eappacket.length > 5) + if (eappacket->length > 5) { char buf[1024]; snprintf(buf, sizeof(buf), "\t -Data : "); - for (i = 5; i < eappacket.length && i < 30; i++) + for (i = 5; i < eappacket->length && i < 30; i++) { - snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "%02x ", G8(eappacket.data + i)); + snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "%02x ", G8(eappacket->data + i)); } - if(i+1length) snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "[...] (len=%d)",(unsigned int) length); fd_log_debug("%s", buf); } @@ -239,7 +239,7 @@ u16 dataLength, struct eap_packet *eappacket) { - TRACE_ENTRY("%p %p %p %p %p %p", code, id, type, data, dataLength,eappacket); + TRACE_ENTRY("%d %hhu %d %p %hu %p", code, id, type, data, dataLength,eappacket); int length = 0; diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_eappacket.h --- a/extensions/app_diameap/diameap_eappacket.h Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_eappacket.h Mon Apr 15 15:17:07 2013 +0800 @@ -96,7 +96,7 @@ * EINVAL : if EAP Packet is NULL or empty */ -int diameap_eap_get_code(struct eap_packet eapPacket, eap_code * eapcode); +int diameap_eap_get_code(struct eap_packet *eapPacket, eap_code * eapcode); /* Function : diameap_eap_get_identifier @@ -114,7 +114,7 @@ * */ -int diameap_eap_get_identifier(struct eap_packet eapPacket, u8 * identifier); +int diameap_eap_get_identifier(struct eap_packet *eapPacket, u8 * identifier); /* Function : diameap_eap_get_length @@ -131,7 +131,7 @@ * EINVAL : if the data length < 4, or the EAP Packet is NULL. */ -int diameap_eap_get_length(struct eap_packet eapPacket, u16 *length); +int diameap_eap_get_length(struct eap_packet *eapPacket, u16 *length); /* Function : diameap_eap_get_packetlength @@ -148,7 +148,7 @@ * EINVAL : if the EAP Packet is NULL */ -int diameap_eap_get_packetlength(struct eap_packet eapPacket, u16 *length); +int diameap_eap_get_packetlength(struct eap_packet *eapPacket, u16 *length); /* Function : diameap_eap_get_type @@ -165,7 +165,7 @@ * EINVAL : if the EAP Packet is NULL or data length < 5 */ -int diameap_eap_get_type(struct eap_packet eapPacket,eap_type * eaptype); +int diameap_eap_get_type(struct eap_packet *eapPacket,eap_type * eaptype); /* Function : diameap_eap_get_packetdata @@ -183,7 +183,7 @@ * EINVAL : if there is no data in the current EAP Packet (ulength<1) */ -int diameap_eap_get_packetdata(struct eap_packet eapPacket, u8 ** data, int *len); +int diameap_eap_get_packetdata(struct eap_packet *eapPacket, u8 ** data, int *len); /* Function : diameap_eap_get_data @@ -201,7 +201,7 @@ * EINVAL : if there is no data in the current EAP Packet (ulength<6) */ -int diameap_eap_get_data(struct eap_packet eapPacket, u8 ** data, int * len); +int diameap_eap_get_data(struct eap_packet *eapPacket, u8 ** data, int * len); /* Function : diameap_eap_chech_code @@ -232,7 +232,7 @@ * */ -void diameap_eap_dump(int level, struct eap_packet eapPacket); +void diameap_eap_dump(int level, struct eap_packet *eapPacket); /* Function : diameap_eap_new diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_mysql.c --- a/extensions/app_diameap/diameap_mysql.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_mysql.c Mon Apr 15 15:17:07 2013 +0800 @@ -107,7 +107,7 @@ } -int diameap_authentication_get_attribs(struct eap_user user, +int diameap_authentication_get_attribs(struct eap_user *user, struct fd_list * attribute_list) { @@ -130,7 +130,7 @@ sprintf( query, "SELECT `authe`.`attribute` ,`authe`.`value` FROM `authe` WHERE `authe`.`grp` IN ( SELECT `user_grp`.`grp` FROM `user_grp` WHERE `user_grp`.`user` = %d ) ", - user.id); + user->id); CHECK_POSIX(pthread_mutex_lock( &db_cs_mutex )); @@ -168,7 +168,7 @@ return 0; } -int diameap_authorization_get_attribs(struct eap_user user, +int diameap_authorization_get_attribs(struct eap_user *user, struct fd_list * attribute_list) { TRACE_ENTRY("%p %p",user,attribute_list); @@ -191,7 +191,7 @@ sprintf( query, "SELECT `authz`.`attribute` , `authz`.`op` , `authz`.`value` FROM `authz` WHERE `authz`.`grp` IN ( SELECT `user_grp`.`grp` FROM `user_grp` WHERE `user_grp`.`user` = %d ) ", - user.id); + user->id); CHECK_POSIX(pthread_mutex_lock( &db_cs_mutex )); diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_mysql.h --- a/extensions/app_diameap/diameap_mysql.h Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_mysql.h Mon Apr 15 15:17:07 2013 +0800 @@ -56,11 +56,11 @@ void diameap_mysql_disconnect(); /* */ -int diameap_authentication_get_attribs(struct eap_user user, +int diameap_authentication_get_attribs(struct eap_user *user, struct fd_list * attribute_list); /* */ -int diameap_authorization_get_attribs(struct eap_user user, +int diameap_authorization_get_attribs(struct eap_user *user, struct fd_list * attribute_list); diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_plugins.c --- a/extensions/app_diameap/diameap_plugins.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_plugins.c Mon Apr 15 15:17:07 2013 +0800 @@ -45,7 +45,7 @@ int diameap_plugin_add(char * name, eap_type methodtype, u32 vendor, char * filename, char * conffile) { - TRACE_ENTRY("%p %p %p %p %p", name, methodtype, vendor, filename, conffile); + TRACE_ENTRY("%p %d %d %p %p", name, methodtype, vendor, filename, conffile); /* Check the filename is valid */ CHECK_PARAMS(filename); @@ -82,7 +82,7 @@ int diameap_plugin_get(u32 vendor, eap_type type, struct plugin ** getplugin) { - TRACE_ENTRY("%p %p %p",vendor,type,getplugin); + TRACE_ENTRY("%d %d %p",vendor,type,getplugin); struct fd_list * pl; for (pl = plugins_list.next; pl != &plugins_list; pl = pl->next) @@ -410,7 +410,7 @@ boolean diameap_plugin_exist(u32 vendor, eap_type type) { - TRACE_ENTRY("%p %p",vendor,type); + TRACE_ENTRY("%d %d",vendor,type); struct fd_list * pl; for (pl = plugins_list.next; pl != &plugins_list; pl = pl->next) diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_server.c --- a/extensions/app_diameap/diameap_server.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_server.c Mon Apr 15 15:17:07 2013 +0800 @@ -341,7 +341,7 @@ } static int diameap_parse_eap_resp(struct eap_state_machine * eap_sm, - struct eap_packet eappacket) + struct eap_packet *eappacket) { TRACE_ENTRY("%p %p",eap_sm, eappacket) @@ -351,7 +351,7 @@ eap_sm->respVendor = VENDOR_IETF; eap_sm->respVendorMethod = TYPE_NONE; - if (eappacket.data == NULL) + if (eappacket->data == NULL) { TRACE_DEBUG(INFO,"%s Empty EAP packet",DIAMEAP_EXTENSION); return 0; @@ -413,7 +413,7 @@ if (eap_sm->respMethod == TYPE_EXPANDED_TYPES) { - u8 *data = (u8 *) eappacket.data; + u8 *data = (u8 *) eappacket->data; //int len = 0; //u32 respVendor, respVendorMethod; data += 5; @@ -454,7 +454,7 @@ TRACE_ENTRY("%p %p",eappacket,avpdata); eappacket->ulength = (u16) avpdata->avp_value->os.len; eappacket->data = (u8 *) avpdata->avp_value->os.data; - diameap_eap_get_packetlength(*eappacket, &eappacket->length); + diameap_eap_get_packetlength(eappacket, &eappacket->length); return 0; } @@ -476,11 +476,11 @@ CHECK_FCT(diameap_eappacket_new(&eap_i->aaaEapRespData, avpdata)); eap_i->aaaEapResp = TRUE; u16 length; - diameap_eap_get_length(eap_i->aaaEapRespData, &length); + diameap_eap_get_length(&eap_i->aaaEapRespData, &length); if (length >= 4) { eap_code code; - CHECK_FCT(diameap_eap_get_code(eap_i->aaaEapRespData,&code)); + CHECK_FCT(diameap_eap_get_code(&eap_i->aaaEapRespData,&code)); if (code != EAP_RESPONSE) { @@ -497,7 +497,7 @@ } else { - CHECK_FCT(diameap_parse_eap_resp(&diameap_sm->eap_sm,eap_i->aaaEapRespData)); + CHECK_FCT(diameap_parse_eap_resp(&diameap_sm->eap_sm, &eap_i->aaaEapRespData)); if (diameap_sm->eap_sm.rxResp == FALSE) { diameap_sm->result_code = 1001; /*DIAMETER_MULTI_ROUND_AUTH*/ @@ -1254,7 +1254,7 @@ char * attribute, struct avp_attribute ** avp_attrib, int unlink, int *ret) { - TRACE_ENTRY("%p %p %p %p %p", avp_attributes, attribute, avp_attrib, ret); + TRACE_ENTRY("%p %p %p %d %p", avp_attributes, attribute, avp_attrib, unlink, ret); if (avp_attributes == NULL) { return EINVAL; @@ -1288,7 +1288,7 @@ int *ret) { - TRACE_ENTRY("%p %p %p %p %p", auth_attributes, attribute, auth_attrib, ret); + TRACE_ENTRY("%p %p %p %d %p", auth_attributes, attribute, auth_attrib, unlink, ret); if (auth_attributes == NULL) { @@ -1324,7 +1324,7 @@ char * attribute, struct avp_attribute ** ans_attrib, int unlink, int *ret) { - TRACE_ENTRY("%p %p %p %p %p", ans_attributes, attribute, ans_attrib, ret); + TRACE_ENTRY("%p %p %p %d %p", ans_attributes, attribute, ans_attrib, unlink, ret); if (ans_attributes == NULL) { return EINVAL; @@ -1637,7 +1637,7 @@ boolean is_operator(int format_type, char * operator) { - TRACE_ENTRY("%p %p",format_type,operator); + TRACE_ENTRY("%d %p",format_type,operator); if ((format_type == DIAMEAP_STR) && (strcmp(operator, "==") == 0 || strcmp( operator, "~=") == 0 || strcmp(operator, "!=") == 0)) { @@ -1652,7 +1652,7 @@ union avp_value diameap_get_num(char * num, enum dict_avp_basetype datatype) { - TRACE_ENTRY("%p %p",num,datatype); + TRACE_ENTRY("%p %d",num,datatype); union avp_value val; switch (datatype) { @@ -1681,10 +1681,10 @@ return val; } -boolean diameap_check(union avp_value A, char * B, char * operator, +boolean diameap_check(union avp_value *A, char * B, char * operator, enum dict_avp_basetype datatype) { - TRACE_ENTRY("%p %p %p %p",A,B,operator,datatype); + TRACE_ENTRY("%p %p %p %d",A,B,operator,datatype); if (((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, operator) == TRUE)) || ((datatype != AVP_TYPE_OCTETSTRING) && (datatype != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, @@ -1696,7 +1696,7 @@ if ((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, operator) == TRUE)) { - if (strcmp((char *)A.os.data, B) == 0) + if (strcmp((char *)A->os.data, B) == 0) return TRUE; else return FALSE; @@ -1709,22 +1709,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return EQ(A.i32,diameap_get_num(B, datatype).i32); + return EQ(A->i32,diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return EQ(A.i64,diameap_get_num(B, datatype).i64); + return EQ(A->i64,diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return EQ(A.u32,diameap_get_num(B, datatype).u32); + return EQ(A->u32,diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return EQ(A.u64,diameap_get_num(B, datatype).u64); + return EQ(A->u64,diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return EQ(A.f32,diameap_get_num(B, datatype).f32); + return EQ(A->f32,diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return EQ(A.f64,diameap_get_num(B, datatype).f64); + return EQ(A->f64,diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1744,7 +1744,7 @@ { regex_t rule_regexp; regcomp(&rule_regexp, B, REG_EXTENDED | REG_NOSUB | REG_ICASE); - if (regexec(&rule_regexp, (char *)A.os.data, 0, NULL, 0) != 0) + if (regexec(&rule_regexp, (char *)A->os.data, 0, NULL, 0) != 0) { authorized = FALSE; } @@ -1765,22 +1765,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return GT(A.i32, diameap_get_num(B, datatype).i32); + return GT(A->i32, diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return GT(A.i64, diameap_get_num(B, datatype).i64); + return GT(A->i64, diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return GT(A.u32, diameap_get_num(B, datatype).u32); + return GT(A->u32, diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return GT(A.u64, diameap_get_num(B, datatype).u64); + return GT(A->u64, diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return GT(A.f32, diameap_get_num(B, datatype).f32); + return GT(A->f32, diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return GT(A.f64, diameap_get_num(B, datatype).f64); + return GT(A->f64, diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1799,22 +1799,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return GE(A.i32,diameap_get_num(B, datatype).i32); + return GE(A->i32,diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return GE(A.i64,diameap_get_num(B, datatype).i64); + return GE(A->i64,diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return GE(A.u32,diameap_get_num(B, datatype).u32); + return GE(A->u32,diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return GE(A.u64,diameap_get_num(B, datatype).u64); + return GE(A->u64,diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return GE(A.f32,diameap_get_num(B, datatype).f32); + return GE(A->f32,diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return GE(A.f64,diameap_get_num(B, datatype).f64); + return GE(A->f64,diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1833,22 +1833,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return LT(A.i32, diameap_get_num(B, datatype).i32); + return LT(A->i32, diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return LT(A.i64, diameap_get_num(B, datatype).i64); + return LT(A->i64, diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return LT(A.u32, diameap_get_num(B, datatype).u32); + return LT(A->u32, diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return LT(A.u64, diameap_get_num(B, datatype).u64); + return LT(A->u64, diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return LT(A.f32, diameap_get_num(B, datatype).f32); + return LT(A->f32, diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return LT(A.f64, diameap_get_num(B, datatype).f64); + return LT(A->f64, diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1867,22 +1867,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return LE(A.i32, diameap_get_num(B, datatype).i32); + return LE(A->i32, diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return LE(A.i64, diameap_get_num(B, datatype).i64); + return LE(A->i64, diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return LE(A.u32, diameap_get_num(B, datatype).u32); + return LE(A->u32, diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return LE(A.u64, diameap_get_num(B, datatype).u64); + return LE(A->u64, diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return LE(A.f32, diameap_get_num(B, datatype).f32); + return LE(A->f32, diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return LE(A.f64, diameap_get_num(B, datatype).f64); + return LE(A->f64, diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1897,7 +1897,7 @@ if ((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, operator) == TRUE)) { - if (strcmp((char *)A.os.data, B) != 0) + if (strcmp((char *)A->os.data, B) != 0) return TRUE; else return FALSE; @@ -1909,22 +1909,22 @@ switch (datatype) { case AVP_TYPE_INTEGER32://i32 - return NE(A.i32, diameap_get_num(B, datatype).i32); + return NE(A->i32, diameap_get_num(B, datatype).i32); break; case AVP_TYPE_INTEGER64://i64 - return NE(A.i64, diameap_get_num(B, datatype).i64); + return NE(A->i64, diameap_get_num(B, datatype).i64); break; case AVP_TYPE_UNSIGNED32://u32 - return NE(A.u32, diameap_get_num(B, datatype).u32); + return NE(A->u32, diameap_get_num(B, datatype).u32); break; case AVP_TYPE_UNSIGNED64://u64 - return NE(A.u64, diameap_get_num(B, datatype).u64); + return NE(A->u64, diameap_get_num(B, datatype).u64); break; case AVP_TYPE_FLOAT32://f32 - return NE(A.f32, diameap_get_num(B, datatype).f32); + return NE(A->f32, diameap_get_num(B, datatype).f32); break; case AVP_TYPE_FLOAT64://f64 - return NE(A.f64, diameap_get_num(B, datatype).f64); + return NE(A->f64, diameap_get_num(B, datatype).f64); break; default: return FALSE; @@ -1991,27 +1991,27 @@ return attribute_op; } -int diameap_answer_set_attribute_valueA(union avp_value A, int *tofree, +int diameap_answer_set_attribute_valueA(union avp_value *A, int *tofree, enum dict_avp_basetype datatype, union avp_value * rval) { - TRACE_ENTRY("%p %p %p %p",A,tofree,datatype,rval); + TRACE_ENTRY("%p %p %d %p",A,tofree,datatype,rval); if (datatype == AVP_TYPE_OCTETSTRING) { - CHECK_MALLOC(rval->os.data=malloc(A.os.len)); - memcpy(rval->os.data,A.os.data,A.os.len); - rval->os.len = A.os.len; + CHECK_MALLOC(rval->os.data=malloc(A->os.len)); + memcpy(rval->os.data,A->os.data,A->os.len); + rval->os.len = A->os.len; *tofree = 1; } else { - *rval = A; + *rval = *A; } return 0; } int diameap_answer_set_attribute_valueB(char * B, int *tofree, enum dict_avp_basetype datatype, union avp_value * rval) { - TRACE_ENTRY("%p %p %p %p",B,tofree,datatype,rval); + TRACE_ENTRY("%p %p %d %p",B,tofree,datatype,rval); if (datatype == AVP_TYPE_OCTETSTRING) { CHECK_MALLOC(rval->os.data=malloc(strlen(B))); @@ -2091,7 +2091,7 @@ CHECK_FCT(diameap_get_avp_attribute(&diameap_sm->req_attributes,auth_attrib->attrib,&avp_attrib,0,&ret)); if (ret == 0) { - checked = diameap_check(avp_attrib->value, auth_attrib->value, + checked = diameap_check(&avp_attrib->value, auth_attrib->value, op, avpdata.avp_basetype); } } @@ -2118,7 +2118,7 @@ if (toadd == 1) { diameap_answer_set_attribute_valueA( - avp_attrib->value, &ans_attrib->tofree, + &avp_attrib->value, &ans_attrib->tofree, avpdata.avp_basetype, &ans_attrib->value); } else @@ -2145,7 +2145,7 @@ ans_attrib->attrib = auth_attrib->attrib; if (toadd == 1) { - diameap_answer_set_attribute_valueA(avp_attrib->value, + diameap_answer_set_attribute_valueA(&avp_attrib->value, &ans_attrib->tofree, avpdata.avp_basetype, &ans_attrib->value); } @@ -2176,17 +2176,17 @@ static int diameap_policy_decision(struct diameap_state_machine * diameap_sm, - struct diameap_eap_interface eap_i) + struct diameap_eap_interface *eap_i) { TRACE_ENTRY("%p %p",diameap_sm,eap_i); - if ((eap_i.aaaFail == TRUE) && (eap_i.aaaSuccess == TRUE)) + if ((eap_i->aaaFail == TRUE) && (eap_i->aaaSuccess == TRUE)) { TRACE_DEBUG(INFO,"%s Incorrect EAP decision. EAP process should not return both success and failure for the same session.(please report this problem.)",DIAMEAP_EXTENSION); return -1; } - if (eap_i.aaaFail == TRUE) + if (eap_i->aaaFail == TRUE) { diameap_sm->result_code = 4001; /* DIAMETER_AUTHENTICATION_REJECTED 4001 */ diameap_sm->authFailure = TRUE; @@ -2194,13 +2194,13 @@ return 0; } - if (eap_i.aaaSuccess == FALSE) + if (eap_i->aaaSuccess == FALSE) { diameap_sm->result_code = 1001; /* DIAMETER_MULTI_ROUND_AUTH 1001 */ return 0; } - if (eap_i.aaaSuccess == TRUE) + if (eap_i->aaaSuccess == TRUE) { if (diameap_sm->auth_request_val == AUTHORIZE_AUTHENTICATE) { @@ -2873,7 +2873,7 @@ } static int diameap_add_eap_payload(struct diameap_state_machine * diameap_sm, - struct msg * ans, struct diameap_eap_interface eap_i) + struct msg * ans, struct diameap_eap_interface *eap_i) { TRACE_ENTRY("%p %p",diameap_sm,ans); struct avp * avp; @@ -2906,14 +2906,14 @@ //TD take the link type into consideration when calculating EAP_MAX_Length EAP_Max_Length = Framed_MTU - NAS_Port_Type_HeaderLength; - if (eap_i.aaaEapReqData.length <= EAP_Max_Length) + if (eap_i->aaaEapReqData.length <= EAP_Max_Length) { /* EAP-Payload AVP */ { CHECK_FCT(fd_msg_avp_new(dataobj_eap_payload, 0, &avp)); - avp_val.os.data = eap_i.aaaEapReqData.data; - avp_val.os.len = eap_i.aaaEapReqData.length; + avp_val.os.data = eap_i->aaaEapReqData.data; + avp_val.os.len = eap_i->aaaEapReqData.length; CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); @@ -2924,8 +2924,8 @@ } CHECK_FCT(fd_msg_avp_new(dataobj_eap_payload, 0, &diameap_sm->lastReqEAPavp)); - avp_val.os.data = eap_i.aaaEapReqData.data; - avp_val.os.len = eap_i.aaaEapReqData.length; + avp_val.os.data = eap_i->aaaEapReqData.data; + avp_val.os.len = eap_i->aaaEapReqData.length; CHECK_FCT(fd_msg_avp_setvalue(diameap_sm->lastReqEAPavp, &avp_val)); } @@ -2946,7 +2946,7 @@ static int diameap_add_eap_success_avps( struct diameap_state_machine * diameap_sm, struct msg * ans, - struct diameap_eap_interface eap_i) + struct diameap_eap_interface *eap_i) { TRACE_ENTRY("%p %p %p",diameap_sm,ans,eap_i); struct avp * avp; @@ -2954,11 +2954,11 @@ int ret; /* EAP-Master-Session-Key AVP */ - if (eap_i.aaaEapKeyAvailable == TRUE) + if (eap_i->aaaEapKeyAvailable == TRUE) { CHECK_FCT(fd_msg_avp_new(dataobj_eap_master_session_key, 0, &avp)); - avp_val.os.data = eap_i.aaaEapMSKData; - avp_val.os.len = eap_i.aaaEapMSKLength; + avp_val.os.data = eap_i->aaaEapMSKData; + avp_val.os.len = eap_i->aaaEapMSKLength; CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); @@ -2988,7 +2988,7 @@ { TRACE_ENTRY("%p",diameap_sm); - CHECK_FCT(diameap_authorization_get_attribs(diameap_sm->eap_sm.user, &diameap_sm->attributes)); + CHECK_FCT(diameap_authorization_get_attribs(&diameap_sm->eap_sm.user, &diameap_sm->attributes)); diameap_sm->authorized = TRUE; @@ -3177,7 +3177,7 @@ case DIAMEAP_SELECT_DECISION: - CHECK_FCT_DO( diameap_policy_decision(diameap_sm,eap_i), + CHECK_FCT_DO( diameap_policy_decision(diameap_sm,&eap_i), goto s_end) ; @@ -3221,11 +3221,11 @@ if (diameap_sm->eap_sm.user.id != 0) { TRACE_DEBUG(FULL+1,"%sSelect authentication attributes.",DIAMEAP_EXTENSION); - CHECK_FCT_DO(diameap_authentication_get_attribs(diameap_sm->eap_sm.user, &diameap_sm->attributes), + CHECK_FCT_DO(diameap_authentication_get_attribs(&diameap_sm->eap_sm.user, &diameap_sm->attributes), { TRACE_DEBUG(INFO,"%s Unable to get user's session attributes.",DIAMEAP_EXTENSION); goto s_end;}); TRACE_DEBUG(FULL+1,"%sCreate answer authentication attributes.",DIAMEAP_EXTENSION); CHECK_FCT_DO(diameap_answer_avp_attributes(diameap_sm), - { TRACE_DEBUG(INFO,"% Unable to generate answer attributes.",DIAMEAP_EXTENSION); goto s_end;}); + { TRACE_DEBUG(INFO,"%s Unable to generate answer attributes.",DIAMEAP_EXTENSION); goto s_end;}); } if (diameap_sm->authSuccess == FALSE) @@ -3252,7 +3252,7 @@ ; TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) ; - CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,eap_i), + CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) ; TRACE_DEBUG(FULL+1,"%sStoring DiamEAP session data.",DIAMEAP_EXTENSION) @@ -3281,7 +3281,7 @@ ; TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) ; - CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,eap_i), + CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) ; @@ -3311,12 +3311,12 @@ ; TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) ; - CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,eap_i), + CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) ; TRACE_DEBUG(FULL+1,"%sAdding EAP success AVPs AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) ; - CHECK_FCT_DO( diameap_add_eap_success_avps(diameap_sm, ans, eap_i), + CHECK_FCT_DO( diameap_add_eap_success_avps(diameap_sm, ans, &eap_i), goto s_end) ; TRACE_DEBUG(FULL+1,"%sAdding Accounting-EAP-Auth-Method AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_user.c --- a/extensions/app_diameap/diameap_user.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_user.c Mon Apr 15 15:17:07 2013 +0800 @@ -38,38 +38,38 @@ #include "libdiameap.h" -int diameap_user_get_userid(struct eap_user user, u8* userid) +int diameap_user_get_userid(struct eap_user *user, u8* userid) { TRACE_ENTRY("%p %p",user,userid); - if (user.userid == NULL) + if (user->userid == NULL) return EINVAL; - userid = user.userid; + userid = user->userid; return 0; } -int diameap_user_get_password(struct eap_user user, u8* password,u16 * passwordlength) +int diameap_user_get_password(struct eap_user *user, u8* password,u16 * passwordlength) { TRACE_ENTRY("%p %p",user,password); - if (user.password == NULL) + if (user->password == NULL) return EINVAL; - password = user.password; - *passwordlength = user.passwordLength; + password = user->password; + *passwordlength = user->passwordLength; return 0; } -int diameap_user_get_passwordlength(struct eap_user user, u16 * passwordlength) +int diameap_user_get_passwordlength(struct eap_user *user, u16 * passwordlength) { TRACE_ENTRY("%p %p",user,passwordlength); - if (user.password == NULL) + if (user->password == NULL) return EINVAL; - *passwordlength = user.passwordLength; + *passwordlength = user->passwordLength; return 0; } int diameap_user_set_password(struct eap_user * user, u8 * password, u16 passwordLength) { - TRACE_ENTRY("%p %p %p",user,password,passwordLength); + TRACE_ENTRY("%p %p %hu",user,password,passwordLength); if (password == NULL) return EINVAL; if (passwordLength < 1) @@ -82,7 +82,7 @@ int diameap_user_set_userid(struct eap_user * user, u8 * userid, u16 useridLength) { - TRACE_ENTRY("%p %p %p",user,userid,useridLength); + TRACE_ENTRY("%p %p %hu",user,userid,useridLength); if (userid == NULL) return EINVAL; if (useridLength < 1) @@ -92,18 +92,18 @@ return 0; } -int diameap_user_get_methodid(struct eap_user user, int * methodid) +int diameap_user_get_methodid(struct eap_user *user, int * methodid) { TRACE_ENTRY("%p %p",user,methodid); - if (user.password == NULL) + if (user->password == NULL) return EINVAL; - *methodid = user.methodId; + *methodid = user->methodId; return 0; } int diameap_user_set_methodid(struct eap_user * user, int methodId) { - TRACE_ENTRY("%p %p",user,methodId); + TRACE_ENTRY("%p %d",user,methodId); if (user->password == NULL) return EINVAL; if (methodId < 0) @@ -112,12 +112,12 @@ return 0; } -boolean diameap_user_issuccess(struct eap_user user) +boolean diameap_user_issuccess(struct eap_user *user) { TRACE_ENTRY("%p",user); - if (user.password == NULL) + if (user->password == NULL) return FALSE; - return user.success; + return user->success; } int diameap_user_set_success(struct eap_user * user) @@ -129,24 +129,24 @@ return 0; } -int diameap_user_get_eap_method(struct eap_user user, int id, +int diameap_user_get_eap_method(struct eap_user *user, int id, struct eap_method *method) { - TRACE_ENTRY("%p %p %p",user,id,method); - if (sizeof(user.methods) >= (id - 1)) - *method = user.methods[id]; + TRACE_ENTRY("%p %d %p",user,id,method); + if (sizeof(user->methods) >= (id - 1)) + *method = user->methods[id]; return 0; } int diameap_user_set_eap_method(struct eap_user * user, int id, - struct eap_method method) + struct eap_method * method) { - TRACE_ENTRY("%p %p %p",user,id,method); + TRACE_ENTRY("%p %d %p",user,id,method); if (user->password == NULL) return EINVAL; if (sizeof(user->methods) < (id - 1)) return EINVAL; - user->methods[id].vendor = method.vendor; - user->methods[id].method = method.method; + user->methods[id].vendor = method->vendor; + user->methods[id].method = method->method; return 0; } diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/diameap_user.h --- a/extensions/app_diameap/diameap_user.h Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/diameap_user.h Mon Apr 15 15:17:07 2013 +0800 @@ -75,24 +75,24 @@ boolean check_user_identity; -int diameap_user_get_password(struct eap_user user, u8 * password,u16 *length); +int diameap_user_get_password(struct eap_user *user, u8 * password,u16 *length); -int diameap_user_get_userid(struct eap_user user, u8 * userid); +int diameap_user_get_userid(struct eap_user *user, u8 * userid); int diameap_user_set_password(struct eap_user * user, u8 * password, u16 Length); int diameap_user_set_userid(struct eap_user * user, u8 * userid, u16 Length); -int diameap_user_get_methodid(struct eap_user user,int *methodId); +int diameap_user_get_methodid(struct eap_user *user,int *methodId); int diameap_user_set_methodid(struct eap_user * user, int methodId); -boolean diameap_user_issuccess(struct eap_user user); +boolean diameap_user_issuccess(struct eap_user *user); int diameap_user_set_success(struct eap_user * user); -int diameap_user_get_eap_method(struct eap_user user, int id, struct eap_method * eapmethod); +int diameap_user_get_eap_method(struct eap_user *user, int id, struct eap_method * eapmethod); -int diameap_user_set_eap_method(struct eap_user * user, int id, struct eap_method method); +int diameap_user_set_eap_method(struct eap_user * user, int id, struct eap_method * method); #endif /* DIAMEAP_USER_H_ */ diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/plugins/eap_identity/eap_identity.c --- a/extensions/app_diameap/plugins/eap_identity/eap_identity.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/plugins/eap_identity/eap_identity.c Mon Apr 15 15:17:07 2013 +0800 @@ -48,8 +48,8 @@ int identity_init(struct eap_state_machine *smd); int identity_initPickUp(struct eap_state_machine *smd); int identity_buildReq(struct eap_state_machine *smd, u8 identity, struct eap_packet * eapPacket); -boolean identity_check(struct eap_state_machine *smd, struct eap_packet eapRespData); -int identity_process(struct eap_state_machine *smd, struct eap_packet eapRespData); +boolean identity_check(struct eap_state_machine *smd, struct eap_packet *eapRespData); +int identity_process(struct eap_state_machine *smd, struct eap_packet *eapRespData); boolean identity_isDone(struct eap_state_machine *smd); void identity_free(void * data); @@ -86,10 +86,10 @@ } -boolean identity_check(struct eap_state_machine *smd, struct eap_packet eapPacket) +boolean identity_check(struct eap_state_machine *smd, struct eap_packet *eapPacket) { - if (eapPacket.data == NULL) + if (eapPacket->data == NULL) { TRACE_DEBUG(INFO,"%s[EAP Identity plugin] Empty EAP packet received.",DIAMEAP_EXTENSION); return FALSE; @@ -117,7 +117,7 @@ return FALSE; } -int identity_process(struct eap_state_machine *smd, struct eap_packet eapRespData) +int identity_process(struct eap_state_machine *smd, struct eap_packet *eapRespData) { struct identity_data * data; u16 length; diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/plugins/eap_md5/eap_md5.c --- a/extensions/app_diameap/plugins/eap_md5/eap_md5.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/plugins/eap_md5/eap_md5.c Mon Apr 15 15:17:07 2013 +0800 @@ -57,8 +57,8 @@ int eap_md5_initPickUp(struct eap_state_machine *smd); int eap_md5_buildReq(struct eap_state_machine *smd, u8 eap_md5, struct eap_packet * eapPacket); -boolean eap_md5_check(struct eap_state_machine *smd, struct eap_packet eapRespData); -int eap_md5_process(struct eap_state_machine *smd, struct eap_packet eapRespData); +boolean eap_md5_check(struct eap_state_machine *smd, struct eap_packet *eapRespData); +int eap_md5_process(struct eap_state_machine *smd, struct eap_packet *eapRespData); boolean eap_md5_isDone(struct eap_state_machine *smd); void eap_md5_free(void * data); @@ -114,7 +114,7 @@ } -boolean eap_md5_check(struct eap_state_machine *smd, struct eap_packet eapRespData) +boolean eap_md5_check(struct eap_state_machine *smd, struct eap_packet *eapRespData) { eap_type type; if(diameap_eap_get_type(eapRespData,&type)!=0){ @@ -136,7 +136,7 @@ -int eap_md5_process(struct eap_state_machine *smd, struct eap_packet eapRespData) +int eap_md5_process(struct eap_state_machine *smd, struct eap_packet *eapRespData) { struct eap_md5_data * data; @@ -157,7 +157,7 @@ for (i = 0; i < CHALLENGE_LEN; i++) { - if (G8(hash + i) != G8(eapRespData.data + 6 + i)) + if (G8(hash + i) != G8(eapRespData->data + 6 + i)) { data->state = EAP_MD5_FAILURE; } diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/plugins/eap_tls/eap_tls.c --- a/extensions/app_diameap/plugins/eap_tls/eap_tls.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/plugins/eap_tls/eap_tls.c Mon Apr 15 15:17:07 2013 +0800 @@ -45,9 +45,9 @@ struct eap_packet * eapPacket); int eap_tls_getTimeout(struct eap_state_machine *smd, int * timeout); boolean eap_tls_check(struct eap_state_machine *smd, - struct eap_packet eapRespData); + struct eap_packet *eapRespData); int eap_tls_process(struct eap_state_machine *smd, - struct eap_packet eapRespData); + struct eap_packet *eapRespData); boolean eap_tls_isDone(struct eap_state_machine *smd); int eap_tls_getKey(struct eap_state_machine *smd, u8** msk, int * msklen, u8** emsk, int * emsklen); void eap_tls_unregister(void); @@ -148,7 +148,7 @@ } boolean eap_tls_check(struct eap_state_machine *smd, - struct eap_packet eapRespData) + struct eap_packet *eapRespData) { eap_type type; if(diameap_eap_get_type(eapRespData,&type)!=0){ @@ -164,7 +164,7 @@ } int eap_tls_process(struct eap_state_machine *smd, - struct eap_packet eapRespData) + struct eap_packet *eapRespData) { struct tls_data * data; data = (struct tls_data *) smd->methodData; @@ -352,7 +352,7 @@ } // parse EAP TLS msg -int diameap_eap_tls_parse(struct tls_msg * tlsmsg, struct eap_packet eapPacket) +int diameap_eap_tls_parse(struct tls_msg * tlsmsg, struct eap_packet *eapPacket) { u8 *datatls; int len; diff -r beb375690453 -r 0117a7746b21 extensions/app_diameap/plugins/eap_tls/eap_tls.h --- a/extensions/app_diameap/plugins/eap_tls/eap_tls.h Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_diameap/plugins/eap_tls/eap_tls.h Mon Apr 15 15:17:07 2013 +0800 @@ -45,7 +45,7 @@ int diameap_eap_tls_buildReq_ack(u8 id, struct eap_packet * eapPacket); int diameap_eap_tls_buildReq_start(u8 id, struct eap_packet * eapPacket); int diameap_eap_tls_buildReq_data(struct tls_data * data,int id,struct eap_packet * eapPacket); -int diameap_eap_tls_parse(struct tls_msg * eaptls,struct eap_packet eapPacket); +int diameap_eap_tls_parse(struct tls_msg * eaptls,struct eap_packet *eapPacket); int eaptlsparse(struct tls_config * conf); #endif /* EAP_TLS_H_ */ diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/radius.c --- a/extensions/app_radgw/radius.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/radius.c Mon Apr 15 15:17:07 2013 +0800 @@ -518,7 +518,7 @@ unsigned char *pos, *end; int ret = 0; - TRACE_ENTRY("%p %g %p", buf, len, msg); + TRACE_ENTRY("%p %zd %p", buf, len, msg); CHECK_PARAMS( buf && len >= sizeof(*hdr) && msg ); diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/rgw_clients.c --- a/extensions/app_radgw/rgw_clients.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/rgw_clients.c Mon Apr 15 15:17:07 2013 +0800 @@ -162,7 +162,7 @@ if (now - r->received > DUPLICATE_CHECK_LIFETIME) { - TRACE_DEBUG(ANNOYING + 1, "Purging RADIUS request (id: %02hhx, port: %hu, dup #%d, age %d secs)", r->id, ntohs(r->port), r->nbdup, now - r->received); + TRACE_DEBUG(ANNOYING + 1, "Purging RADIUS request (id: %02hhx, port: %hu, dup #%d, age %ld secs)", r->id, ntohs(r->port), r->nbdup, (long)(now - r->received)); /* Remove this record */ fd_list_unlink(&r->by_time); @@ -458,8 +458,8 @@ if (dup) { time_t now = time(NULL); r->nbdup += 1; - TRACE_DEBUG(INFO, "Received duplicated RADIUS message (id: %02hhx, port: %hu, dup #%d, previously seen %d secs ago).", - r->id, ntohs(r->port), r->nbdup, now - r->received); + TRACE_DEBUG(INFO, "Received duplicated RADIUS message (id: %02hhx, port: %hu, dup #%d, previously seen %ld secs ago).", + r->id, ntohs(r->port), r->nbdup, (long)(now - r->received)); if (r->ans) { /* Resend the answer */ @@ -779,7 +779,7 @@ if (!found) { if (cli->type == RGW_CLI_NAS) { TRACE_DEBUG(INFO, "The NAS-Identifier value '%.*s' resolves to a different IP than the client's, discarding the message. Configure this client as a Proxy if this message should be valid.", - nas_id_len, nas_id + 1); + (int)nas_id_len, (char *)(nas_id + 1)); return EINVAL; } else { /* This identifier matches a different IP, assume it is a proxied message */ @@ -812,7 +812,7 @@ cli->aliases[cli->aliases_nb + 1].len = nas_id_len; cli->aliases_nb ++; - TRACE_DEBUG(FULL, "Saved valid alias for client: '%.*s' -> '%s'", nas_id_len, nas_id + 1, cli->fqdn); + TRACE_DEBUG(FULL, "Saved valid alias for client: '%.*s' -> '%s'", (int)nas_id_len, (char *)(nas_id + 1), cli->fqdn); CHECK_FCT( rgw_clients_get_origin(cli, &oh_str, &oh_strlen, &or_str, &or_strlen) ); } } else { diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/rgw_servers.c --- a/extensions/app_radgw/rgw_servers.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/rgw_servers.c Mon Apr 15 15:17:07 2013 +0800 @@ -278,7 +278,7 @@ { char __buf[1024]; sSA_DUMP_NODE_SERV(__buf, sizeof(__buf), &sto, NI_NUMERICHOST | NI_NUMERICSERV ); - TRACE_DEBUG(FULL, "Sending %d bytes to %s", buflen, __buf); + TRACE_DEBUG(FULL, "Sending %zd bytes to %s", buflen, __buf); } /* Send */ diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/rgwx_acct.c --- a/extensions/app_radgw/rgwx_acct.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/rgwx_acct.c Mon Apr 15 15:17:07 2013 +0800 @@ -364,7 +364,7 @@ int i; si = v + pref_len; si_len = attr_len - pref_len; - TRACE_DEBUG(ANNOYING, "Found Class attribute with '%s' prefix (attr #%d), SI:'%.*s'.", prefix, idx, si_len, si); + TRACE_DEBUG(ANNOYING, "Found Class attribute with '%s' prefix (attr #%d), SI:'%.*s'.", prefix, idx, (int)si_len, si); /* Remove from the message */ for (i = idx + 1; i < rad_req->attr_used; i++) rad_req->attr_pos[i - 1] = rad_req->attr_pos[i]; @@ -376,7 +376,7 @@ if (attr_len) { un = v; un_len = attr_len; - TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", un_len, un); + TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", (int)un_len, un); } break; @@ -489,7 +489,7 @@ { CHECK_FCT( fd_sess_fromsid_msg ( si, si_len, &sess, NULL) ); - TRACE_DEBUG(FULL, "[acct.rgwx] Translating new accounting message for session '%.*s'...", si_len, si); + TRACE_DEBUG(FULL, "[acct.rgwx] Translating new accounting message for session '%.*s'...", (int)si_len, si); /* Add the Session-Id AVP as first AVP */ CHECK_FCT( fd_msg_avp_new ( cs->dict.Session_Id, 0, &avp ) ); @@ -1270,19 +1270,19 @@ default: fd_log_debug("[acct.rgwx] Received Diameter answer with error code '%d' from server '%.*s', session %.*s, not translating into Accounting-Response", ahdr->avp_value->u32, - oh->avp_value->os.len, oh->avp_value->os.data, - sidlen, sid); + (int)oh->avp_value->os.len, oh->avp_value->os.data, + (int)sidlen, sid); CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Error_Message, &avp) ); if (avp) { CHECK_FCT( fd_msg_avp_hdr ( avp, &ahdr ) ); fd_log_debug("[acct.rgwx] Error-Message content: '%.*s'", - ahdr->avp_value->os.len, ahdr->avp_value->os.data); + (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); } CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Error_Reporting_Host, &avp) ); if (avp) { CHECK_FCT( fd_msg_avp_hdr ( avp, &ahdr ) ); fd_log_debug("[acct.rgwx] Error-Reporting-Host: '%.*s'", - ahdr->avp_value->os.len, ahdr->avp_value->os.data); + (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); } CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Failed_AVP, &avp) ); if (avp) { diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/rgwx_auth.c --- a/extensions/app_radgw/rgwx_auth.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/rgwx_auth.c Mon Apr 15 15:17:07 2013 +0800 @@ -368,7 +368,7 @@ si = attr_val + i; si_len = attr_len - i; - TRACE_DEBUG(ANNOYING, "Attribute parsed successfully: DH:'%.*s' DR:'%.*s' SI:'%.*s'.", dh_len, dh, dr_len, dr, si_len, si); + TRACE_DEBUG(ANNOYING, "Attribute parsed successfully: DH:'%.*s' DR:'%.*s' SI:'%.*s'.", (int)dh_len, dh, (int)dr_len, dr, (int)si_len, si); /* Remove from the message */ for (i = idx + 1; i < rad_req->attr_used; i++) rad_req->attr_pos[i - 1] = rad_req->attr_pos[i]; @@ -378,7 +378,7 @@ break; case RADIUS_ATTR_USER_NAME: - TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", attr_len, attr_len ? (char *)attr_val : ""); + TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", (int)attr_len, attr_len ? (char *)attr_val : ""); un = attr_val; un_len = attr_len; break; @@ -1241,19 +1241,19 @@ (*rad_fw)->hdr->code = RADIUS_CODE_ACCESS_REJECT; fd_log_debug("[auth.rgwx] Received Diameter answer with error code '%d' from server '%.*s', session %.*s, translating into Access-Reject", ahdr->avp_value->u32, - oh->avp_value->os.len, oh->avp_value->os.data, - sidlen, sid); + (int)oh->avp_value->os.len, oh->avp_value->os.data, + (int)sidlen, sid); CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Error_Message, &avp_x) ); if (avp_x) { CHECK_FCT( fd_msg_avp_hdr ( avp_x, &ahdr ) ); fd_log_debug("[auth.rgwx] Error-Message content: '%.*s'", - ahdr->avp_value->os.len, ahdr->avp_value->os.data); + (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); } CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Error_Reporting_Host, &avp_x) ); if (avp_x) { CHECK_FCT( fd_msg_avp_hdr ( avp_x, &ahdr ) ); fd_log_debug("[auth.rgwx] Error-Reporting-Host: '%.*s'", - ahdr->avp_value->os.len, ahdr->avp_value->os.data); + (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); } CHECK_FCT( fd_msg_search_avp (*diam_ans, cs->dict.Failed_AVP, &avp_x) ); if (avp_x) { @@ -1456,8 +1456,8 @@ ahdr->avp_value->u32, (ahdr->avp_value->u32 == 1) ? "AUTHENTICATE_ONLY" : ((ahdr->avp_value->u32 == 2) ? "AUTHORIZE_ONLY" : "???"), - oh->avp_value->os.len, oh->avp_value->os.data, - sidlen, sid); + (int)oh->avp_value->os.len, oh->avp_value->os.data, + (int)sidlen, sid); } break; @@ -1617,8 +1617,8 @@ case DIAM_ATTR_NAS_FILTER_RULE: /* This is not translatable to RADIUS */ fd_log_debug("[auth.rgwx] Received Diameter answer with non-translatable NAS-Filter-Rule AVP from '%.*s' (session: '%.*s'), ignoring.", - oh->avp_value->os.len, oh->avp_value->os.data, - sidlen, sid); + (int)oh->avp_value->os.len, oh->avp_value->os.data, + (int)sidlen, sid); handled = 0; break; @@ -1650,8 +1650,8 @@ case DIAM_ATTR_QOS_FILTER_RULE: /* This is not translatable to RADIUS */ fd_log_debug("[auth.rgwx] Received Diameter answer with non-translatable QoS-Filter-Rule AVP from '%.*s' (session: '%.*s'), ignoring.", - oh->avp_value->os.len, oh->avp_value->os.data, - sidlen, sid); + (int)oh->avp_value->os.len, oh->avp_value->os.data, + (int)sidlen, sid); handled = 0; break; @@ -1858,7 +1858,7 @@ CHECK_FCT(rgw_clients_getkey(cli, &secret, &secret_len)); if (ahdr->avp_value->os.len != 64) { - TRACE_DEBUG(INFO, "Received EAP-Master-Session-Key attribute with length %d != 64.", ahdr->avp_value->os.len) + TRACE_DEBUG(INFO, "Received EAP-Master-Session-Key attribute with length %zd != 64.", ahdr->avp_value->os.len) } CHECK_PARAMS(ahdr->avp_value->os.len <= 64); diff -r beb375690453 -r 0117a7746b21 extensions/app_radgw/rgwx_sip.c --- a/extensions/app_radgw/rgwx_sip.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_radgw/rgwx_sip.c Mon Apr 15 15:17:07 2013 +0800 @@ -365,7 +365,7 @@ case RADIUS_ATTR_USER_NAME: if (attr->length>sizeof(struct radius_attr_hdr)) { - TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", attr->length- sizeof(struct radius_attr_hdr), (char *)(attr+1)); + TRACE_DEBUG(ANNOYING, "Found a User-Name attribute: '%.*s'", (int)(attr->length- sizeof(struct radius_attr_hdr)), (char *)(attr+1)); un = (os0_t)(attr + 1); un_len =attr->length - sizeof(struct radius_attr_hdr); } @@ -801,7 +801,7 @@ default: (*rad_fw)->hdr->code = RADIUS_CODE_ACCESS_REJECT; fd_log_debug("[sip.rgwx] Received Diameter answer with error code '%d', session %.*s, translating into Access-Reject", - ahdr->avp_value->u32, sidlen, sid); + ahdr->avp_value->u32, (int)sidlen, sid); return 0; } /* Remove this Result-Code avp */ diff -r beb375690453 -r 0117a7746b21 extensions/app_sip/app_sip.c --- a/extensions/app_sip/app_sip.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_sip/app_sip.c Mon Apr 15 15:17:07 2013 +0800 @@ -75,7 +75,7 @@ TRACE_DEBUG(FULL,"# mysql_database: *%s*",as_conf->mysql_database); TRACE_DEBUG(FULL,"# mysql_server: *%s*",as_conf->mysql_server); TRACE_DEBUG(FULL,"# mysql_port: *%d*",as_conf->mysql_port); - TRACE_DEBUG(FULL,"# mysql_port: *%d*",as_conf->mysql_prefix); + TRACE_DEBUG(FULL,"# mysql_port: *%s*",as_conf->mysql_prefix); TRACE_DEBUG(FULL,"***End of Diameter-SIP configuration extension***"); } diff -r beb375690453 -r 0117a7746b21 extensions/app_sip/app_sip.h --- a/extensions/app_sip/app_sip.h Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_sip/app_sip.h Mon Apr 15 15:17:07 2013 +0800 @@ -135,8 +135,8 @@ int accounting; }; -int app_sip_RTR_cb(struct rtrsipaor structure); -int app_sip_PPR_cb(struct pprsipaor structure); +int app_sip_RTR_cb(struct rtrsipaor *structure); +int app_sip_PPR_cb(struct pprsipaor *structure); int ds_entry(); diff -r beb375690453 -r 0117a7746b21 extensions/app_sip/pushprofile.c --- a/extensions/app_sip/pushprofile.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_sip/pushprofile.c Mon Apr 15 15:17:07 2013 +0800 @@ -76,7 +76,7 @@ if(rcvbytes>-1) { //We received something, we can send an PPR - app_sip_PPR_cb(pprsip); + app_sip_PPR_cb(&pprsip); } } } @@ -91,7 +91,7 @@ } //Called to send a PPR -int app_sip_PPR_cb(struct pprsipaor structure) +int app_sip_PPR_cb(struct pprsipaor *structure) { /* TRACE_ENTRY("%p", structure); diff -r beb375690453 -r 0117a7746b21 extensions/app_sip/registrationtermination.c --- a/extensions/app_sip/registrationtermination.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/app_sip/registrationtermination.c Mon Apr 15 15:17:07 2013 +0800 @@ -74,7 +74,7 @@ if(rcvbytes>-1) { //We received something, we can send an RTR - app_sip_RTR_cb(rtrsip); + app_sip_RTR_cb(&rtrsip); } } } @@ -87,7 +87,7 @@ } //Called to send a RTR -int app_sip_RTR_cb(struct rtrsipaor structure) +int app_sip_RTR_cb(struct rtrsipaor *structure) { TRACE_ENTRY("%p", structure); @@ -101,21 +101,21 @@ union avp_value value; //We must check that we have all needed value in structure - if(structure.username[0]!='\0') + if(structure->username[0]!='\0') got_username=1; - if(structure.sip_aor1[0]!='\0') + if(structure->sip_aor1[0]!='\0') { num_aor++; - if(structure.sip_aor2[0]!='\0') + if(structure->sip_aor2[0]!='\0') { num_aor++; - if(structure.sip_aor3[0]!='\0') + if(structure->sip_aor3[0]!='\0') num_aor++; } } - if(structure.strreason!='\0') + if(structure->strreason!='\0') got_streason=1; @@ -127,14 +127,14 @@ TRACE_DEBUG(INFO,"Can not proceed because there is no SIP_AOR or Username"); return EINVAL; } - if(structure.reason<0) + if(structure->reason<0) { //We must have a least a SIP_AOR or a Username TRACE_DEBUG(INFO,"Incorrect Reason-Code"); return EINVAL; } - if(structure.desthost[0]=='\0') + if(structure->desthost[0]=='\0') { //We must have a least a SIP_AOR or a Username TRACE_DEBUG(INFO,"No Destination_Host was provided!"); @@ -172,8 +172,8 @@ //Destination_Host { CHECK_FCT( fd_msg_avp_new ( sip_dict.Destination_Host, 0, &avp ) ); - value.os.data=(unsigned char *)structure.desthost; - value.os.len=(size_t)strlen(structure.desthost); + value.os.data=(unsigned char *)structure->desthost; + value.os.len=(size_t)strlen(structure->desthost); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_LAST_CHILD, avp ) ); } @@ -185,7 +185,7 @@ //Reason Code CHECK_FCT( fd_msg_avp_new ( sip_dict.SIP_Reason_Code, 0, &avp ) ); - value.i32=structure.reason; + value.i32=structure->reason; CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( groupedavp, MSG_BRW_LAST_CHILD, avp ) ); @@ -193,8 +193,8 @@ { //Reason Info CHECK_FCT( fd_msg_avp_new ( sip_dict.SIP_Reason_Info, 0, &avp ) ); - value.os.data=(unsigned char *)structure.strreason; - value.os.len=(size_t)strlen(structure.strreason); + value.os.data=(unsigned char *)structure->strreason; + value.os.len=(size_t)strlen(structure->strreason); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( groupedavp, MSG_BRW_LAST_CHILD, avp ) ); } @@ -208,8 +208,8 @@ if(got_username) { CHECK_FCT( fd_msg_avp_new ( sip_dict.User_Name, 0, &avp ) ); - value.os.data=(unsigned char *)structure.username; - value.os.len=(size_t)strlen(structure.username); + value.os.data=(unsigned char *)structure->username; + value.os.len=(size_t)strlen(structure->username); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_LAST_CHILD, avp ) ); } @@ -220,22 +220,22 @@ if(num_aor>0) { CHECK_FCT( fd_msg_avp_new ( sip_dict.SIP_AOR, 0, &avp ) ); - value.os.data=(unsigned char *)structure.sip_aor1; - value.os.len=(size_t)strlen(structure.sip_aor1); + value.os.data=(unsigned char *)structure->sip_aor1; + value.os.len=(size_t)strlen(structure->sip_aor1); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_LAST_CHILD, avp ) ); if(num_aor>1) { CHECK_FCT( fd_msg_avp_new ( sip_dict.SIP_AOR, 0, &avp ) ); - value.os.data=(unsigned char *)structure.sip_aor2; - value.os.len=(size_t)strlen(structure.sip_aor2); + value.os.data=(unsigned char *)structure->sip_aor2; + value.os.len=(size_t)strlen(structure->sip_aor2); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_LAST_CHILD, avp ) ); if(num_aor>2) { CHECK_FCT( fd_msg_avp_new ( sip_dict.SIP_AOR, 0, &avp ) ); - value.os.data=(unsigned char *)structure.sip_aor3; - value.os.len=(size_t)strlen(structure.sip_aor3); + value.os.data=(unsigned char *)structure->sip_aor3; + value.os.len=(size_t)strlen(structure->sip_aor3); CHECK_FCT( fd_msg_avp_setvalue( avp, &value ) ); CHECK_FCT( fd_msg_avp_add( message, MSG_BRW_LAST_CHILD, avp ) ); } diff -r beb375690453 -r 0117a7746b21 extensions/rt_ereg/rtereg.c --- a/extensions/rt_ereg/rtereg.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/rt_ereg/rtereg.c Mon Apr 15 15:17:07 2013 +0800 @@ -60,7 +60,7 @@ int err = 0; struct fd_list * c; - TRACE_DEBUG(ANNOYING, "Attempt pattern matching of '%.*s' with rule '%s'", len, value, r->pattern); + TRACE_DEBUG(ANNOYING, "Attempt pattern matching of '%.*s' with rule '%s'", (int)len, value, r->pattern); #ifdef HAVE_REG_STARTEND { @@ -106,7 +106,7 @@ /* From this point, the expression matched the AVP value */ TRACE_DEBUG(FULL, "[rt_ereg] Match: '%s' to value '%.*s' => '%s' += %d", r->pattern, - len, + (int)len, value, r->server, r->score); diff -r beb375690453 -r 0117a7746b21 extensions/rt_redirect/redir_fwd.c --- a/extensions/rt_redirect/redir_fwd.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/rt_redirect/redir_fwd.c Mon Apr 15 15:17:07 2013 +0800 @@ -121,18 +121,18 @@ CHECK_FCT_DO( fd_os_parse_DiameterURI(ahdr->avp_value->os.data, ahdr->avp_value->os.len, &id, &len, &secure, &port, &l4, &proto), { - TRACE_DEBUG(INFO, "Received an invalid Redirect-Host AVP value ('%.*s'), ignored", ahdr->avp_value->os.len, ahdr->avp_value->os.data); + TRACE_DEBUG(INFO, "Received an invalid Redirect-Host AVP value ('%.*s'), ignored", (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); break; } ); /* Now check if the transport & protocol are supported */ if (proto && (proto != 'd')) { - TRACE_DEBUG(FULL, "Ignored unsupported non-Diameter Redirect-Host AVP (%.*s)", ahdr->avp_value->os.len, ahdr->avp_value->os.data); + TRACE_DEBUG(FULL, "Ignored unsupported non-Diameter Redirect-Host AVP (%.*s)", (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); free(id); break; } if (l4 && (l4 == IPPROTO_UDP)) { - TRACE_DEBUG(FULL, "Ignored unsupported UDP Redirect-Host AVP (%.*s)", ahdr->avp_value->os.len, ahdr->avp_value->os.data); + TRACE_DEBUG(FULL, "Ignored unsupported UDP Redirect-Host AVP (%.*s)", (int)ahdr->avp_value->os.len, ahdr->avp_value->os.data); free(id); break; } diff -r beb375690453 -r 0117a7746b21 extensions/rt_redirect/redir_out.c --- a/extensions/rt_redirect/redir_out.c Sat Apr 13 22:18:05 2013 +0200 +++ b/extensions/rt_redirect/redir_out.c Mon Apr 15 15:17:07 2013 +0800 @@ -172,7 +172,7 @@ if (e->type == ALL_HOST) { cmp = fd_os_almostcasesrch(cand->diamid, cand->diamidlen, e->data.host.s, e->data.host.l, NULL); if (!cmp) { - TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (previous ALL_HOST Redirect originated from this peer)", msg, cand->diamidlen, cand->diamid, FD_SCORE_SENT_REDIRECT); + TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (previous ALL_HOST Redirect originated from this peer)", msg, (int)cand->diamidlen, cand->diamid, FD_SCORE_SENT_REDIRECT); cand->score += FD_SCORE_SENT_REDIRECT; c_oh = cand; continue; @@ -181,7 +181,7 @@ cmp = fd_os_cmp(cand->diamid, cand->diamidlen, e->from.s, e->from.l); if (!cmp) { - TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (previous Redirect received from this peer)", msg, cand->diamidlen, cand->diamid, FD_SCORE_SENT_REDIRECT); + TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (previous Redirect received from this peer)", msg, (int)cand->diamidlen, cand->diamid, FD_SCORE_SENT_REDIRECT); cand->score += FD_SCORE_SENT_REDIRECT; } @@ -205,7 +205,7 @@ cmp = fd_os_almostcasesrch( cand->diamid, cand->diamidlen, host->id, host->len, &cont ); if (cmp == 0) { - TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (rule t:%d @%p)", msg, cand->diamidlen, cand->diamid, redirects_usages[e->type].score, e->type, e); + TRACE_DEBUG(FULL, "Redirect msg %p: peer '%.*s' += %d (rule t:%d @%p)", msg, (int)cand->diamidlen, cand->diamid, redirects_usages[e->type].score, e->type, e); cand->score += redirects_usages[e->type].score; break; } diff -r beb375690453 -r 0117a7746b21 include/freeDiameter/libfdproto.h --- a/include/freeDiameter/libfdproto.h Sat Apr 13 22:18:05 2013 +0200 +++ b/include/freeDiameter/libfdproto.h Mon Apr 15 15:17:07 2013 +0800 @@ -83,6 +83,11 @@ #include /* for basename if --dbg_file is specified */ #endif /* DEBUG */ +#ifdef SWIG +#define _ATTRIBUTE_PRINTFLIKE_(_f,_v) +#else +#define _ATTRIBUTE_PRINTFLIKE_(_f,_v) __attribute__ ((format (printf, _f, _v))) +#endif /* SWIG */ /*============================================================*/ /* CONSTANTS */ @@ -127,7 +132,7 @@ * RETURN VALUE: * None. */ -void fd_log ( int, const char *, ... ) __attribute__ ((format (printf, 2, 3))); +void fd_log ( int, const char *, ... ) _ATTRIBUTE_PRINTFLIKE_(2,3); #define fd_log_debug(format,args...) fd_log(FD_LOG_DEBUG, format, ## args) #define fd_log_notice(format,args...) fd_log(FD_LOG_NOTICE, format, ## args) #define fd_log_error(format,args...) fd_log(FD_LOG_ERROR, format, ## args) @@ -783,9 +788,9 @@ CHECK_POSIX( pthread_join(*th, &th_ret) ); if (th_ret == PTHREAD_CANCELED) { - TRACE_DEBUG(ANNOYING, "The thread %p was canceled", *th); + TRACE_DEBUG(ANNOYING, "The thread %p was canceled", (void *)*th); } else { - TRACE_DEBUG(CALL, "The thread %p returned %p", *th, th_ret); + TRACE_DEBUG(CALL, "The thread %p returned %p", (void *)*th, th_ret); } /* Clean the location */ @@ -2336,7 +2341,7 @@ FD_MSG_LOG_TIMING /* profiling messages */ }; #define FD_MSG_LOG_MAX FD_MSG_LOG_TIMING -void fd_msg_log( enum fd_msg_log_cause cause, struct msg * msg, const char * prefix_format, ... ) __attribute__ ((format (printf, 3, 4))); +void fd_msg_log( enum fd_msg_log_cause cause, struct msg * msg, const char * prefix_format, ... ) _ATTRIBUTE_PRINTFLIKE_(3,4); /* configure the msg_log facility */ enum fd_msg_log_method { diff -r beb375690453 -r 0117a7746b21 libfdcore/cnxctx.c --- a/libfdcore/cnxctx.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/cnxctx.c Mon Apr 15 15:17:07 2013 +0800 @@ -512,7 +512,7 @@ /* Get the list of endpoints (IP addresses) of the local and remote peers on this connection */ int fd_cnx_getremoteeps(struct cnxctx * conn, struct fd_list * eps) { - TRACE_ENTRY("%p %p %p", conn, eps); + TRACE_ENTRY("%p %p", conn, eps); CHECK_PARAMS(conn && eps); /* Check we have a full connection object, not a listening socket (with no remote) */ @@ -1209,7 +1209,7 @@ for (j = 0; j < size; j++) { snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "%02hhx", serial[j]); } - fd_log_debug(buf); + fd_log_debug("%s", buf); } /* Extract some of the public key algorithm's parameters */ diff -r beb375690453 -r 0117a7746b21 libfdcore/config.c --- a/libfdcore/config.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/config.c Mon Apr 15 15:17:07 2013 +0800 @@ -225,6 +225,9 @@ } #endif /* GNUTLS_VERSION_300 */ +#ifndef GNUTLS_VERSION_300 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif /* !GNUTLS_VERSION_300 */ /* Parse the configuration file (using the yacc parser) */ int fd_conf_parse() { @@ -473,10 +476,8 @@ unsigned int verify; time_t now; - #pragma GCC diagnostic ignored "-Wdeprecated-declarations" GNUTLS_TRACE( gnutls_certificate_get_x509_cas (fd_g_config->cnf_sec_data.credentials, &CA_list, (unsigned int *) &CA_list_length) ); GNUTLS_TRACE( gnutls_certificate_get_x509_crls (fd_g_config->cnf_sec_data.credentials, &CRL_list, (unsigned int *) &CRL_list_length) ); - #pragma GCC diagnostic warning "-Wdeprecated-declarations" CHECK_GNUTLS_DO( gnutls_x509_crt_list_verify(certs, cert_max, CA_list, CA_list_length, CRL_list, CRL_list_length, 0, &verify), { TRACE_ERROR("Failed to verify the local certificate '%s' against local credentials. Please check your certificate is valid.", fd_g_config->cnf_sec_data.cert_file); @@ -596,6 +597,9 @@ return 0; } +#ifndef GNUTLS_VERSION_300 +# pragma GCC diagnostic pop "-Wdeprecated-declarations" +#endif /* !GNUTLS_VERSION_300 */ /* Destroy contents of fd_g_config structure */ diff -r beb375690453 -r 0117a7746b21 libfdcore/core.c --- a/libfdcore/core.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/core.c Mon Apr 15 15:17:07 2013 +0800 @@ -37,7 +37,7 @@ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #include -#pragma GCC diagnostic warning "-Wdeprecated-declarations" +#pragma GCC diagnostic pop "-Wdeprecated-declarations" /* The static configuration structure */ static struct fd_config g_conf; diff -r beb375690453 -r 0117a7746b21 libfdcore/p_ce.c --- a/libfdcore/p_ce.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/p_ce.c Mon Apr 15 15:17:07 2013 +0800 @@ -306,7 +306,7 @@ if (fd_os_almostcasesrch(hdr->avp_value->os.data, hdr->avp_value->os.len, peer->p_hdr.info.pi_diamid, peer->p_hdr.info.pi_diamidlen, NULL)) { TRACE_DEBUG(INFO, "Received a message with Origin-Host set to '%.*s' while expecting '%s'", - hdr->avp_value->os.len, hdr->avp_value->os.data, peer->p_hdr.info.pi_diamid); + (int)hdr->avp_value->os.len, hdr->avp_value->os.data, peer->p_hdr.info.pi_diamid); error->pei_errcode = "DIAMETER_AVP_NOT_ALLOWED"; error->pei_message = "Your Origin-Host value does not match my configuration."; error->pei_avp = avp; diff -r beb375690453 -r 0117a7746b21 libfdcore/p_out.c --- a/libfdcore/p_out.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/p_out.c Mon Apr 15 15:17:07 2013 +0800 @@ -84,7 +84,7 @@ (void) fd_msg_ts_get_recv(cpy_for_logs_only, &rcvon); if (rcvon.tv_sec != 0 || rcvon.tv_nsec != 0) { TS_DIFFERENCE( &delay, &rcvon, &senton); - fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Forwarded in %d.%06.6d sec", delay.tv_sec, delay.tv_nsec/1000); + fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Forwarded in %ld.%6.6ld sec", (long)delay.tv_sec, delay.tv_nsec/1000); } else { /* We log the answer time only for answers generated locally */ if (!msg_is_a_req) { /* get the matching request */ @@ -93,7 +93,7 @@ (void) fd_msg_answ_getq(cpy_for_logs_only, &req); (void) fd_msg_ts_get_recv(req, &reqrcvon); TS_DIFFERENCE( &delay, &reqrcvon, &senton); - fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Answered in %d.%06.6d sec", delay.tv_sec, delay.tv_nsec/1000); + fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Answered in %ld.%6.6ld sec", (long)delay.tv_sec, delay.tv_nsec/1000); } } } diff -r beb375690453 -r 0117a7746b21 libfdcore/p_psm.c --- a/libfdcore/p_psm.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/p_psm.c Mon Apr 15 15:17:07 2013 +0800 @@ -537,7 +537,7 @@ struct timespec reqsent, delay; (void) fd_msg_ts_get_sent(req, &reqsent); TS_DIFFERENCE( &delay, &reqsent, &rcvon ); - fd_msg_log( FD_MSG_LOG_TIMING, msg, "Answer received in %d.%06.6d sec.", delay.tv_sec, delay.tv_nsec / 1000 ); + fd_msg_log( FD_MSG_LOG_TIMING, msg, "Answer received in %ld.%6.6ld sec.", (long)delay.tv_sec, delay.tv_nsec / 1000 ); } } else { /* Mark the incoming request so that we know we have pending answers for this peer */ diff -r beb375690453 -r 0117a7746b21 libfdcore/peers.c --- a/libfdcore/peers.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/peers.c Mon Apr 15 15:17:07 2013 +0800 @@ -423,20 +423,20 @@ if (peer->p_hdr.info.runtime.pir_prodname) snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\t['%s' %u]", peer->p_hdr.info.runtime.pir_prodname, peer->p_hdr.info.runtime.pir_firmrev); } - fd_log_debug(buf); + fd_log_debug("%s", buf); if (details > FULL) { /* Dump all info */ fd_log_debug("\tEntry origin : %s", peer->p_dbgorig?: "not set"); - fd_log_debug("\tConfig flags : %s%s%s%s%s - %s%s%s", - peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_DEFAULT ? "" : - (peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_IP ? "IP." : "IPv6."), - peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_DEFAULT ? "" : - (peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_TCP ? "TCP." : "SCTP."), - peer->p_hdr.info.config.pic_flags.alg ? "PrefTCP." : "", - peer->p_hdr.info.config.pic_flags.sec & PI_SEC_NONE ? "NoTLSok" :"", - peer->p_hdr.info.config.pic_flags.sec & PI_SEC_TLS_OLD ? "OldTLS" :"", - peer->p_hdr.info.config.pic_flags.exp ? "Expire." : "", - peer->p_hdr.info.config.pic_flags.persist ? "Persist." : "" + fd_log_debug("\tConfig flags : %s%s%s - %s%s - %s%s", + peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_DEFAULT ? "." : + (peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_IP ? "IP" : "IPv6"), + peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_DEFAULT ? "." : + (peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_TCP ? "TCP" : "SCTP"), + peer->p_hdr.info.config.pic_flags.alg ? "PrefTCP" : ".", + peer->p_hdr.info.config.pic_flags.sec & PI_SEC_NONE ? "NoTLSok" :".", + peer->p_hdr.info.config.pic_flags.sec & PI_SEC_TLS_OLD ? "OldTLS" :".", + peer->p_hdr.info.config.pic_flags.exp ? "Expire" : ".", + peer->p_hdr.info.config.pic_flags.persist ? "Persist" : "." ); fd_log_debug("\tLifetime : %d sec", peer->p_hdr.info.config.pic_lft); } diff -r beb375690453 -r 0117a7746b21 libfdcore/routing_dispatch.c --- a/libfdcore/routing_dispatch.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/routing_dispatch.c Mon Apr 15 15:17:07 2013 +0800 @@ -361,9 +361,9 @@ dr->os.len = sep_idx; TRACE_DEBUG(FULL, "Processed Decorated NAI : '%.*s' became '%.*s' (%.*s)", - un->os.len, old_un, - at_idx, un->os.data, - dr->os.len, dr->os.data); + (int)un->os.len, old_un, + (int)at_idx, un->os.data, + (int)dr->os.len, dr->os.data); un->os.len = at_idx; free(old_un); diff -r beb375690453 -r 0117a7746b21 libfdcore/sctp.c --- a/libfdcore/sctp.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/sctp.c Mon Apr 15 15:17:07 2013 +0800 @@ -1036,7 +1036,7 @@ mhdr.msg_control = anci; mhdr.msg_controllen = sizeof(anci); - TRACE_DEBUG(FULL, "Sending %db data on stream %hu of socket %d", len, strid, conn->cc_socket); + TRACE_DEBUG(FULL, "Sending %zdb data on stream %hu of socket %d", len, strid, conn->cc_socket); again: ret = sendmsg(conn->cc_socket, &mhdr, 0); /* Handle special case of timeout */ @@ -1134,7 +1134,7 @@ if (mhdr.msg_flags & MSG_NOTIFICATION) { union sctp_notification * notif = (union sctp_notification *) data; - TRACE_DEBUG(FULL, "Received %db data of notification on socket %d", datasize, conn->cc_socket); + TRACE_DEBUG(FULL, "Received %zdb data of notification on socket %d", datasize, conn->cc_socket); switch (notif->sn_header.sn_type) { @@ -1232,9 +1232,9 @@ *strid = sndrcv->sinfo_stream; } - TRACE_DEBUG(FULL, "Received %db data on socket %d, stream %hu", datasize, conn->cc_socket, *strid); + TRACE_DEBUG(FULL, "Received %zdb data on socket %d, stream %hu", datasize, conn->cc_socket, *strid); } else { - TRACE_DEBUG(FULL, "Received %db data on socket %d (stream ignored)", datasize, conn->cc_socket); + TRACE_DEBUG(FULL, "Received %zdb data on socket %d (stream ignored)", datasize, conn->cc_socket); } return 0; diff -r beb375690453 -r 0117a7746b21 libfdcore/sctps.c --- a/libfdcore/sctps.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdcore/sctps.c Mon Apr 15 15:17:07 2013 +0800 @@ -94,7 +94,7 @@ /* Note, here the timespec is piggytailed to buf */ CHECK_FCT_DO(fd_event_send(conn->cc_sctps_data.array[strid].raw_recv, event, bufsz, buf), goto fatal ); } else { - TRACE_DEBUG(INFO, "Received packet (%d bytes) on out-of-range stream #%d from %s, discarded.", bufsz, strid, conn->cc_remid); + TRACE_DEBUG(INFO, "Received packet (%zd bytes) on out-of-range stream #%d from %s, discarded.", bufsz, strid, conn->cc_remid); free(buf); } break; @@ -229,6 +229,9 @@ } /* Set the parameters of a session to use the appropriate fifo and stream information */ +#ifndef GNUTLS_VERSION_300 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif /* !GNUTLS_VERSION_300 */ static void set_sess_transport(gnutls_session_t session, struct sctps_ctx *ctx) { /* Set the transport pointer passed to push & pull callbacks */ @@ -237,9 +240,7 @@ /* Reset the low water value, since we don't use sockets */ #ifndef GNUTLS_VERSION_300 /* starting version 2.12, this call is not needed */ - #pragma GCC diagnostic ignored "-Wdeprecated-declarations" GNUTLS_TRACE( gnutls_transport_set_lowat( session, 0 ) ); - #pragma GCC diagnostic warning "-Wdeprecated-declarations" #endif /* GNUTLS_VERSION_300 */ /* Set the push and pull callbacks */ @@ -248,6 +249,9 @@ return; } +#ifndef GNUTLS_VERSION_300 +# pragma GCC diagnostic pop "-Wdeprecated-declarations" +#endif /* !GNUTLS_VERSION_300 */ /*************************************************************/ /* Session resuming support */ diff -r beb375690453 -r 0117a7746b21 libfdproto/dictionary.c --- a/libfdproto/dictionary.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdproto/dictionary.c Mon Apr 15 15:17:07 2013 +0800 @@ -34,6 +34,7 @@ *********************************************************************************************************/ #include "fdproto-internal.h" +#include /* Names of the base types */ const char * type_base_name[] = { /* must keep in sync with dict_avp_basetype */ @@ -1178,7 +1179,7 @@ if (enumval->enum_value.os.len < LEN_MAX) n = enumval->enum_value.os.len; for (i=0; i < n; i++) - fd_log_debug("0x%02.2X/'%c' ", enumval->enum_value.os.data[i], ASCII(enumval->enum_value.os.data[i])); + fd_log_debug("0x%02hhX/'%c' ", enumval->enum_value.os.data[i], ASCII(enumval->enum_value.os.data[i])); if (n == LEN_MAX) fd_log_debug("..."); } @@ -1189,7 +1190,7 @@ break; case AVP_TYPE_INTEGER64: - fd_log_debug("%lli", enumval->enum_value.i64); + fd_log_debug(PRId64, enumval->enum_value.i64); break; case AVP_TYPE_UNSIGNED32: @@ -1197,7 +1198,7 @@ break; case AVP_TYPE_UNSIGNED64: - fd_log_debug("%llu", enumval->enum_value.u64); + fd_log_debug(PRIu64, enumval->enum_value.u64); break; case AVP_TYPE_FLOAT32: diff -r beb375690453 -r 0117a7746b21 libfdproto/log.c --- a/libfdproto/log.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdproto/log.c Mon Apr 15 15:17:07 2013 +0800 @@ -165,7 +165,7 @@ if (val) { fd_log_debug("(Thread '%s' renamed to '%s')", (char *)val, name?:"(nil)"); } else { - fd_log_debug("(Thread %p named '%s')", pthread_self(), name?:"(nil)"); + fd_log_debug("(Thread %p named '%s')", (void *)pthread_self(), name?:"(nil)"); } } if (val != NULL) { diff -r beb375690453 -r 0117a7746b21 libfdproto/messages.c --- a/libfdproto/messages.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdproto/messages.c Mon Apr 15 15:17:07 2013 +0800 @@ -1516,7 +1516,7 @@ /* Write a message header in the buffer */ static int bufferize_msg(unsigned char * buffer, size_t buflen, size_t * offset, struct msg * msg) { - TRACE_ENTRY("%p %d %p %p", buffer, buflen, offset, msg); + TRACE_ENTRY("%p %zd %p %p", buffer, buflen, offset, msg); if ((buflen - *offset) < GETMSGHDRSZ()) return ENOSPC; @@ -1551,7 +1551,7 @@ { struct dict_avp_data dictdata; - TRACE_ENTRY("%p %d %p %p", buffer, buflen, offset, avp); + TRACE_ENTRY("%p %zd %p %p", buffer, buflen, offset, avp); if ((buflen - *offset) < avp->avp_public.avp_len) return ENOSPC; @@ -1648,7 +1648,7 @@ { struct fd_list * avpch; - TRACE_ENTRY("%p %d %p %p", buffer, buflen, offset, list); + TRACE_ENTRY("%p %zd %p %p", buffer, buflen, offset, list); for (avpch = list->next; avpch != list; avpch = avpch->next) { /* Bufferize the AVP */ @@ -1711,13 +1711,13 @@ { size_t offset = 0; - TRACE_ENTRY("%p %d %p", buf, buflen, head); + TRACE_ENTRY("%p %zd %p", buf, buflen, head); while (offset < buflen) { struct avp * avp; if (buflen - offset < AVPHDRSZ_NOVEND) { - TRACE_DEBUG(INFO, "truncated buffer: remaining only %d bytes", buflen - offset); + TRACE_DEBUG(INFO, "truncated buffer: remaining only %zd bytes", buflen - offset); return EBADMSG; } @@ -1735,7 +1735,7 @@ if (avp->avp_public.avp_flags & AVP_FLAG_VENDOR) { if (buflen - offset < 4) { - TRACE_DEBUG(INFO, "truncated buffer: remaining only %d bytes for vendor and data", buflen - offset); + TRACE_DEBUG(INFO, "truncated buffer: remaining only %zd bytes for vendor and data", buflen - offset); free(avp); return EBADMSG; } @@ -1746,7 +1746,7 @@ /* Check there is enough remaining data in the buffer */ if ( (avp->avp_public.avp_len > GETAVPHDRSZ(avp->avp_public.avp_flags)) && (buflen - offset < avp->avp_public.avp_len - GETAVPHDRSZ(avp->avp_public.avp_flags))) { - TRACE_DEBUG(INFO, "truncated buffer: remaining only %d bytes for data, and avp data size is %d", + TRACE_DEBUG(INFO, "truncated buffer: remaining only %zd bytes for data, and avp data size is %d", buflen - offset, avp->avp_public.avp_len - GETAVPHDRSZ(avp->avp_public.avp_flags)); free(avp); @@ -1774,7 +1774,7 @@ uint32_t msglen = 0; unsigned char * buf; - TRACE_ENTRY("%p %d %p", buffer, buflen, msg); + TRACE_ENTRY("%p %zd %p", buffer, buflen, msg); CHECK_PARAMS( buffer && *buffer && msg && (buflen >= GETMSGHDRSZ()) ); buf = *buffer; @@ -1788,7 +1788,7 @@ msglen = ntohl(*(uint32_t *)buf) & 0x00ffffff; if ( buflen < msglen ) { - TRACE_DEBUG(INFO, "Truncated message (%d / %d)", buflen, msglen ); + TRACE_DEBUG(INFO, "Truncated message (%zd / %d)", buflen, msglen ); free(buf); return EBADMSG; } diff -r beb375690453 -r 0117a7746b21 libfdproto/ostr.c --- a/libfdproto/ostr.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdproto/ostr.c Mon Apr 15 15:17:07 2013 +0800 @@ -169,10 +169,10 @@ goto disp; } /* otherwise, we just display the hex code */ - TRACE_DEBUG(INFO, "Invalid character (0x%hhX) at offset %d in DiameterIdentity '%.*s'", os[i], i+1, ossz, os); + TRACE_DEBUG(INFO, "Invalid character (0x%hhX) at offset %d in DiameterIdentity '%.*s'", os[i], i+1, (int)ossz, os); return 0; disp: - TRACE_DEBUG(INFO, "Invalid character '%.*s' at offset %d in DiameterIdentity '%.*s'", nb, os + i, i+1, ossz, os); + TRACE_DEBUG(INFO, "Invalid character '%.*s' at offset %d in DiameterIdentity '%.*s'", nb, os + i, i+1, (int)ossz, os); return 0; } @@ -290,7 +290,7 @@ /* Remaining of URI marker */ if (memcmp( uri + offset, "://", 3)) { - TRACE_DEBUG(INFO, "Invalid DiameterURI prefix: got '%.*s', expected 'aaa://' or 'aaas://'", offset + 3, uri); + TRACE_DEBUG(INFO, "Invalid DiameterURI prefix: got '%.*s', expected 'aaa://' or 'aaas://'", (int)offset + 3, uri); return EINVAL; } offset += 3; @@ -379,7 +379,7 @@ goto after_transport; } - TRACE_DEBUG(INFO, "Invalid DiameterURI: transport string is not recognized ('%.*s').", urisz - offset, uri + offset); + TRACE_DEBUG(INFO, "Invalid DiameterURI: transport string is not recognized ('%.*s').", (int)(urisz - offset), uri + offset); return EINVAL; } after_transport: @@ -416,7 +416,7 @@ goto after_proto; } - TRACE_DEBUG(INFO, "Invalid DiameterURI: protocol string is not recognized ('%.*s').", urisz - offset, uri + offset); + TRACE_DEBUG(INFO, "Invalid DiameterURI: protocol string is not recognized ('%.*s').", (int)(urisz - offset), uri + offset); return EINVAL; } @@ -424,7 +424,7 @@ if (offset == urisz) return 0; /* Finished */ - TRACE_DEBUG(INFO, "Invalid DiameterURI: final part of string is not recognized ('%.*s').", urisz - offset, uri + offset); + TRACE_DEBUG(INFO, "Invalid DiameterURI: final part of string is not recognized ('%.*s').", (int)(urisz - offset), uri + offset); return EINVAL; } diff -r beb375690453 -r 0117a7746b21 libfdproto/sessions.c --- a/libfdproto/sessions.c Sat Apr 13 22:18:05 2013 +0200 +++ b/libfdproto/sessions.c Mon Apr 15 15:17:07 2013 +0800 @@ -522,11 +522,11 @@ { int ret; - TRACE_ENTRY("%p %d %p %p", sid, len, session, new); + TRACE_ENTRY("%p %zd %p %p", sid, len, session, new); CHECK_PARAMS( sid && session ); if (!fd_os_is_valid_os0(sid,len)) { - TRACE_DEBUG(INFO, "Warning: a Session-Id value contains \\0 chars... (len:%zd, begin:'%.*s') => Debug messages may be truncated.", len, len, sid); + TRACE_DEBUG(INFO, "Warning: a Session-Id value contains \\0 chars... (len:%zd, begin:'%.*s') => Debug messages may be truncated.", len, (int)len, sid); } /* All the work is done in sess_new */