Revision 15dfcd45 monitor.c

b/monitor.c
1579 1579
        monitor_printf(mon, "balloon: actual=%d\n", (int)(actual >> 20));
1580 1580
}
1581 1581

  
1582
static void do_acl(Monitor *mon,
1583
                   const char *command,
1584
                   const char *aclname,
1585
                   const char *match,
1586
                   int has_index,
1587
                   int index)
1582
static qemu_acl *find_acl(Monitor *mon, const char *name)
1588 1583
{
1589
    qemu_acl *acl;
1584
    qemu_acl *acl = qemu_acl_find(name);
1590 1585

  
1591
    acl = qemu_acl_find(aclname);
1592 1586
    if (!acl) {
1593
        monitor_printf(mon, "acl: unknown list '%s'\n", aclname);
1594
        return;
1587
        monitor_printf(mon, "acl: unknown list '%s'\n", name);
1595 1588
    }
1589
    return acl;
1590
}
1591

  
1592
static void do_acl_show(Monitor *mon, const char *aclname)
1593
{
1594
    qemu_acl *acl = find_acl(mon, aclname);
1595
    qemu_acl_entry *entry;
1596
    int i = 0;
1596 1597

  
1597
    if (strcmp(command, "show") == 0) {
1598
        int i = 0;
1599
        qemu_acl_entry *entry;
1598
    if (acl) {
1600 1599
        monitor_printf(mon, "policy: %s\n",
1601 1600
                       acl->defaultDeny ? "deny" : "allow");
1602 1601
        TAILQ_FOREACH(entry, &acl->entries, next) {
1603 1602
            i++;
1604 1603
            monitor_printf(mon, "%d: %s %s\n", i,
1605
                           entry->deny ? "deny" : "allow",
1606
                           entry->match);
1604
                           entry->deny ? "deny" : "allow", entry->match);
1607 1605
        }
1608
    } else if (strcmp(command, "reset") == 0) {
1606
    }
1607
}
1608

  
1609
static void do_acl_reset(Monitor *mon, const char *aclname)
1610
{
1611
    qemu_acl *acl = find_acl(mon, aclname);
1612

  
1613
    if (acl) {
1609 1614
        qemu_acl_reset(acl);
1610 1615
        monitor_printf(mon, "acl: removed all rules\n");
1611
    } else if (strcmp(command, "policy") == 0) {
1612
        if (!match) {
1613
            monitor_printf(mon, "acl: missing policy parameter\n");
1614
            return;
1615
        }
1616
    }
1617
}
1618

  
1619
static void do_acl_policy(Monitor *mon, const char *aclname,
1620
                          const char *policy)
1621
{
1622
    qemu_acl *acl = find_acl(mon, aclname);
1616 1623

  
1617
        if (strcmp(match, "allow") == 0) {
1624
    if (acl) {
1625
        if (strcmp(policy, "allow") == 0) {
1618 1626
            acl->defaultDeny = 0;
1619 1627
            monitor_printf(mon, "acl: policy set to 'allow'\n");
1620
        } else if (strcmp(match, "deny") == 0) {
1628
        } else if (strcmp(policy, "deny") == 0) {
1621 1629
            acl->defaultDeny = 1;
1622 1630
            monitor_printf(mon, "acl: policy set to 'deny'\n");
1623 1631
        } else {
1624
            monitor_printf(mon, "acl: unknown policy '%s', expected 'deny' or 'allow'\n", match);
1632
            monitor_printf(mon, "acl: unknown policy '%s', "
1633
                           "expected 'deny' or 'allow'\n", policy);
1625 1634
        }
1626
    } else if ((strcmp(command, "allow") == 0) ||
1627
               (strcmp(command, "deny") == 0)) {
1628
        int deny = strcmp(command, "deny") == 0 ? 1 : 0;
1629
        int ret;
1635
    }
1636
}
1630 1637

  
1631
        if (!match) {
1632
            monitor_printf(mon, "acl: missing match parameter\n");
1638
static void do_acl_add(Monitor *mon, const char *aclname,
1639
                       const char *match, const char *policy,
1640
                       int has_index, int index)
1641
{
1642
    qemu_acl *acl = find_acl(mon, aclname);
1643
    int deny, ret;
1644

  
1645
    if (acl) {
1646
        if (strcmp(policy, "allow") == 0) {
1647
            deny = 0;
1648
        } else if (strcmp(policy, "deny") == 0) {
1649
            deny = 1;
1650
        } else {
1651
            monitor_printf(mon, "acl: unknown policy '%s', "
1652
                           "expected 'deny' or 'allow'\n", policy);
1633 1653
            return;
1634 1654
        }
1635

  
1636 1655
        if (has_index)
1637 1656
            ret = qemu_acl_insert(acl, deny, match, index);
1638 1657
        else
......
1641 1660
            monitor_printf(mon, "acl: unable to add acl entry\n");
1642 1661
        else
1643 1662
            monitor_printf(mon, "acl: added rule at position %d\n", ret);
1644
    } else if (strcmp(command, "remove") == 0) {
1645
        int ret;
1663
    }
1664
}
1646 1665

  
1647
        if (!match) {
1648
            monitor_printf(mon, "acl: missing match parameter\n");
1649
            return;
1650
        }
1666
static void do_acl_remove(Monitor *mon, const char *aclname, const char *match)
1667
{
1668
    qemu_acl *acl = find_acl(mon, aclname);
1669
    int ret;
1651 1670

  
1671
    if (acl) {
1652 1672
        ret = qemu_acl_remove(acl, match);
1653 1673
        if (ret < 0)
1654 1674
            monitor_printf(mon, "acl: no matching acl entry\n");
1655 1675
        else
1656 1676
            monitor_printf(mon, "acl: removed rule at position %d\n", ret);
1657
    } else {
1658
        monitor_printf(mon, "acl: unknown command '%s'\n", command);
1659 1677
    }
1660 1678
}
1661 1679

  

Also available in: Unified diff