mod_register_actions now uses parameter mode.
FossilOrigin-Name: 7fccf33259836d6d1139d611825315e21428fbb88d7359d4176ef8ba258488fa
This commit is contained in:
parent
c4f9bca1e6
commit
fb74f28756
@ -179,14 +179,14 @@ static struct cw_actiondef * load_mods(struct conn *conn, uint8_t * rawmsg, int
|
||||
int elems_len, struct sockaddr *from)
|
||||
{
|
||||
|
||||
struct mod_ac * cmod = detect_mod(conn, rawmsg, len, elems_len, from, MOD_DETECT_CAPWAP);
|
||||
struct mod_ac * cmod = detect_mod(conn, rawmsg, len, elems_len, from, MOD_MODE_CAPWAP);
|
||||
if (cmod == MOD_NULL) {
|
||||
cw_dbg(DBG_MSG_ERR, "Cant't find mod to handle connection from %s , discarding message",
|
||||
sock_addr2str_p(from));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct mod_ac * bmod = detect_mod(conn, rawmsg, len, elems_len, from, MOD_DETECT_BINDINGS);
|
||||
struct mod_ac * bmod = detect_mod(conn, rawmsg, len, elems_len, from, MOD_MODE_BINDINGS);
|
||||
|
||||
cw_dbg(DBG_INFO,"Mods deteced: %s,%s",cmod->name,bmod->name);
|
||||
|
||||
|
@ -14,7 +14,7 @@ struct cache_item
|
||||
|
||||
static struct mavl * cache = NULL;
|
||||
|
||||
static int mod_null_register_actions(struct cw_actiondef *def)
|
||||
static int mod_null_register_actions(struct cw_actiondef *def,int mode)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -73,11 +73,11 @@ struct cw_actiondef * mod_cache_add(struct mod_ac *c, struct mod_ac *b)
|
||||
memset (i,0,sizeof(struct cache_item));
|
||||
if (c){
|
||||
i->capwap=c->name;
|
||||
c->register_actions(&(i->actions));
|
||||
c->register_actions(&(i->actions),MOD_MODE_CAPWAP);
|
||||
}
|
||||
if (b){
|
||||
i->bindings=b->name;
|
||||
b->register_actions(&(i->actions));
|
||||
b->register_actions(&(i->actions),MOD_MODE_BINDINGS);
|
||||
}
|
||||
|
||||
mavl_add(cache,i);
|
||||
|
@ -31,8 +31,8 @@ struct cw_actiondef;
|
||||
#define MOD_MAXMODS 8
|
||||
|
||||
enum {
|
||||
MOD_DETECT_CAPWAP,
|
||||
MOD_DETECT_BINDINGS
|
||||
MOD_MODE_CAPWAP,
|
||||
MOD_MODE_BINDINGS
|
||||
};
|
||||
|
||||
struct mod_ac {
|
||||
@ -51,7 +51,7 @@ struct mod_ac {
|
||||
void *data;
|
||||
|
||||
/** Register actions */
|
||||
int (*register_actions) (struct cw_actiondef * def);
|
||||
int (*register_actions) (struct cw_actiondef * def,int mode);
|
||||
};
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "mod_capwap.h"
|
||||
|
||||
|
||||
static struct cw_actiondef actions;
|
||||
//static struct cw_actiondef actions;
|
||||
|
||||
|
||||
|
||||
@ -27,17 +27,26 @@ static int init()
|
||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||
struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_CAPWAP)
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
cw_dbg(DBG_MOD,"CAPWAP detected: yes");
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int register_actions(struct cw_actiondef *def, int mode)
|
||||
{
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
return capwap_register_actions_ac(def);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static struct mod_ac capwap_ac = {
|
||||
.name = "capwap",
|
||||
.init = init,
|
||||
.detect = detect,
|
||||
.register_actions = capwap_register_actions_ac
|
||||
.register_actions = register_actions
|
||||
};
|
||||
|
||||
struct mod_ac *mod_capwap_ac()
|
||||
|
@ -27,18 +27,25 @@ static int init()
|
||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||
struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_CAPWAP)
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
conn->detected = 1;
|
||||
conn->actions = &actions;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int register_actions(struct cw_actiondef *def, int mode)
|
||||
{
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
return capwap_register_actions_wtp(def);
|
||||
}
|
||||
|
||||
static struct mod_wtp capwap_wtp = {
|
||||
.name = "capwap",
|
||||
.init = init,
|
||||
.detect = detect,
|
||||
.register_actions = capwap_register_actions_wtp
|
||||
.register_actions=register_actions
|
||||
};
|
||||
|
||||
struct mod_wtp *mod_capwap_wtp()
|
||||
|
@ -27,7 +27,7 @@ static int init()
|
||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||
struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_BINDINGS)
|
||||
if (mode != MOD_MODE_BINDINGS)
|
||||
return 0;
|
||||
|
||||
int wbid = cw_get_hdr_wbid(rawmsg);
|
||||
@ -39,8 +39,11 @@ static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int ele
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int register_actions(struct cw_actiondef *actions)
|
||||
static int register_actions(struct cw_actiondef *actions, int mode)
|
||||
{
|
||||
if (mode != MOD_MODE_BINDINGS)
|
||||
return 0;
|
||||
|
||||
return capwap80211_register_actions_ac(actions);
|
||||
}
|
||||
|
||||
|
@ -26,15 +26,17 @@ static int init()
|
||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||
struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_BINDINGS)
|
||||
if (mode != MOD_MODE_BINDINGS)
|
||||
return 0;
|
||||
|
||||
cw_log(LOG_INFO, "Detecting WTP 80211");
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int register_actions(struct cw_actiondef *actions)
|
||||
static int register_actions(struct cw_actiondef *actions,int mode)
|
||||
{
|
||||
if (mode != MOD_MODE_BINDINGS)
|
||||
return 0;
|
||||
return capwap80211_register_actions_wtp(actions);
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ int cipwap_init()
|
||||
|
||||
static int detect(struct conn *conn,const uint8_t *rawmsg, int rawlen,int elems_len, struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_CAPWAP)
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
|
||||
cw_dbg(DBG_MOD,"CIPWAP detected: no");
|
||||
|
@ -16,15 +16,18 @@ static struct cw_actiondef actions;
|
||||
|
||||
extern int cisco_register_actions_ac(struct cw_actiondef *def);
|
||||
|
||||
static int register_actions(struct cw_actiondef *actions)
|
||||
static int register_actions(struct cw_actiondef *actions,int mode)
|
||||
{
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
|
||||
struct mod_ac *cmod = modload_ac("capwap");
|
||||
if (!cmod) {
|
||||
cw_log(LOG_ERR,
|
||||
"Can't initzialize mod_cisco, failed to load base mod mod_capwap");
|
||||
return 1;
|
||||
}
|
||||
cmod->register_actions(actions);
|
||||
cmod->register_actions(actions,MOD_MODE_CAPWAP);
|
||||
int rc = cisco_register_actions_ac(actions);
|
||||
cw_dbg(DBG_INFO, "Initialized mod cisco with %d actions", rc);
|
||||
return 0;
|
||||
@ -45,7 +48,7 @@ static int init()
|
||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||
struct sockaddr *from, int mode)
|
||||
{
|
||||
if (mode != MOD_DETECT_CAPWAP)
|
||||
if (mode != MOD_MODE_CAPWAP)
|
||||
return 0;
|
||||
|
||||
|
||||
|
@ -103,7 +103,7 @@ int main()
|
||||
printf("Can't load mod capwap\n");
|
||||
exit(0);
|
||||
}
|
||||
mod->register_actions(&capwap_actions);
|
||||
mod->register_actions(&capwap_actions,MOD_MODE_CAPWAP);
|
||||
mod = modload_wtp("capwap80211");
|
||||
if (!mod) {
|
||||
printf("Can't load mod capwap80211\n");
|
||||
@ -111,7 +111,7 @@ int main()
|
||||
}
|
||||
|
||||
printf("add capwap80211\n");
|
||||
int rc = mod->register_actions(&capwap_actions);
|
||||
int rc = mod->register_actions(&capwap_actions,MOD_MODE_BINDINGS);
|
||||
|
||||
printf("Out reg = %d\n",rc);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user