chiark / gitweb /
bus-proxy: policy - ignore unsupported tags and attributes
authorKay Sievers <kay@vrfy.org>
Mon, 16 Jun 2014 14:03:30 +0000 (16:03 +0200)
committerKay Sievers <kay@vrfy.org>
Mon, 16 Jun 2014 14:04:18 +0000 (16:04 +0200)
src/bus-proxyd/bus-policy.c
src/bus-proxyd/bus-policy.h

index c23d394cb2c74d86d94cb961613cd5b70c409457..3f1d7557c178a53493ad4f3755612cd433ec97b7 100644 (file)
@@ -155,7 +155,10 @@ static int file_load(Policy *p, const char *path) {
                                 else if (streq(name, "group"))
                                         state = STATE_POLICY_GROUP;
                                 else {
-                                        log_warning("Attribute %s of <policy> tag unknown at %s:%u, ignoring.", name, path, line);
+                                        if (streq(name, "at_console"))
+                                                log_debug("Attribute %s of <policy> tag unsupported at %s:%u, ignoring.", name, path, line);
+                                        else
+                                                log_warning("Attribute %s of <policy> tag unknown at %s:%u, ignoring.", name, path, line);
                                         state = STATE_POLICY_OTHER_ATTRIBUTE;
                                 }
                         } else if (t == XML_TAG_CLOSE_EMPTY ||
@@ -268,7 +271,12 @@ static int file_load(Policy *p, const char *path) {
                                         ic = POLICY_ITEM_USER;
                                 else if (streq(name, "group"))
                                         ic = POLICY_ITEM_GROUP;
-                                else {
+                                else if (streq(name, "eavesdrop")) {
+                                        log_debug("Unsupported attribute %s= at %s:%u, ignoring.", name, path, line);
+                                        i->class = POLICY_ITEM_IGNORE;
+                                        state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
+                                        break;
+                                } else {
                                         log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
                                         state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
                                         break;
@@ -303,7 +311,10 @@ static int file_load(Policy *p, const char *path) {
                                                  (streq(u, "sender") && ic == POLICY_ITEM_RECV))
                                                 state = STATE_ALLOW_DENY_NAME;
                                         else {
-                                                log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
+                                                if (streq(u, "requested_reply"))
+                                                        log_debug("Unsupported attribute %s= at %s:%u, ignoring.", name, path, line);
+                                                else
+                                                        log_error("Unknown attribute %s= at %s:%u, ignoring.", name, path, line);
                                                 state = STATE_ALLOW_DENY_OTHER_ATTRIBUTE;
                                                 break;
                                         }
index bad4256a33a4cace2cb055212efd86b614409f7e..a6ff5c37f60f6f2dd0fd814bbb83c96c0b17ea0a 100644 (file)
@@ -42,6 +42,7 @@ typedef enum PolicyItemClass {
         POLICY_ITEM_OWN_PREFIX,
         POLICY_ITEM_USER,
         POLICY_ITEM_GROUP,
+        POLICY_ITEM_IGNORE,
         _POLICY_ITEM_CLASS_MAX,
         _POLICY_ITEM_CLASS_INVALID = -1,
 } PolicyItemClass;