" window - Bearer link window\n");
}
-static void _print_bearer_media(void)
+void print_bearer_media(void)
{
fprintf(stderr,
"\nMEDIA\n"
}
static int nl_add_bearer_name(struct nlmsghdr *nlh, const struct cmd *cmd,
- struct cmdl *cmdl, struct opt *opts,
- struct tipc_sup_media sup_media[])
+ struct cmdl *cmdl, struct opt *opts,
+ const struct tipc_sup_media *sup_media)
+{
+ char bname[TIPC_MAX_BEARER_NAME];
+ int err;
+
+ if ((err = cmd_get_unique_bearer_name(cmd, cmdl, opts, bname, sup_media)))
+ return err;
+
+ mnl_attr_put_strz(nlh, TIPC_NLA_BEARER_NAME, bname);
+ return 0;
+}
+
+int cmd_get_unique_bearer_name(const struct cmd *cmd, struct cmdl *cmdl,
+ struct opt *opts, char *bname,
+ const struct tipc_sup_media *sup_media)
{
- char id[TIPC_MAX_BEARER_NAME];
char *media;
char *identifier;
struct opt *opt;
- struct tipc_sup_media *entry;
+ const struct tipc_sup_media *entry;
+
if (!(opt = get_opt(opts, "media"))) {
if (help_flag)
(entry->help)(cmdl, media);
else
fprintf(stderr, "error, missing bearer %s\n",
- entry->identifier);
+ entry->identifier);
return -EINVAL;
}
identifier = opt->val;
- snprintf(id, sizeof(id), "%s:%s", media, identifier);
- mnl_attr_put_strz(nlh, TIPC_NLA_BEARER_NAME, id);
+ snprintf(bname, TIPC_MAX_BEARER_NAME, "%s:%s", media, identifier);
return 0;
}
if ((err = getaddrinfo(ip, remport, &hints, &addr))) {
fprintf(stderr, "UDP address error: %s\n",
- gai_strerror(err));
+ gai_strerror(err));
freeaddrinfo(addr);
return err;
}
mnl_attr_put(nlh, TIPC_NLA_UDP_REMOTE, addr->ai_addrlen,
- addr->ai_addr);
+ addr->ai_addr);
freeaddrinfo(addr);
} else {
fprintf(stderr, "error, missing remoteip\n");
{ "media", OPT_KEYVAL, NULL },
{ NULL }
};
- struct tipc_sup_media sup_media[] = {
+ const struct tipc_sup_media sup_media[] = {
{ "udp", "name", cmd_bearer_add_udp_help},
{ NULL, },
};
" domain DOMAIN - Discovery domain\n"
" priority PRIORITY - Bearer priority\n",
cmdl->argv[0]);
- _print_bearer_media();
+ print_bearer_media();
}
static int cmd_bearer_enable(struct nlmsghdr *nlh, const struct cmd *cmd,
{ NULL }
};
struct tipc_sup_media sup_media[] = {
- { "udp", "name", cmd_bearer_enable_udp_help},
- { "eth", "device", cmd_bearer_enable_l2_help },
- { "ib", "device", cmd_bearer_enable_l2_help },
+ { "udp", "name", cmd_bearer_enable_udp_help},
+ { "eth", "device", cmd_bearer_enable_l2_help },
+ { "ib", "device", cmd_bearer_enable_l2_help },
{ NULL, },
};
{
fprintf(stderr, "Usage: %s bearer disable media MEDIA ARGS...\n",
cmdl->argv[0]);
- _print_bearer_media();
+ print_bearer_media();
}
static int cmd_bearer_disable(struct nlmsghdr *nlh, const struct cmd *cmd,
{ NULL }
};
struct tipc_sup_media sup_media[] = {
- { "udp", "name", cmd_bearer_disable_udp_help},
- { "eth", "device", cmd_bearer_disable_l2_help },
- { "ib", "device", cmd_bearer_disable_l2_help },
+ { "udp", "name", cmd_bearer_disable_udp_help},
+ { "eth", "device", cmd_bearer_disable_l2_help },
+ { "ib", "device", cmd_bearer_disable_l2_help },
{ NULL, },
};
fprintf(stderr, "Usage: %s bearer set OPTION media MEDIA ARGS...\n",
cmdl->argv[0]);
_print_bearer_opts();
- _print_bearer_media();
+ print_bearer_media();
}
static void cmd_bearer_set_udp_help(struct cmdl *cmdl, char *media)
}
static int cmd_bearer_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd,
- struct cmdl *cmdl, void *data)
+ struct cmdl *cmdl, void *data)
{
int err;
int val;
{ NULL }
};
struct tipc_sup_media sup_media[] = {
- { "udp", "name", cmd_bearer_set_udp_help},
- { "eth", "device", cmd_bearer_set_l2_help },
- { "ib", "device", cmd_bearer_set_l2_help },
+ { "udp", "name", cmd_bearer_set_udp_help},
+ { "eth", "device", cmd_bearer_set_l2_help },
+ { "ib", "device", cmd_bearer_set_l2_help },
{ NULL, },
};
fprintf(stderr, "Usage: %s bearer get [OPTION] media MEDIA ARGS...\n",
cmdl->argv[0]);
_print_bearer_opts();
- _print_bearer_media();
+ print_bearer_media();
}
static void cmd_bearer_get_udp_help(struct cmdl *cmdl, char *media)
struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *) addr;
if (!inet_ntop(AF_INET6, &ipv6->sin6_addr, straddr,
- sizeof(straddr))) {
+ sizeof(straddr))) {
fprintf(stderr, "error, parsing IPv6 addr\n");
return MNL_CB_ERROR;
}
switch (cb_data->prop) {
case UDP_PROP_IP:
if (!inet_ntop(AF_INET6, &ipv6->sin6_addr, straddr,
- sizeof(straddr))) {
+ sizeof(straddr))) {
fprintf(stderr, "error, parsing IPv6 addr\n");
return MNL_CB_ERROR;
}
{ NULL }
};
struct tipc_sup_media sup_media[] = {
- { "udp", "name", cmd_bearer_get_udp_help},
+ { "udp", "name", cmd_bearer_get_udp_help},
{ NULL, },
};
{ NULL }
};
struct tipc_sup_media sup_media[] = {
- { "udp", "name", cmd_bearer_get_udp_help},
- { "eth", "device", cmd_bearer_get_l2_help },
- { "ib", "device", cmd_bearer_get_l2_help },
+ { "udp", "name", cmd_bearer_get_udp_help},
+ { "eth", "device", cmd_bearer_get_l2_help },
+ { "ib", "device", cmd_bearer_get_l2_help },
{ NULL, },
};