00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _MAXFWD_API_H_
00025 #define _MAXFWD_API_H_
00026
00027 #include "../../sr_module.h"
00028 #include "../../parser/msg_parser.h"
00029
00030 typedef int (*process_maxfwd_f)(struct sip_msg *msg, int limit);
00031
00035 typedef struct maxfwd_api {
00036 process_maxfwd_f process_maxfwd;
00037 } maxfwd_api_t;
00038
00039 typedef int (*bind_maxfwd_f)(maxfwd_api_t* api);
00040
00044 static inline int maxfwd_load_api(maxfwd_api_t *api)
00045 {
00046 bind_maxfwd_f bindmaxfwd;
00047
00048 bindmaxfwd = (bind_maxfwd_f)find_export("bind_maxfwd", 0, 0);
00049 if(bindmaxfwd == 0) {
00050 LM_ERR("cannot find bind_maxfwd\n");
00051 return -1;
00052 }
00053 if (bindmaxfwd(api)==-1)
00054 {
00055 LM_ERR("cannot bind maxfwd api\n");
00056 return -1;
00057 }
00058 return 0;
00059 }
00060
00061 #endif
00062