const struct cmd *c;
for (c = cmds; c->cmd; ++c) {
- if (matches(argv0, c->cmd) == 0)
- return c->func(argc-1, argv+1);
+ if (matches(argv0, c->cmd) == 0) {
+ return -(c->func(argc-1, argv+1));
+ }
}
fprintf(stderr, "Object \"%s\" is unknown, try \"ip help\".\n", argv0);
- return -1;
+ return EXIT_FAILURE;
}
static int batch(const char *name)
{
char *line = NULL;
size_t len = 0;
- int ret = 0;
+ int ret = EXIT_SUCCESS;
if (name && strcmp(name, "-") != 0) {
if (freopen(name, "r", stdin) == NULL) {
fprintf(stderr, "Cannot open file \"%s\" for reading: %s\n",
name, strerror(errno));
- return -1;
+ return EXIT_FAILURE;
}
}
if (rtnl_open(&rth, 0) < 0) {
fprintf(stderr, "Cannot open rtnetlink\n");
- return -1;
+ return EXIT_FAILURE;
}
cmdlineno = 0;
if (do_cmd(largv[0], largc, largv)) {
fprintf(stderr, "Command failed %s:%d\n", name, cmdlineno);
- ret = 1;
+ ret = EXIT_FAILURE;
if (!force)
break;
}