Add rule notification support to ip monitor
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
This commit is contained in:
parent
3123a0ccdd
commit
98bde989db
|
|
@ -20,6 +20,8 @@ extern int print_route(const struct sockaddr_nl *who,
|
|||
struct nlmsghdr *n, void *arg);
|
||||
extern int print_prefix(const struct sockaddr_nl *who,
|
||||
struct nlmsghdr *n, void *arg);
|
||||
extern int print_rule(const struct sockaddr_nl *who,
|
||||
struct nlmsghdr *n, void *arg);
|
||||
extern int do_ipaddr(int argc, char **argv);
|
||||
extern int do_iproute(int argc, char **argv);
|
||||
extern int do_iprule(int argc, char **argv);
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ int accept_msg(const struct sockaddr_nl *who,
|
|||
print_prefix(who, n, arg);
|
||||
return 0;
|
||||
}
|
||||
if (n->nlmsg_type == RTM_NEWRULE || n->nlmsg_type == RTM_DELRULE) {
|
||||
print_rule(who, n, arg);
|
||||
return 0;
|
||||
}
|
||||
if (n->nlmsg_type == 15) {
|
||||
char *tstr;
|
||||
time_t secs = ((__u32*)NLMSG_DATA(n))[0];
|
||||
|
|
|
|||
|
|
@ -46,8 +46,7 @@ static void usage(void)
|
|||
exit(-1);
|
||||
}
|
||||
|
||||
static int print_rule(const struct sockaddr_nl *who, struct nlmsghdr *n,
|
||||
void *arg)
|
||||
int print_rule(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
|
||||
{
|
||||
FILE *fp = (FILE*)arg;
|
||||
struct rtmsg *r = NLMSG_DATA(n);
|
||||
|
|
@ -58,7 +57,7 @@ static int print_rule(const struct sockaddr_nl *who, struct nlmsghdr *n,
|
|||
char abuf[256];
|
||||
SPRINT_BUF(b1);
|
||||
|
||||
if (n->nlmsg_type != RTM_NEWRULE)
|
||||
if (n->nlmsg_type != RTM_NEWRULE && n->nlmsg_type != RTM_DELRULE)
|
||||
return 0;
|
||||
|
||||
len -= NLMSG_LENGTH(sizeof(*r));
|
||||
|
|
@ -76,6 +75,9 @@ static int print_rule(const struct sockaddr_nl *who, struct nlmsghdr *n,
|
|||
else if (r->rtm_family == AF_IPX)
|
||||
host_len = 80;
|
||||
|
||||
if (n->nlmsg_type == RTM_DELRULE)
|
||||
fprintf(fp, "Deleted ");
|
||||
|
||||
if (tb[RTA_PRIORITY])
|
||||
fprintf(fp, "%u:\t", *(unsigned*)RTA_DATA(tb[RTA_PRIORITY]));
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue