Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

67 lines (50 sloc) 1.333 kb
#include <netlink/netlink.h>
#include <netlink/cache.h>
#include <netlink/cli/utils.h>
#include <signal.h>
#include <netlink-private/cache-api.h>
static int quit = 0;
static struct nl_dump_params dp = {
.dp_type = NL_DUMP_LINE,
};
static void change_cb(struct nl_cache *cache, struct nl_object *obj,
int action, void *data)
{
if (action == NL_ACT_NEW)
printf("NEW ");
else if (action == NL_ACT_DEL)
printf("DEL ");
else if (action == NL_ACT_CHANGE)
printf("CHANGE ");
nl_object_dump(obj, &dp);
}
static void sigint(int arg)
{
quit = 1;
}
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;
}
Jump to Line
Something went wrong with that request. Please try again.