- /* Accept multiple slaves */
- res = 0;
- do {
- if (opt & OPT_d) {
- /* detach a slave interface from the master */
- rv = get_slave_flags(slave_ifname);
- if (rv) {
- /* Can't work with this slave. */
- /* remember the error and skip it*/
- bb_perror_msg(
- "skipping %s: can't get flags",
- slave_ifname);
- res = rv;
- continue;
- }
- rv = release(master_ifname, slave_ifname);
- if (rv) {
- bb_perror_msg(
- "master %s, slave %s: "
- "can't release",
- master_ifname, slave_ifname);
- res = rv;
- }
- } else {
- /* attach a slave interface to the master */
- rv = get_if_settings(slave_ifname, &slave);
- if (rv) {
- /* Can't work with this slave. */
- /* remember the error and skip it*/
- bb_perror_msg(
- "skipping %s: can't get settings",
- slave_ifname);
- res = rv;
- continue;
- }
- rv = enslave(master_ifname, slave_ifname);
- if (rv) {
- bb_perror_msg(
- "master %s, slave %s: "
- "can't enslave",
- master_ifname, slave_ifname);
- res = rv;
- }
- }
- } while ((slave_ifname = *argv++) != NULL);