static int xfrm_accept_msg(const struct sockaddr_nl *who, struct rtnl_ctrl_data *ctrl, struct nlmsghdr *n, void *arg) { FILE *fp = (FILE *)arg; if (timestamp) print_timestamp(fp); if (listen_all_nsid) { if (ctrl == NULL || ctrl->nsid < 0) fprintf(fp, "[nsid current]"); else fprintf(fp, "[nsid %d]", ctrl->nsid); } switch (n->nlmsg_type) { case XFRM_MSG_NEWSA: case XFRM_MSG_DELSA: case XFRM_MSG_UPDSA: case XFRM_MSG_EXPIRE: xfrm_state_print(who, n, arg); return 0; case XFRM_MSG_NEWPOLICY: case XFRM_MSG_DELPOLICY: case XFRM_MSG_UPDPOLICY: case XFRM_MSG_POLEXPIRE: xfrm_policy_print(who, n, arg); return 0; case XFRM_MSG_ACQUIRE: xfrm_acquire_print(who, n, arg); return 0; case XFRM_MSG_FLUSHSA: xfrm_state_flush_print(who, n, arg); return 0; case XFRM_MSG_FLUSHPOLICY: xfrm_policy_flush_print(who, n, arg); return 0; case XFRM_MSG_REPORT: xfrm_report_print(who, n, arg); return 0; case XFRM_MSG_NEWAE: xfrm_ae_print(who, n, arg); return 0; case XFRM_MSG_MAPPING: xfrm_mapping_print(who, n, arg); return 0; default: break; } if (n->nlmsg_type != NLMSG_ERROR && n->nlmsg_type != NLMSG_NOOP && n->nlmsg_type != NLMSG_DONE) { fprintf(fp, "Unknown message: %08d 0x%08x 0x%08x\n", n->nlmsg_len, n->nlmsg_type, n->nlmsg_flags); } return 0; }
static int xfrm_accept_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg) { FILE *fp = (FILE*)arg; if (timestamp) print_timestamp(fp); switch (n->nlmsg_type) { case XFRM_MSG_NEWSA: case XFRM_MSG_DELSA: case XFRM_MSG_UPDSA: case XFRM_MSG_EXPIRE: xfrm_state_print(who, n, arg); return 0; case XFRM_MSG_NEWPOLICY: case XFRM_MSG_DELPOLICY: case XFRM_MSG_UPDPOLICY: case XFRM_MSG_POLEXPIRE: xfrm_policy_print(who, n, arg); return 0; case XFRM_MSG_ACQUIRE: xfrm_acquire_print(who, n, arg); return 0; case XFRM_MSG_FLUSHSA: xfrm_state_flush_print(who, n, arg); return 0; case XFRM_MSG_FLUSHPOLICY: xfrm_policy_flush_print(who, n, arg); return 0; case XFRM_MSG_REPORT: xfrm_report_print(who, n, arg); return 0; case XFRM_MSG_NEWAE: xfrm_ae_print(who, n, arg); return 0; default: break; } if (n->nlmsg_type != NLMSG_ERROR && n->nlmsg_type != NLMSG_NOOP && n->nlmsg_type != NLMSG_DONE) { fprintf(fp, "Unknown message: %08d 0x%08x 0x%08x\n", n->nlmsg_len, n->nlmsg_type, n->nlmsg_flags); } return 0; }