int main(int argc, char *argv[]) { struct nl_cache_mngr *mngr; struct nl_sock *sock; struct nl_cache *ct; sock = nlt_socket_alloc(); mngr = nl_cache_mngr_alloc(sock, NETLINK_NETFILTER, NL_AUTO_PROVIDE); if (!mngr) { nl_perror("nl_cache_mngr_alloc"); return -1; } ct = nl_cache_mngr_add(mngr, "netfilter/ct", &change_cb); if (ct == NULL) { nl_perror("nl_cache_mngr_add(netfilter/ct)"); return -1; } for (;;) { int err = nl_cache_mngr_poll(mngr, 5000); if (err < 0) { nl_perror("nl_cache_mngr_poll()"); return -1; } } nl_cache_mngr_free(mngr); return 0; }
int main(int argc, char *argv[]) { struct nl_cache_mngr *mngr; struct nl_cache *cache; int err, i; dp.dp_fd = stdout; signal(SIGINT, sigint); err = nl_cache_mngr_alloc(NULL, NETLINK_ROUTE, NL_AUTO_PROVIDE, &mngr); if (err < 0) nl_cli_fatal(err, "Unable to allocate cache manager: %s", nl_geterror(err)); for (i = 1; i < argc; i++) { err = nl_cache_mngr_add(mngr, argv[i], &change_cb, NULL, &cache); if (err < 0) nl_cli_fatal(err, "Unable to add cache %s: %s", argv[i], nl_geterror(err)); } while (!quit) { int err = nl_cache_mngr_poll(mngr, 1000); if (err < 0 && err != -NLE_INTR) nl_cli_fatal(err, "Polling failed: %s", nl_geterror(err)); nl_cache_mngr_info(mngr, &dp); } nl_cache_mngr_free(mngr); return 0; }
int main(int argc, char *argv[]) { struct nl_cache_mngr *mngr; struct nl_cache *lc, *nc, *ac, *rc; struct nl_sock *sock; int err; signal(SIGINT, sigint); sock = nlt_alloc_socket(); err = nl_cache_mngr_alloc(sock, NETLINK_ROUTE, NL_AUTO_PROVIDE, &mngr); if (err < 0) fatal(err, "Unable to allocate cache manager: %s", nl_geterror(err)); if ((err = nl_cache_mngr_add(mngr, "route/link", &change_cb, &lc)) < 0) fatal(err, "Unable to add cache route/link: %s", nl_geterror(err)); if ((err = nl_cache_mngr_add(mngr, "route/neigh", &change_cb, &nc)) < 0) fatal(err, "Unable to add cache route/neigh: %s", nl_geterror(err)); if ((err = nl_cache_mngr_add(mngr, "route/addr", &change_cb, &ac)) < 0) fatal(err, "Unable to add cache route/addr: %s", nl_geterror(err)); if ((err = nl_cache_mngr_add(mngr, "route/route", &change_cb, &rc)) < 0) fatal(err, "Unable to add cache route/route: %s", nl_geterror(err)); while (!quit) { int err = nl_cache_mngr_poll(mngr, 5000); if (err < 0 && err != -NLE_INTR) fatal(err, "Polling failed: %s", nl_geterror(err)); } nl_cache_mngr_free(mngr); nl_socket_free(sock); return 0; }