Initial commit
FossilOrigin-Name: 541200689a36741e439031514a642043cf9bcff7dede74c32428846c9b5dd7e4
This commit is contained in:
parent
786a8fd489
commit
b11318890f
82
src/wtp/nlt.c
Normal file
82
src/wtp/nlt.c
Normal file
@ -0,0 +1,82 @@
|
||||
#include "netlink/netlink.h"
|
||||
#include "netlink/genl/genl.h"
|
||||
#include "netlink/genl/ctrl.h"
|
||||
#include <netlink/msg.h>
|
||||
|
||||
|
||||
#include "nlt.h"
|
||||
|
||||
/*
|
||||
int nlt_send_and_recvmsg(struct nl_sock *sk, struct nl_msg *msg)
|
||||
{
|
||||
struct nl_cb * cb = nl_socket_get_cb(sk);
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
struct nlt_ifinfo {
|
||||
const char *ifname;
|
||||
int ifindex;
|
||||
int iftype;
|
||||
};
|
||||
|
||||
static int get_ifinfo_cb(struct nl_msg *msg, void *arg)
|
||||
{
|
||||
struct nlt_ifinfo *cb_data = (struct ifindex_cb_data *) arg;
|
||||
|
||||
printf("Yeaaaaaaaaaa! The ifindex callback is here\n");
|
||||
struct nlmsghdr *msghdr = nlmsg_hdr(msg);
|
||||
struct nlattr *msgattribs[NL80211_ATTR_MAX + 1];
|
||||
|
||||
struct genlmsghdr *ghdr = (struct genlmsghdr *) nlmsg_data(msghdr);
|
||||
|
||||
int rc;
|
||||
rc = nla_parse(msgattribs, NL80211_ATTR_MAX,
|
||||
genlmsg_attrdata(ghdr, 0), genlmsg_attrlen(ghdr, 0),
|
||||
NULL);
|
||||
|
||||
if (rc < 0) {
|
||||
cw_dbg(DBG_DRV_ERR, "nla_parse failed: %d %d", rc,
|
||||
nl_geterror(rc));
|
||||
return NL_SKIP;
|
||||
}
|
||||
|
||||
int cmd = ghdr->cmd;
|
||||
cw_dbg(DBG_DRV, "NL Callback, cmd=%d - %s", cmd,
|
||||
nlt_get_cmdname(cmd));
|
||||
|
||||
if (cmd != NL80211_CMD_NEWINTERFACE)
|
||||
return NL_OK;
|
||||
|
||||
|
||||
if (cmd == NL80211_CMD_NEW_INTERFACE) {
|
||||
if (msgattribs[NL80211_ATTR_IFNAME]) {
|
||||
printf("IFNAME = %s\n",
|
||||
nla_get_string(msgattribs
|
||||
[NL80211_ATTR_IFNAME]));
|
||||
|
||||
cb_data->index =
|
||||
nla_get_u32(msgattribs[NL80211_ATTR_IFINDEX]);
|
||||
cb_data->type =
|
||||
nla_get_u32(msgattribs[NL80211_ATTR_IFTYPE]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
int nlt_get_ifinfo(const char *ifname,struct nlt_ifinfo * ifinfo)
|
||||
{
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user