if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
addattr16(n, 1024, IFLA_GRE_ENCAP_DPORT, htons(encapdport));
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
addattr16(n, 1024, IFLA_GRE_ENCAP_DPORT, htons(encapdport));
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
addattr16(n, 1024, IFLA_IPTUN_ENCAP_DPORT, htons(encapdport));
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void ip6tunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
}
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
addattr32(n, 1024, IFLA_VTI_LINK, link);
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void vti_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
const struct rtattr *rta;
- if (rtnl_talk(&rth, &req.n, &answer) < 0) {
-get_failed:
- fprintf(stderr,
- "Failed to get existing tunnel info.\n");
- free(answer);
- return -1;
- }
+ if (rtnl_talk(&rth, &req.n, &answer) < 0)
+ goto get_failed;
len = answer->nlmsg_len;
len -= NLMSG_LENGTH(sizeof(*ifi));
addattr32(n, 1024, IFLA_VTI_LINK, link);
return 0;
+
+get_failed:
+ fprintf(stderr, "Failed to get existing tunnel info.\n");
+ free(answer);
+ return -1;
}
static void vti6_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])