Only print out a warning if nfacct support is missing. Detailed stats
are gone, but other uses of Session support can proceed.
---
 src/session.c |   33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/session.c b/src/session.c
index 3fca6d6..47f137a 100644
--- a/src/session.c
+++ b/src/session.c
@@ -271,6 +271,25 @@ static void cleanup_firewall(void)
        __connman_firewall_destroy(global_firewall);
 }
 
+static int enable_nfacct(struct firewall_context *fw, uint32_t mark)
+{
+       int err;
+
+       err = __connman_firewall_add_rule(fw, "filter", "INPUT",
+                       "-m mark --mark %d -m nfacct "
+                       "--nfacct-name session-input-%d",
+                       mark, mark);
+       if (err < 0)
+               return err;
+
+       err = __connman_firewall_add_rule(fw, "filter", "OUTPUT",
+                       "-m mark --mark %d -m nfacct "
+                       "--nfacct-name session-output-%d",
+                       mark, mark);
+
+       return err;
+}
+
 static int init_firewall_session(struct connman_session *session)
 {
        struct firewall_context *fw;
@@ -308,19 +327,9 @@ static int init_firewall_session(struct connman_session 
*session)
 
        session->id_type = session->policy_config->id_type;
 
-       err = __connman_firewall_add_rule(fw, "filter", "INPUT",
-               "-m mark --mark %d -m nfacct --nfacct-name session-input-%d",
-               session->mark,
-               session->mark);
+       err = enable_nfacct(fw, session->mark);
        if (err < 0)
-               goto err;
-
-       err = __connman_firewall_add_rule(fw, "filter", "OUTPUT",
-               "-m mark --mark %d -m nfacct --nfacct-name session-output-%d",
-               session->mark,
-               session->mark);
-       if (err < 0)
-               goto err;
+               connman_warn_once("Support for nfacct missing");
 
        err = __connman_firewall_enable(fw);
        if (err)
-- 
1.7.10.4

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to