void br_cmd_delif(struct bridge *br, char *ifname, char *arg1) { int err; int ifindex; ifindex = if_nametoindex(ifname); if (!ifindex) { fprintf(stderr, "interface %s does not exist!\n", ifname); return; } if ((err = br_del_interface(br, ifindex)) == 0) return; switch (err) { case EINVAL: fprintf(stderr, "device %s is not a slave of %s\n", ifname, br->ifname); break; default: perror("br_del_interface"); break; } }
int brctl_main(int argc, char **argv) { if (argc == 1) { fprintf(stderr, "try to be professional!\n"); return -1; } br_init(); if (!strcmp(argv[1], "addif")) { if (ifexists(argv[3])) br_add_interface(argv[2], argv[3]); } if (!strcmp(argv[1], "delif")) { if (ifexists(argv[3])) br_del_interface(argv[2], argv[3]); } if (!strcmp(argv[1], "addbr")) { br_add_bridge(argv[2]); } if (!strcmp(argv[1], "stp")) { br_set_stp_state(argv[2], atoi(argv[3])); } if (!strcmp(argv[1], "delbr")) { if (!ifexists(argv[2])) return -1; br_del_bridge(argv[2]); } if (!strcmp(argv[1], "show")) { br_cmd_show(); } br_shutdown(); }
static int br_cmd_delif(int argc, char *const* argv) { const char *brname; int err; argc -= 2; brname = *++argv; while (argc-- > 0) { const char *ifname = *++argv; err = br_del_interface(brname, ifname); switch (err) { case 0: continue; case ENODEV: fprintf(stderr, "interface %s does not exist!\n", ifname); break; case EINVAL: fprintf(stderr, "device %s is not a slave of %s\n", ifname, brname); break; default: fprintf(stderr, "can't delete %s from %s: %s\n", ifname, brname, strerror(err)); } return 1; } return 0; }
void deconfigure_wimax(void) { char *dev = "ofdm"; if (ifexists(dev)) { br_del_interface("br0", dev); eval("ifconfig", dev, "down"); } eval("/sub/common/ssmodunload"); }
static int br_cmd_delif(char** argv) { int err; switch (err = br_del_interface(argv[1], argv[2])) { case 0: return 0; case ENODEV: fprintf(stderr, "interface %s does not exist!\n", argv[2]); return 1; case EINVAL: fprintf(stderr, "device %s is not a slave of %s\n", argv[2], argv[1]); return 1; default: fprintf(stderr, "can't delete %s from %s: %s\n", argv[2], argv[1], strerror(err)); return 1; } }