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)
|
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) {
|
if (cmod == MOD_NULL) {
|
||||||
cw_dbg(DBG_MSG_ERR, "Cant't find mod to handle connection from %s , discarding message",
|
cw_dbg(DBG_MSG_ERR, "Cant't find mod to handle connection from %s , discarding message",
|
||||||
sock_addr2str_p(from));
|
sock_addr2str_p(from));
|
||||||
return NULL;
|
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);
|
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 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;
|
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));
|
memset (i,0,sizeof(struct cache_item));
|
||||||
if (c){
|
if (c){
|
||||||
i->capwap=c->name;
|
i->capwap=c->name;
|
||||||
c->register_actions(&(i->actions));
|
c->register_actions(&(i->actions),MOD_MODE_CAPWAP);
|
||||||
}
|
}
|
||||||
if (b){
|
if (b){
|
||||||
i->bindings=b->name;
|
i->bindings=b->name;
|
||||||
b->register_actions(&(i->actions));
|
b->register_actions(&(i->actions),MOD_MODE_BINDINGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
mavl_add(cache,i);
|
mavl_add(cache,i);
|
||||||
|
@ -31,8 +31,8 @@ struct cw_actiondef;
|
|||||||
#define MOD_MAXMODS 8
|
#define MOD_MAXMODS 8
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MOD_DETECT_CAPWAP,
|
MOD_MODE_CAPWAP,
|
||||||
MOD_DETECT_BINDINGS
|
MOD_MODE_BINDINGS
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mod_ac {
|
struct mod_ac {
|
||||||
@ -51,7 +51,7 @@ struct mod_ac {
|
|||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
/** Register actions */
|
/** 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"
|
#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,
|
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||||
struct sockaddr *from, int mode)
|
struct sockaddr *from, int mode)
|
||||||
{
|
{
|
||||||
if (mode != MOD_DETECT_CAPWAP)
|
if (mode != MOD_MODE_CAPWAP)
|
||||||
return 0;
|
return 0;
|
||||||
cw_dbg(DBG_MOD,"CAPWAP detected: yes");
|
cw_dbg(DBG_MOD,"CAPWAP detected: yes");
|
||||||
return 1;
|
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 = {
|
static struct mod_ac capwap_ac = {
|
||||||
.name = "capwap",
|
.name = "capwap",
|
||||||
.init = init,
|
.init = init,
|
||||||
.detect = detect,
|
.detect = detect,
|
||||||
.register_actions = capwap_register_actions_ac
|
.register_actions = register_actions
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mod_ac *mod_capwap_ac()
|
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,
|
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||||
struct sockaddr *from, int mode)
|
struct sockaddr *from, int mode)
|
||||||
{
|
{
|
||||||
if (mode != MOD_DETECT_CAPWAP)
|
if (mode != MOD_MODE_CAPWAP)
|
||||||
return 0;
|
return 0;
|
||||||
conn->detected = 1;
|
conn->detected = 1;
|
||||||
conn->actions = &actions;
|
conn->actions = &actions;
|
||||||
return 1;
|
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 = {
|
static struct mod_wtp capwap_wtp = {
|
||||||
.name = "capwap",
|
.name = "capwap",
|
||||||
.init = init,
|
.init = init,
|
||||||
.detect = detect,
|
.detect = detect,
|
||||||
.register_actions = capwap_register_actions_wtp
|
.register_actions=register_actions
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mod_wtp *mod_capwap_wtp()
|
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,
|
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||||
struct sockaddr *from, int mode)
|
struct sockaddr *from, int mode)
|
||||||
{
|
{
|
||||||
if (mode != MOD_DETECT_BINDINGS)
|
if (mode != MOD_MODE_BINDINGS)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
int wbid = cw_get_hdr_wbid(rawmsg);
|
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;
|
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);
|
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,
|
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||||
struct sockaddr *from, int mode)
|
struct sockaddr *from, int mode)
|
||||||
{
|
{
|
||||||
if (mode != MOD_DETECT_BINDINGS)
|
if (mode != MOD_MODE_BINDINGS)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cw_log(LOG_INFO, "Detecting WTP 80211");
|
cw_log(LOG_INFO, "Detecting WTP 80211");
|
||||||
return 1;
|
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);
|
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)
|
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;
|
return 0;
|
||||||
|
|
||||||
cw_dbg(DBG_MOD,"CIPWAP detected: no");
|
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);
|
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");
|
struct mod_ac *cmod = modload_ac("capwap");
|
||||||
if (!cmod) {
|
if (!cmod) {
|
||||||
cw_log(LOG_ERR,
|
cw_log(LOG_ERR,
|
||||||
"Can't initzialize mod_cisco, failed to load base mod mod_capwap");
|
"Can't initzialize mod_cisco, failed to load base mod mod_capwap");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
cmod->register_actions(actions);
|
cmod->register_actions(actions,MOD_MODE_CAPWAP);
|
||||||
int rc = cisco_register_actions_ac(actions);
|
int rc = cisco_register_actions_ac(actions);
|
||||||
cw_dbg(DBG_INFO, "Initialized mod cisco with %d actions", rc);
|
cw_dbg(DBG_INFO, "Initialized mod cisco with %d actions", rc);
|
||||||
return 0;
|
return 0;
|
||||||
@ -45,7 +48,7 @@ static int init()
|
|||||||
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int elems_len,
|
||||||
struct sockaddr *from, int mode)
|
struct sockaddr *from, int mode)
|
||||||
{
|
{
|
||||||
if (mode != MOD_DETECT_CAPWAP)
|
if (mode != MOD_MODE_CAPWAP)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ int main()
|
|||||||
printf("Can't load mod capwap\n");
|
printf("Can't load mod capwap\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
mod->register_actions(&capwap_actions);
|
mod->register_actions(&capwap_actions,MOD_MODE_CAPWAP);
|
||||||
mod = modload_wtp("capwap80211");
|
mod = modload_wtp("capwap80211");
|
||||||
if (!mod) {
|
if (!mod) {
|
||||||
printf("Can't load mod capwap80211\n");
|
printf("Can't load mod capwap80211\n");
|
||||||
@ -111,7 +111,7 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
printf("add capwap80211\n");
|
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);
|
printf("Out reg = %d\n",rc);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user