#include "inm-manager-log.h"
#include "inm-rtnl.h"
-inm_util_nl_data_s nl_data_arr[INM_UTIL_RTNL_TYPE_MAX];
+static inm_util_nl_data_s nl_data_arr[INM_UTIL_RTNL_TYPE_MAX];
static gboolean is_initialized = FALSE;
-static void __addr_recv_cb(int action,
- struct nl_object *obj,
- void *user_data);
-static void __addr_foreach_cb(struct nl_object *obj, void *user_data);
static void __link_recv_cb(int action,
struct nl_object *obj,
void *user_data);
static void __link_foreach_cb(struct nl_object *obj, void *user_data);
+
+static void __addr_recv_cb(int action,
+ struct nl_object *obj,
+ void *user_data);
+static void __addr_foreach_cb(struct nl_object *obj, void *user_data);
static void __neigh_recv_cb(int action,
struct nl_object *obj,
void *user_data);
user_nl_obj_func foreach_cb;
void *user_data;
} rtnl_obj_cbs[] = {
- {__addr_recv_cb, __addr_foreach_cb, &nl_data_arr[INM_UTIL_RTNL_TYPE_ADDR]},
{__link_recv_cb, __link_foreach_cb, &nl_data_arr[INM_UTIL_RTNL_TYPE_LINK]},
+ {__addr_recv_cb, __addr_foreach_cb, &nl_data_arr[INM_UTIL_RTNL_TYPE_ADDR]},
{__neigh_recv_cb, __neigh_foreach_cb, &nl_data_arr[INM_UTIL_RTNL_TYPE_NEIGH]},
{__route_recv_cb, __route_foreach_cb, &nl_data_arr[INM_UTIL_RTNL_TYPE_ROUTE]},
{NULL, NULL, NULL},
};
-static inline void __parse_rtnl_addr(struct rtnl_addr *p_rtnl_addr)
-{
- GString *rtnl_addr_gs = NULL;
- struct nl_addr *p_nl_addr;
- gchar *log_str = NULL;
- char buf[128] = {0,};
- int if_index;
-
- if (!p_rtnl_addr)
- return;
-
- rtnl_addr_gs = g_string_new(NULL);
- if (!rtnl_addr_gs)
- return;
-
- if_index = rtnl_addr_get_ifindex(p_rtnl_addr);
- g_string_append_printf(rtnl_addr_gs,
- "<Rtnl addr iface %d:%s>",
- if_index,
- if_indextoname(if_index, buf));
-
- p_nl_addr = rtnl_addr_get_local(p_rtnl_addr);
- g_string_append_printf(rtnl_addr_gs,
- "<Rtnl addr family:%s>",
- nl_af2str(nl_addr_get_family(p_nl_addr), buf, sizeof(buf)));
- g_string_append_printf(rtnl_addr_gs,
- "<Rtnl addr address:%s>",
- nl_addr2str(p_nl_addr, buf, sizeof(buf)));
-
- log_str = g_string_free(rtnl_addr_gs, FALSE);
- if (log_str) {
- PRINT_STR(log_str);
- g_free(log_str);
- }
-}
-
-static void __addr_recv_cb(gboolean added,
- struct nl_object *obj,
- void *user_data)
-{
- __INM_FUNC_ENTER__;
-
- if (!obj) {
- __INM_FUNC_EXIT__;
- return;
- }
-
- util_foreach_nl_data(&(nl_data_arr[INM_UTIL_RTNL_TYPE_ADDR]),
- rtnl_obj_cbs[INM_UTIL_RTNL_TYPE_ADDR].foreach_cb,
- rtnl_obj_cbs[INM_UTIL_RTNL_TYPE_ADDR].user_data);
-
- __INM_FUNC_EXIT__;
-}
-
-static void __addr_foreach_cb(struct nl_object *obj, void *user_data)
-{
- __INM_FUNC_ENTER__;
-
- if (!obj) {
- __INM_FUNC_EXIT__;
- return;
- }
- __parse_rtnl_addr((struct rtnl_addr *)obj);
-
- __INM_FUNC_EXIT__;
-}
-
static struct {
const char* str;
int stat_num;
__INM_FUNC_EXIT__;
}
+static inline void __parse_rtnl_addr(struct rtnl_addr *p_rtnl_addr)
+{
+ GString *rtnl_addr_gs = NULL;
+ struct nl_addr *p_nl_addr;
+ gchar *log_str = NULL;
+ char buf[128] = {0,};
+ int if_index;
+
+ if (!p_rtnl_addr)
+ return;
+
+ rtnl_addr_gs = g_string_new(NULL);
+ if (!rtnl_addr_gs)
+ return;
+
+ if_index = rtnl_addr_get_ifindex(p_rtnl_addr);
+ g_string_append_printf(rtnl_addr_gs,
+ "<Rtnl addr iface %d:%s>",
+ if_index,
+ if_indextoname(if_index, buf));
+
+ p_nl_addr = rtnl_addr_get_local(p_rtnl_addr);
+ g_string_append_printf(rtnl_addr_gs,
+ "<Rtnl addr family:%s>",
+ nl_af2str(nl_addr_get_family(p_nl_addr), buf, sizeof(buf)));
+ g_string_append_printf(rtnl_addr_gs,
+ "<Rtnl addr address:%s>",
+ nl_addr2str(p_nl_addr, buf, sizeof(buf)));
+
+ log_str = g_string_free(rtnl_addr_gs, FALSE);
+ if (log_str) {
+ PRINT_STR(log_str);
+ g_free(log_str);
+ }
+}
+
+static void __addr_recv_cb(gboolean added,
+ struct nl_object *obj,
+ void *user_data)
+{
+ __INM_FUNC_ENTER__;
+
+ if (!obj) {
+ __INM_FUNC_EXIT__;
+ return;
+ }
+
+ util_foreach_nl_data(&(nl_data_arr[INM_UTIL_RTNL_TYPE_ADDR]),
+ rtnl_obj_cbs[INM_UTIL_RTNL_TYPE_ADDR].foreach_cb,
+ rtnl_obj_cbs[INM_UTIL_RTNL_TYPE_ADDR].user_data);
+
+ __INM_FUNC_EXIT__;
+}
+
+static void __addr_foreach_cb(struct nl_object *obj, void *user_data)
+{
+ __INM_FUNC_ENTER__;
+
+ if (!obj) {
+ __INM_FUNC_EXIT__;
+ return;
+ }
+ __parse_rtnl_addr((struct rtnl_addr *)obj);
+
+ __INM_FUNC_EXIT__;
+}
+
static inline void __parse_rtnl_neigh(struct rtnl_neigh *p_rtnl_neigh)
{
GString *rtnl_neigh_gs = NULL;
{
int type;
- for (type = INM_UTIL_RTNL_TYPE_ADDR;
+ for (type = INM_UTIL_RTNL_TYPE_LINK;
type < INM_UTIL_RTNL_TYPE_MAX;
++type)
util_nl_data_destroy(&(nl_data_arr[type]));
memset(&nl_data_arr, 0x0, sizeof(nl_data_arr));
is_initialized = TRUE;
- for (type = INM_UTIL_RTNL_TYPE_ADDR;
+ for (type = INM_UTIL_RTNL_TYPE_LINK;
type < INM_UTIL_RTNL_TYPE_MAX;
++type) {
}
}
- for (type = INM_UTIL_RTNL_TYPE_ADDR;
+ for (type = INM_UTIL_RTNL_TYPE_LINK;
type < INM_UTIL_RTNL_TYPE_MAX;
++type)
util_foreach_nl_data(&(nl_data_arr[type]),