static int cmd_node_set_addr(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char *str; uint32_t addr; struct nlattr *nest; char buf[MNL_SOCKET_BUFFER_SIZE]; if (cmdl->argc != cmdl->optind + 1) { fprintf(stderr, "Usage: %s node set address ADDRESS\n", cmdl->argv[0]); return -EINVAL; } str = shift_cmdl(cmdl); addr = str2addr(str); if (!addr) return -1; if (!(nlh = msg_init(buf, TIPC_NL_NET_SET))) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } nest = mnl_attr_nest_start(nlh, TIPC_NLA_NET); mnl_attr_put_u32(nlh, TIPC_NLA_NET_ADDR, addr); mnl_attr_nest_end(nlh, nest); return msg_doit(nlh, NULL, NULL); }
void msg_err(const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(XK_MSG_ERROR, fmt, ap); va_end(ap); }
static int cmd_node_set_netid(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { int netid; char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlattr *nest; if (help_flag) { (cmd->help)(cmdl); return -EINVAL; } if (!(nlh = msg_init(buf, TIPC_NL_NET_SET))) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } if (cmdl->argc != cmdl->optind + 1) { fprintf(stderr, "Usage: %s node set netid NETID\n", cmdl->argv[0]); return -EINVAL; } netid = atoi(shift_cmdl(cmdl)); nest = mnl_attr_nest_start(nlh, TIPC_NLA_NET); mnl_attr_put_u32(nlh, TIPC_NLA_NET_ID, netid); mnl_attr_nest_end(nlh, nest); return msg_doit(nlh, NULL, NULL); }
static int cmd_link_mon_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { int size; char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlattr *attrs; if (cmdl->argc != cmdl->optind + 1) { fprintf(stderr, "error, missing value\n"); return -EINVAL; } size = atoi(shift_cmdl(cmdl)); nlh = msg_init(buf, TIPC_NL_MON_SET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } attrs = mnl_attr_nest_start(nlh, TIPC_NLA_MON); mnl_attr_put_u32(nlh, TIPC_NLA_MON_ACTIVATION_THRESHOLD, size); mnl_attr_nest_end(nlh, attrs); return msg_doit(nlh, NULL, NULL); }
void msg_bad(const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(XK_MSG_BAD, fmt, ap); va_end(ap); }
void msg_notice(const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(XK_MSG_NOTICE, fmt, ap); va_end(ap); }
void msg_info(const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(XK_MSG_INFO, fmt, ap); va_end(ap); }
void msg_dbg(const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(XK_MSG_DEBUG, fmt, ap); va_end(ap); }
void msg(xk_msg_type type, const char *fmt, ...) { va_list ap; va_start(ap, fmt); msg_doit(type, fmt, ap); va_end(ap); }
static int cmd_link_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { int val; int prop; char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlattr *props; struct nlattr *attrs; struct opt *opt; struct opt opts[] = { { "link", OPT_KEYVAL, NULL }, { NULL } }; if (strcmp(cmd->cmd, PRIORITY_STR) == 0) prop = TIPC_NLA_PROP_PRIO; else if ((strcmp(cmd->cmd, TOLERANCE_STR) == 0)) prop = TIPC_NLA_PROP_TOL; else if ((strcmp(cmd->cmd, WINDOW_STR) == 0)) prop = TIPC_NLA_PROP_WIN; else return -EINVAL; if (help_flag) { (cmd->help)(cmdl); return -EINVAL; } if (cmdl->optind >= cmdl->argc) { fprintf(stderr, "error, missing value\n"); return -EINVAL; } val = atoi(shift_cmdl(cmdl)); if (parse_opts(opts, cmdl) < 0) return -EINVAL; nlh = msg_init(buf, TIPC_NL_LINK_SET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } attrs = mnl_attr_nest_start(nlh, TIPC_NLA_LINK); opt = get_opt(opts, "link"); if (!opt) { fprintf(stderr, "error, missing link\n"); return -EINVAL; } mnl_attr_put_strz(nlh, TIPC_NLA_LINK_NAME, opt->val); props = mnl_attr_nest_start(nlh, TIPC_NLA_LINK_PROP); mnl_attr_put_u32(nlh, prop, val); mnl_attr_nest_end(nlh, props); mnl_attr_nest_end(nlh, attrs); return msg_doit(nlh, link_get_cb, &prop); }
static int cmd_link_mon_get_prop(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char buf[MNL_SOCKET_BUFFER_SIZE]; nlh = msg_init(buf, TIPC_NL_MON_GET); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } return msg_doit(nlh, link_mon_get_cb, NULL); }
static int cmd_link_stat_reset(struct nlmsghdr *nlh, const struct cmd *cmd, struct cmdl *cmdl, void *data) { char *link; char buf[MNL_SOCKET_BUFFER_SIZE]; struct opt *opt; struct nlattr *nest; struct opt opts[] = { { "link", OPT_KEYVAL, NULL }, { NULL } }; if (help_flag) { (cmd->help)(cmdl); return -EINVAL; } if (parse_opts(opts, cmdl) != 1) { (cmd->help)(cmdl); return -EINVAL; } nlh = msg_init(buf, TIPC_NL_LINK_RESET_STATS); if (!nlh) { fprintf(stderr, "error, message initialisation failed\n"); return -1; } opt = get_opt(opts, "link"); if (!opt) { fprintf(stderr, "error, missing link\n"); return -EINVAL; } link = opt->val; nest = mnl_attr_nest_start(nlh, TIPC_NLA_LINK); mnl_attr_put_strz(nlh, TIPC_NLA_LINK_NAME, link); mnl_attr_nest_end(nlh, nest); return msg_doit(nlh, NULL, NULL); }