00001
00054 #ifndef _CDP_BIND_H
00055 #define _CDP_BIND_H
00056
00057 #define CDP_FOR_SER 1
00058
00059 #include "utils.h"
00060 #include "diameter.h"
00061 #include "diameter_ims.h"
00062 #include "peer.h"
00063
00064 #define NO_SCRIPT -1
00065
00066
00067 typedef AAAMessage* (*AAACreateRequest_f)(AAAApplicationId app_id,
00068 AAACommandCode command_code,
00069 AAAMsgFlag flags,
00070 AAASessionId *sessId);
00071 typedef AAAMessage* (*AAACreateResponse_f)(AAAMessage *request);
00072
00073 typedef AAASessionId (*AAACreateSession_f)();
00074 typedef int (*AAADropSession_f)(AAASessionId *s);
00075
00076 typedef AAATransaction * (*AAACreateTransaction_f)(AAAApplicationId app_id,AAACommandCode cmd_code);
00077 typedef int (*AAADropTransaction_f)(AAATransaction *trans);
00078
00079
00080 typedef AAA_AVP* (*AAACreateAVP_f)(
00081 AAA_AVPCode code,
00082 AAA_AVPFlag flags,
00083 AAAVendorId vendorId,
00084 char *data,
00085 size_t length,
00086 AVPDataStatus data_status);
00087
00088 typedef AAAReturnCode (*AAAAddAVPToMessage_f)(
00089 AAAMessage *msg,
00090 AAA_AVP *avp,
00091 AAA_AVP *position);
00092
00093 typedef AAA_AVP* (*AAAFindMatchingAVP_f)(
00094 AAAMessage *msg,
00095 AAA_AVP *startAvp,
00096 AAA_AVPCode avpCode,
00097 AAAVendorId vendorId,
00098 AAASearchType searchType);
00099
00100 typedef AAA_AVP *(*AAAFindMatchingAVPList_f)(
00101 AAA_AVP_LIST avpList,
00102 AAA_AVP *startAvp,
00103 AAA_AVPCode avpCode,
00104 AAAVendorId vendorId,
00105 AAASearchType searchType);
00106 typedef AAA_AVP* (*AAAGetNextAVP_f)(AAA_AVP *avp);
00107
00108
00109
00110 typedef AAAReturnCode (*AAAFreeAVP_f)(
00111 AAA_AVP **avp);
00112
00113 typedef AAAReturnCode (*AAAFreeAVPList_f)(AAA_AVP_LIST *avpList);
00114
00115 typedef str (*AAAGroupAVPS_f)(AAA_AVP_LIST avps);
00116
00117 typedef AAA_AVP_LIST (*AAAUngroupAVPS_f)(str buf);
00118
00119
00120 typedef AAAReturnCode (*AAASendMessage_f)(
00121 AAAMessage *message,
00122 AAATransactionCallback_f *callback_f,
00123 void *callback_param);
00124
00125 typedef AAAReturnCode (*AAASendMessageToPeer_f)(
00126 AAAMessage *message,
00127 str *peer_id,
00128 AAATransactionCallback_f *callback_f,
00129 void *callback_param);
00130
00131 typedef AAAMessage* (*AAASendRecvMessage_f)(AAAMessage *msg);
00132
00133 typedef AAAMessage* (*AAASendRecvMessageToPeer_f)(AAAMessage *msg, str *peer_id);
00134
00135 typedef AAAReturnCode (*AAAFreeMessage_f)(
00136 AAAMessage **message);
00137
00138
00139 typedef int (*AAAAddRequestHandler_f)(AAARequestHandler_f *f,void *param);
00140 typedef int (*AAAAddResponseHandler_f)(AAAResponseHandler_f *f,void *param);
00141
00142
00143 struct cdp_binds {
00144 AAASendMessage_f AAASendMessage;
00145 AAASendMessageToPeer_f AAASendMessageToPeer;
00146 AAASendRecvMessage_f AAASendRecvMessage;
00147 AAASendRecvMessageToPeer_f AAASendRecvMessageToPeer;
00148 AAAFreeMessage_f AAAFreeMessage;
00149
00150 AAACreateRequest_f AAACreateRequest;
00151 AAACreateResponse_f AAACreateResponse;
00152
00153 AAACreateSession_f AAACreateSession;
00154 AAADropSession_f AAADropSession;
00155
00156 AAACreateTransaction_f AAACreateTransaction;
00157 AAADropTransaction_f AAADropTransaction;
00158
00159 AAACreateAVP_f AAACreateAVP;
00160 AAAAddAVPToMessage_f AAAAddAVPToMessage;
00161 AAAFindMatchingAVP_f AAAFindMatchingAVP;
00162 AAAFindMatchingAVPList_f AAAFindMatchingAVPList;
00163 AAAGetNextAVP_f AAAGetNextAVP;
00164 AAAFreeAVP_f AAAFreeAVP;
00165 AAAFreeAVPList_f AAAFreeAVPList;
00166 AAAGroupAVPS_f AAAGroupAVPS;
00167 AAAUngroupAVPS_f AAAUngroupAVPS;
00168
00169 AAAAddRequestHandler_f AAAAddRequestHandler;
00170 AAAAddResponseHandler_f AAAAddResponseHandler;
00171 };
00172
00173
00174 typedef int(*load_cdp_f)( struct cdp_binds *cdpb );
00175 int load_cdp( struct cdp_binds *cdpb);
00176
00177 #endif
00178